You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.3 KiB
Dart
72 lines
2.3 KiB
Dart
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<List<DeviceTransfer>> getRequests({required List items, required int pageItemNumber}) async {
|
|
Map<String, dynamic> 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<DeviceTransfer>((request) => DeviceTransfer.fromJson(request)).toList();
|
|
}
|
|
|
|
Future<DeviceTransfer> createRequest({
|
|
required DeviceTransfer model,
|
|
}) async {
|
|
Map<String, dynamic> 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<DeviceTransfer> updateRequest({
|
|
required bool isSender,
|
|
required String requestId,
|
|
required DeviceTransfer oldModel,
|
|
required DeviceTransferInfo newModel,
|
|
}) async {
|
|
Map<String, dynamic> 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]);
|
|
}
|
|
}
|