Track Service Filter DONE && Preventive Maintenance DONE
parent
802ec7bb01
commit
3a20bf0017
@ -0,0 +1,54 @@
|
||||
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<Visit> visits = [];
|
||||
|
||||
PreventiveMaintenanceApiClient._internal();
|
||||
|
||||
factory PreventiveMaintenanceApiClient() => _instance;
|
||||
|
||||
Future getVisits({required int pageItemNumber, VisitsSearch? visitsSearch}) async {
|
||||
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<Visit> visitsList = requestsListJson.map((request) => Visit.fromJson(request)).toList();
|
||||
visits.addAll(visitsList);
|
||||
}
|
||||
|
||||
Future updateGroupOfVisits({required VisitsGroup group}) async {
|
||||
final user = UserApiClient().user;
|
||||
Map<String, String> 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();
|
||||
}
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
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;
|
||||
|
||||
Future getVisits({required int pageItemNumber, VisitsSearch? visitsSearch}) async {
|
||||
final response = await ApiClient().getJsonForResponse(
|
||||
'${URLs.host1}${URLs.getRegularVisits}',
|
||||
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<Visit> visitsList = requestsListJson.map((request) => Visit.fromJson(request)).toList();
|
||||
visits.addAll(visitsList);
|
||||
}
|
||||
|
||||
Future updateGroupOfVisits({required VisitsGroup group}) async {
|
||||
final user = UserApiClient().user;
|
||||
Map<String, String> 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.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;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue