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.
cloudsolutions-atoms/lib/api/device_transfer_api_client....

81 lines
2.4 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 {
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<DeviceTransfer> createRequest({
required DeviceTransfer model,
})async{
Map<String, dynamic> 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<DeviceTransfer> updateRequest({
required bool isSender,
required String requestId,
required DeviceTransfer? oldModel,
required DeviceTransferInfo newModel,
})async{
Map<String, dynamic> 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]
);
}
}