Files
syncrow-web/lib/services/access_mang_api.dart

141 lines
4.0 KiB
Dart

import 'dart:convert';
import 'package:flutter/cupertino.dart';
import 'package:syncrow_web/pages/access_management/model/password_model.dart';
import 'package:syncrow_web/pages/visitor_password/model/device_model.dart';
import 'package:syncrow_web/pages/visitor_password/model/schedule_model.dart';
import 'package:syncrow_web/services/api/http_service.dart';
import 'package:syncrow_web/utils/constants/api_const.dart';
class AccessMangApi {
Future<List<PasswordModel>> fetchVisitorPassword() async {
try {
final response = await HTTPService().get(
path: ApiEndpoints.visitorPassword,
showServerMessage: true,
expectedResponseModel: (json) {
List<dynamic> jsonData = json;
List<PasswordModel> passwordList = jsonData.map((jsonItem) {
return PasswordModel.fromJson(jsonItem);
}).toList();
return passwordList;
},
);
return response;
} catch (e) {
return [];
}
}
Future fetchDevices() async {
try {
final response = await HTTPService().get(
path: ApiEndpoints.getDevices,
showServerMessage: true,
expectedResponseModel: (json) {
List<dynamic> jsonData = json;
List<DeviceModel> passwordList = jsonData.map((jsonItem) {
return DeviceModel.fromJson(jsonItem);
}).toList();
return passwordList;
},
);
return response;
} catch (e) {
return [];
}
}
Future postOnlineOneTime(
{String? email,
String? passwordName,
String? password,
String? effectiveTime,
String? invalidTime,
List<String>? devicesUuid}) async {
final response = await HTTPService().post(
path: ApiEndpoints.sendOnlineOneTime,
body: jsonEncode({
"email": email,
"passwordName": passwordName,
"password": password,
"devicesUuid": devicesUuid,
"effectiveTime": effectiveTime,
"invalidTime": invalidTime
}),
showServerMessage: true,
expectedResponseModel: (json) {
return json;
},
);
return response;
}
Future postOnlineMultipleTime(
{String? effectiveTime,
String? invalidTime,
String? email,
String? password,
String? passwordName,
List<Schedule>? scheduleList,
List<String>? devicesUuid}) async {
Map<String, dynamic> body = {
"email": email,
"devicesUuid": devicesUuid,
"passwordName": passwordName,
"password": password,
"effectiveTime": effectiveTime,
"invalidTime": invalidTime,
};
if (scheduleList != null) {
body["scheduleList"] = scheduleList.map((schedule) => schedule.toJson()).toList();
}
final response = await HTTPService().post(
path: ApiEndpoints.sendOnlineMultipleTime,
body: jsonEncode(body),
showServerMessage: true,
expectedResponseModel: (json) {
return json;
},
);
return response;
}
// OffLine One Time Password
Future postOffLineOneTime(
{String? email, String? passwordName, List<String>? devicesUuid}) async {
final response = await HTTPService().post(
path: ApiEndpoints.sendOffLineOneTime,
body: jsonEncode({"email": email, "passwordName": passwordName, "devicesUuid": devicesUuid}),
showServerMessage: true,
expectedResponseModel: (json) {
return json;
},
);
return response;
}
Future postOffLineMultipleTime(
{String? email,
String? passwordName,
String? effectiveTime,
String? invalidTime,
List<String>? devicesUuid}) async {
final response = await HTTPService().post(
path: ApiEndpoints.sendOffLineMultipleTime,
body: jsonEncode({
"email": email,
"devicesUuid": devicesUuid,
"passwordName": passwordName,
"effectiveTime": effectiveTime,
"invalidTime": invalidTime,
}),
showServerMessage: true,
expectedResponseModel: (json) {
return json;
},
);
return response;
}
}