import 'dart:convert'; import 'package:test_sa/api/api_client.dart'; import 'package:test_sa/api/user_api_client.dart'; import '../controllers/api_routes/urls.dart'; import '../models/device/device_transfer.dart'; import '../models/device/device_transfer_info.dart'; class DeviceTransferApiClient { static final DeviceTransferApiClient _instance = DeviceTransferApiClient._internal(); DeviceTransferApiClient._internal(); factory DeviceTransferApiClient() => _instance; Future> getRequests({required List items, required int pageItemNumber}) async { Map body= { "pageSize": "${(items.length) ~/ pageItemNumber}", }; final response = await ApiClient().postJsonForResponse( "${URLs.host1}${URLs.getDeviceTransfer}", body, isFormData: false ); Map listJson = json.decode(utf8.decode(response.bodyBytes).replaceAll("\\", "")); print(listJson); return listJson['data'].map((request) => DeviceTransfer.fromJson(request)).toList(); } Future createRequest({ required DeviceTransfer model, }) async { Map body = { "id": model.id??0, "assetId": model.device?.id, "destSiteId":model.receiver?.client?.id, "senderSiteId":model.sender?.userId, "receiverAssignedEmployeeId": model.receiver?.userId }; print(body); final response = await ApiClient().postJsonForResponse("${URLs.host1}${URLs.requestDeviceTransfer}", body, isFormData: false); return DeviceTransfer.fromJson(json.decode(utf8.decode(response.bodyBytes))[0]); } Future updateRequest({ required bool isSender, required String requestId, required DeviceTransfer oldModel, required DeviceTransferInfo newModel, }) async { Map body = { "id": oldModel.id??0, "assetId": oldModel.device?.id, "destSiteId":oldModel.receiver?.client?.id, "senderSiteId":oldModel.sender?.userId, "receiverAssignedEmployeeId": oldModel.receiver?.userId }; body.addAll(newModel.toJson(isSender)); final response = await ApiClient().putJsonForResponse("${URLs.host1}${URLs.updateDeviceTransfer}", body); return DeviceTransfer.fromJson(json.decode(utf8.decode(response.bodyBytes))[0]); } }