getImageRequest function

Future<File?> getImageRequest({
  1. required String userPhone,
  2. required DefaultCacheManager cacheInstance,
})

Implementation

Future<File?> getImageRequest({required String userPhone, required cache_manager.DefaultCacheManager cacheInstance}) async {
  File? imageFile;

  try {
    var reqBody = <String, dynamic>{"phoneNumber": userPhone};

    var jsonBody = json.encode(reqBody);
    var response = await http.post(
      Uri.parse(
        "${ConstStrings.baseUrl}/api/Images/DownloadImage",
      ),
      headers: {"Content-Type": "application/json"},
      body: jsonBody,
    );

    debugPrint("signalr-package: here in http request");

    if (response.statusCode == 200) {
      // String imageType = response.headers["content-type"]!.split('/')[1];
      await cacheInstance.putFile("${userPhone}image", response.bodyBytes);

      debugPrint("signalr-package: cache key when store is : ${userPhone}image");
      imageFile = (await cacheInstance.getFileFromCache("${userPhone}image"))?.file;
      // imageFile.writeAsBytes(response.bodyBytes);
      debugPrint("signalr-package: return image file");
      if(imageFile == null){ debugPrint("signalr-package: its null");}
      return imageFile;
    }

    else {
      debugPrint("signalr-package: ReceiveNewMessage user have no image response code ${response.statusCode}");
    }
  } catch (e) {
    debugPrint("error catched: ${e.toString()}");
  }
}