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/visits/visits_group.dart'; import 'package:test_sa/models/visits/visits_search.dart'; import '../models/visits/visit.dart'; class PreventiveMaintenanceApiClient { static final PreventiveMaintenanceApiClient _instance = PreventiveMaintenanceApiClient._internal(); /// ## list of user requests final List visits = []; PreventiveMaintenanceApiClient._internal(); factory PreventiveMaintenanceApiClient() => _instance; Future getVisits({required int pageItemNumber, VisitsSearch? visitsSearch}) async { print('get visits'); final response = await ApiClient().getJsonForResponse( '${URLs.host1}${URLs.getPreventiveMaintenanceVisits}', headers: {"Content-Type": "application/json; charset=utf-8"}, queryParameters: { 'uid': UserApiClient().user?.id, 'token': UserApiClient().user?.token, 'page': '${(visits.length) ~/ pageItemNumber}', if (visitsSearch != null) ...visitsSearch.queryParameters(), }, ); List requestsListJson = json.decode(utf8.decode(response.bodyBytes).replaceAll("\\", "")); List visitsList = requestsListJson.map((request) => Visit.fromJson(request)).toList(); visits.addAll(visitsList); } Future updateGroupOfVisits({required VisitsGroup group}) async { print('update group of visits'); final user = UserApiClient().user; Map body = group.toJson(); body["token"] = user?.token ?? ""; body["uid"] = user?.id ?? ""; //userId = 397.toString(); // testing id to view data await ApiClient().postJsonForResponse( '${URLs.host1}${URLs.updatePreventiveMaintenanceVisits}', body, ); // client's request was successfully received for (var visit in (group.visits ?? [])) { visit.status = group.status; visit.actualDate = group.date.toString().split(" ").first; } group.visits?.clear(); } }