addPassenger method
Implementation
Future<Passengers?> addPassenger({String? passengerType, bool fromDialog = false}) async {
if (!isValidPassengerFields()) {
return null;
}
final type = getTypeFromDob(dobController.text);
if (isInvalidType(passengerType)) {
return null;
}
try {
Map<String, String> data = {
"firstName": firstNameController.text,
"middleName": middleNameController.text,
"lastName": lastNameController.text,
"passportNo": passportNumberController.text,
"gender": selectedGender.value.toLowerCase(),
"passportIssuingCountry":
Constants.ALL_COUNTRIES_ALPHA_2[selectedPassportCountry.value] ??
'',
"passportExpiry": passportExpiryController.text,
"nationality": selectedNationality.value,
"dob": dobController.text,
"type": type,
};
if (type != 'INFANT') {
if (phoneNumber.isNotEmpty) {
data["phone"] = phoneNumber.value;
}
if (emailController.text.isNotEmpty) {
data["email"] = emailController.text;
}
}
//dont remove , added on purpose
loadingDialog();
var response = await Requests.getDio(showLoadingDialog: false)
.post("passengers?", data: data);
if (response.statusCode == 200) {
Passengers newPassenger = Passengers.fromJson(response.data['data']);
selectedPassengers.add(newPassenger);
selectedPassengers.refresh();
clearAddPassengerFields();
await getPassengers();
closeDialog();
if (fromDialog) {
closeDialog();
}
CustomFlashWidget.showFlashMessage(
type: FlashType.success,
title: "Success",
message: "Passenger Added Successfully",
);
return newPassenger;
} else if (response.data
.toString()
.contains("Value of passportExpiry can not be before today.")) {
closeDialog();
if (fromDialog) {
closeDialog();
}
CustomFlashWidget.showFlashMessage(
type: FlashType.error,
title: "Error",
message:
"You can't select today's date for passport expiry. Please choose a future date.",
);
return null;
} else {
closeDialog();
log("Error adding passenger e: ${response.data.toString()}");
CustomFlashWidget.showFlashMessage(
type: FlashType.error,
title: "Error",
message: response.data["message"] ??
response.data?["errorCode"] ??
response.data?["message"]?["errorCode"] ??
"Something unexpected happened. Please try again later!",
);
return null;
}
} catch (e) {
closeDialog();
log("Error adding passenger e: ${e.toString()}");
CustomFlashWidget.showFlashMessage(
type: FlashType.error,
title: "Error",
message: "Something unexpected happened. Please try again later!",
);
return null;
}
}