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!",
);
}
}