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/gas_refill_api_client.dart

94 lines
2.6 KiB
Dart

import 'dart:convert';
import 'package:test_sa/api/user_api_client.dart';
import '../controllers/api_routes/urls.dart';
import '../models/gas_refill/gas_refill_model.dart';
import 'api_client.dart';
class GasRefillApiClient{
static final GasRefillApiClient _instance =GasRefillApiClient._internal();
GasRefillApiClient._internal();
factory GasRefillApiClient() =>_instance;
Future<List<GasRefillModel>> getRequestPages({
required List items,
required int pageItemNumber
}) async {
final response = await ApiClient().getJsonForResponse(
"${URLs.host1}${URLs.getGasRefill}",//body
headers: {"Content-Type": "application/json; charset=utf-8"},
queryParameters: {
"uid":"${UserApiClient().user?.id}",
"token":"${UserApiClient().user?.token}",
"page":"${(items.length) ~/ pageItemNumber}",
}
);
// client's request was successfully received
List requestsListJson = json.decode(utf8.decode(response.bodyBytes));
return requestsListJson.map((request) => GasRefillModel.fromJson(request)).toList();
}
Future<GasRefillModel> createModel({
required GasRefillModel model,
}) async{
Map<String, dynamic> body = {
"uid": UserApiClient().user?.id.toString(),
"token": UserApiClient().user?.token ?? "",
"title": model.title ?? "",
"status": "0", //model.status.value.toString(),
};
body["details"] = jsonEncode(model.details
?.map((model) => {
"type": model.type?.id.toString(),
"size": model.cylinderSize?.id.toString(),
"requsted_qty": model.requestedQuantity.toString(),
})
.toList());
final response = await ApiClient().postJsonForResponse(
"${URLs.host1}${URLs.requestGasRefill}",
body,
);
return GasRefillModel.fromJson(json.decode(utf8.decode(response.bodyBytes))[0]);
}
Future updateModel({
required GasRefillModel? oldModel,
required GasRefillModel newModel,
})async{
Map<String, dynamic> body = {
"uid": UserApiClient().user?.id.toString(),
"token": UserApiClient().user?.token,
"title": newModel.title,
"status": newModel.status?.id.toString(),
};
body["details"] = jsonEncode(newModel.details
?.map((model) => {
"type": model.type?.id.toString(),
"size": model.cylinderSize?.id.toString(),
"requsted_qty": model.requestedQuantity.toString(),
"deliverd_qty": model.deliveredQuantity.toString(),
})
.toList());
final reponse = await ApiClient().postJsonForResponse(
"${URLs.host1}${URLs.updateGasRefill}/${newModel.id}",
body);
oldModel?.fromGasRefillModel(newModel);
}
}