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 { final response = await ApiClient().getJsonForResponse( "${URLs.host1}${URLs.getDeviceTransfer}", queryParameters: { "uid":"${UserApiClient().user?.id}", "token":"${UserApiClient().user?.token}", "page":"${(items.length) ~/ pageItemNumber}", }, headers: {"Content-Type": "application/json; charset=utf-8"} ); List listJson = json.decode(utf8.decode(response.bodyBytes).replaceAll("\\", "")); return listJson.map((request) => DeviceTransfer.fromJson(request)).toList(); } Future createRequest({ required DeviceTransfer model, })async{ Map body = { "uid": UserApiClient().user?.id.toString()??"", "token": UserApiClient().user?.token??"", "serial_id": model.device?.id??"", "destination_client": model.receiver?.client?.id??"", "destination_department": model.receiver?.department?.id??"", }; final response = await ApiClient().postJsonForResponse( "${URLs.host1}${URLs.requestDeviceTransfer}", body, isFormData: true); 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 = { "uid": UserApiClient().user?.id.toString(), "token": UserApiClient().user?.token, "current_user": UserApiClient().user?.id, }; body.addAll(newModel.toJson(isSender)); final response = await ApiClient().postJsonForResponse( "${URLs.host1}${URLs.updateDeviceTransfer}/$requestId", body); return DeviceTransfer.fromJson( json.decode(utf8.decode(response.bodyBytes))[0] ); } }