addListingMultiPart function

Future<CommonModel?> addListingMultiPart(
  1. {required Map<String, dynamic> value,
  2. List<File>? imageFile,
  3. required bool isUpdate}
)

Implementation

Future<CommonModel?> addListingMultiPart({required Map<String, dynamic> value, List<File>? imageFile, required bool isUpdate}) async {
  CommonModel? res;

  MultipartRequest multiPartRequest = await getMultiPartRequest(APIEndPoint.saveBusiness);

  multiPartRequest.fields.addAll(await getMultipartFields(val: value));

  if (imageFile.validate().isNotEmpty) {
    multiPartRequest.files.addAll(await getMultipartImages(files: imageFile.validate(), name: AddListingKeys.listingImage));
    multiPartRequest.fields[AddListingKeys.listingImageCount] = imageFile.validate().length.toString();
  }

  log("${multiPartRequest.fields}");

  multiPartRequest.headers.addAll(buildHeaderTokens());

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

  appStore.setLoading(true);

  await sendMultiPartRequest(multiPartRequest, onSuccess: (temp) async {
    appStore.setLoading(false);

    log("Response: ${jsonDecode(temp)}");

    // toast(jsonDecode(temp)['message'], print: true);
    res = CommonModel.fromJson(jsonDecode(temp));
  }, onError: (error) {
    // toast(error.toString(), print: true);
    res = CommonModel.fromJson(jsonDecode(error));
    appStore.setLoading(false);
  }).catchError((e) {
    appStore.setLoading(false);
    toast(e.toString());
  });
  return res;
}