saveForm method

Future<void> saveForm(
  1. 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'),
        ),
      );
    }
  }
}