saveForm method
- BuildContext context
Saves the organization registration form.
Validates the form, checks user role, and sends the registration data to the server.
Implementation
Future<void> saveForm(BuildContext context) async {
if (formKey.currentState?.validate() ?? false) {
UserModel? user = prefs.getUser();
if (user?.role == UserRoles.admin) {
try {
String docId = ID.unique();
await db.createDocument(
databaseId: AppConstants.appwriteDatabaseId,
collectionId: AppConstants.userCollectionId,
documentId: docId,
data: {
'organizationName': organizationController.text,
'organizationId': docId,
'mobileNo': int.parse(mobileController.text),
'status': state.selectedStatus,
'designation': state.selectedDesignation,
'contactPerson': contactPersonController.text,
'email': emailController.text,
'addressLine': streetController.text,
'state': state.selectedState,
'city': state.selectedCity,
'country': "India",
'type': 'organization',
'createdOn': DateTime.now().toIso8601String(),
},
);
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Organization saved successfully!')),
);
} catch (e) {
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text('Error: $e')));
}
} else {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('${user?.role} role cannot register organization'),
),
);
}
}
}