subscribeNewLetter method

Future<void> subscribeNewLetter()

Implementation

Future<void> subscribeNewLetter() async {
 final email = newsLetterController.text;
 final bool emailValid =
   RegExp(r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+")
     .hasMatch(email);
 if(!emailValid){
   CustomFlashWidget.showFlashMessage(
     type: FlashType.warning,
     title: "Invalid Email",
     message: "Please provide valid email",
   );
   return;
 }

 try {
   final data = {
     "email": newsLetterController.text
   };
   var response = await Requests.getDio(showLoadingDialog: true).post(
     "data/newsletter/add",
     data: data
   );
   debugPrint(response.toString());

   if (response.statusCode == 200) {
     Map<String, dynamic> body = response.data;
     final message = !body.containsKey('message')? "Added newsletter to $email" : body['message'];
    CustomFlashWidget.showFlashMessage(
     type: FlashType.success,
     title: "Subscribed",
     message: message,
   );
   } else {
     throw Exception("Error while subscribing to newsletter");
   }
 } catch (e) {
   CustomFlashWidget.showFlashMessage(
     type: FlashType.error,
     title: "Error",
     message: "Something unexpected happened. Please try again later!",
   );
 }
}