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 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 visitsList = requestsListJson.map((request) => Visit.fromJson(request)).toList(); visits.addAll(visitsList); } // 4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444 Future updateGroupOfVisits({required VisitsGroup group}) async { final user = UserApiClient().user; Map 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 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? 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; } }