addReview function

Future<BusinessReviewsModel?> addReview(
  1. {required Map<String, dynamic> requestMap,
  2. List<File>? imageFile}
)

Implementation

Future<BusinessReviewsModel?> addReview({
  required Map<String, dynamic> requestMap,
  List<File>? imageFile,
  // VoidCallback? onSuccess,
}) async {
  BusinessReviewsModel? response;

  MultipartRequest multiPartRequest = await getMultiPartRequest(APIEndPoint.addBusinessReviews);
  multiPartRequest.fields.addAll(await getMultipartFields(val: requestMap));
  multiPartRequest.headers.addAll(buildHeaderTokens());
  if (imageFile.validate().isNotEmpty) {
    multiPartRequest.files.addAll(await getMultipartImages(files: imageFile.validate(), name: AddListingKeys.reviewAttchment));
    multiPartRequest.fields[AddListingKeys.attachmentCount] = imageFile.validate().length.toString();
  }
  log("${multiPartRequest.fields}");

  log("Multi Part Request : ${jsonEncode(multiPartRequest.fields)} ${multiPartRequest.files.map((e) => e.field + ": " + e.filename.validate())}");

  await sendMultiPartRequest(multiPartRequest, onSuccess: (temp) async {
    log("Response: ${jsonDecode(temp)}");
    response = BusinessReviewsModel.fromJson(jsonDecode(temp));
    toast(response?.message);
    // onSuccess?.call();
  }, onError: (error) {
    // toast(error.toString(), print: true);
    response = BusinessReviewsModel.fromJson(jsonDecode(error));
    appStore.setLoading(false);
  }).catchError((e) {
    appStore.setLoading(false);
    toast(e.toString());
  });
  return response;
}