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

92 lines
3.6 KiB
Dart

import 'dart:convert';
import 'package:test_sa/api/api_client.dart';
import 'package:test_sa/api/user_api_client.dart';
import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/pantry/pentry.dart';
import 'package:test_sa/models/visits/visits_group.dart';
import 'package:test_sa/models/visits/visits_search.dart';
import '../models/visits/visit.dart';
class VisitsApiClient {
static final VisitsApiClient _instance = VisitsApiClient._internal();
/// ## list of user requests
final List<Visit> visits = [];
VisitsApiClient._internal();
factory VisitsApiClient() => _instance;
// 333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
Future getVisits({required int pageItemNumber, VisitsSearch? visitsSearch}) async {
print("get visits");
final response = await ApiClient().postJsonForResponse(
'${URLs.host1}${URLs.getRegularVisits}',
// headers: {"Content-Type": "application/json; charset=utf-8"},
{
// "pageSize": 0,
"pageNumber": pageItemNumber,
// "id": 0,
// "assetId": 0,
"modelId": visitsSearch?.model,
// "ppmId": 0,
// "ppmScheduleId": 0,
// "classification": 0,
// "visitStatusId": 0,
// "deviceStatusId": 0,
// "groupLeaderReviewId": 0,
// "assignedEmployeeId": "string",
"assignedToId": visitsSearch?.contactStatus,
"expectedDateFrom": visitsSearch?.expectedDateFrom,
"expectedDateTo": visitsSearch?.expectedDateTo,
"actualDateFrom": visitsSearch?.actualDateFrom,
"actualDateTo": visitsSearch?.actualDateTo,
// "siteId": 0,
// "jobSheetNo": "string",
// "typeOfServiceId": 0,
// "planNumber": 0
}
// queryParameters: {
// 'uid': UserApiClient().user?.id,
// 'token': UserApiClient().user?.token,
// 'page': '${(visits.length) ~/ pageItemNumber}',
// if (visitsSearch != null) ...visitsSearch.queryParameters(),
// },
);
// print(json.decode(utf8.decode(response.bodyBytes).replaceAll("\\", "")));
List requestsListJson = json.decode(response.body)['data'];
List<Visit> visitsList = requestsListJson.map((request) => Visit.fromJson(request)).toList();
visits.addAll(visitsList);
}
// 4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
Future updateGroupOfVisits({required VisitsGroup group}) async {
final user = UserApiClient().user;
Map<String, dynamic> body = {};
// body["token"] = user?.token ?? "";
body['ids'] = [...(group.visits?.map((e) => e.id).toList() ?? [])];
body["assignedEmployeeId"] = user?.id ?? "";
//userId = 397.toString(); // testing id to view data
await ApiClient().putJsonForResponse('${URLs.host1}${URLs.updateRegularVisits}', body);
}
Future<Pentry> getPentry(String id) async {
final response = await ApiClient().getJsonForResponse(
'${URLs.host1}${URLs.getPentry}/$id',
headers: {"Content-Type": "application/json; charset=utf-8"},
);
return Pentry.fromMap(json.decode(utf8.decode(response.bodyBytes)));
}
Future updatePentry({Pentry? pentry, Visit? visit}) async {
final user = UserApiClient().user;
Map<String, String>? body = pentry?.toMap();
body?["uid"] = user?.id ?? "";
body?["token"] = user?.token ?? "";
await ApiClient().postJsonForResponse('${URLs.host1}${URLs.updatePentry}/${visit?.id}', body);
// visit?.status = pentry?.ppmVisitStatus;
}
}