mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-09 22:57:21 +00:00
127 lines
3.6 KiB
Dart
127 lines
3.6 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/schedule_model.dart';
|
|
import 'package:syncrow_web/services/api/http_service.dart';
|
|
import 'package:syncrow_web/utils/constants/api_const.dart';
|
|
|
|
import '../pages/visitor_password/model/device_model.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;
|
|
print('Password List: $json');
|
|
List<PasswordModel> passwordList = jsonData.map((jsonItem) {
|
|
return PasswordModel.fromJson(jsonItem);
|
|
}).toList();
|
|
return passwordList;
|
|
},
|
|
);
|
|
return response;
|
|
} catch (e) {
|
|
debugPrint('Error fetching visitor passwords: $e');
|
|
return [];
|
|
}
|
|
}
|
|
|
|
Future fetchDevices() async {
|
|
try {
|
|
final response = await HTTPService().get(
|
|
path: ApiEndpoints.getDevices,
|
|
showServerMessage: true,
|
|
expectedResponseModel: (json) {
|
|
List<dynamic> jsonData = json;
|
|
print('fetchDevices List: $json');
|
|
List<DeviceModel> passwordList = jsonData.map((jsonItem) {
|
|
return DeviceModel.fromJson(jsonItem);
|
|
}).toList();
|
|
return passwordList;
|
|
},
|
|
);
|
|
return response;
|
|
} catch (e) {
|
|
debugPrint('Error fetching $e');
|
|
return [];
|
|
}
|
|
}
|
|
|
|
Future postOnlineOneTime({String? email,String? passwordName,List<String>? devicesUuid}) async {
|
|
try {
|
|
|
|
print('postOfflineOneTime List: ${
|
|
{
|
|
"email": email,
|
|
"passwordName": passwordName,
|
|
"devicesUuid": devicesUuid
|
|
}
|
|
}');
|
|
|
|
final response = await HTTPService().post(
|
|
path: ApiEndpoints.sendOfflineOneTime,
|
|
body: jsonEncode({
|
|
"email": email,
|
|
"passwordName": passwordName,
|
|
"devicesUuid": devicesUuid
|
|
}),
|
|
showServerMessage: true,
|
|
expectedResponseModel: (json) {
|
|
List<dynamic> jsonData = json;
|
|
print('postOfflineOneTime List: $json');
|
|
},
|
|
);
|
|
return response;
|
|
} catch (e) {
|
|
debugPrint('Error fetching $e');
|
|
return [];
|
|
}
|
|
}
|
|
|
|
Future postOnlineMultipleTime({
|
|
String? effectiveTime,
|
|
String? invalidTime,
|
|
String? email,
|
|
String? password,
|
|
String? passwordName,
|
|
List<Schedule>? scheduleList,
|
|
List<String>? devicesUuid}) async {
|
|
try {
|
|
Map<String, dynamic> body = {
|
|
"email": email,
|
|
"devicesUuid": devicesUuid,
|
|
"passwordName": passwordName,
|
|
"password": password,
|
|
"effectiveTime": effectiveTime,
|
|
"invalidTime": invalidTime,
|
|
};
|
|
print('createPassword =${scheduleList![0].workingDay}');
|
|
if (scheduleList != null) {
|
|
body["scheduleList"] = scheduleList.map((schedule) => schedule.toJson()).toList();
|
|
}
|
|
print('createPassword =$body');
|
|
|
|
final response = await HTTPService().post(
|
|
path: ApiEndpoints.sendOfflineMultipleTime,
|
|
body: jsonEncode(body),
|
|
showServerMessage: true,
|
|
expectedResponseModel: (json) {
|
|
List<dynamic> jsonData = json;
|
|
print('postOfflineOneTime List: $json');
|
|
},
|
|
);
|
|
return response;
|
|
} catch (e) {
|
|
debugPrint('Error fetching $e');
|
|
return [];
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
} |