push fetch devices and connecting the filters

This commit is contained in:
ashrafzarkanisala
2024-08-24 16:37:10 +03:00
parent 0c047de9c1
commit 2597cdc311
68 changed files with 1800 additions and 989 deletions

View File

@ -7,8 +7,7 @@ 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{
class AccessMangApi {
Future<List<PasswordModel>> fetchVisitorPassword() async {
try {
final response = await HTTPService().get(
@ -23,7 +22,7 @@ class AccessMangApi{
},
);
return response;
} catch (e) {
} catch (e) {
debugPrint('Error fetching visitor passwords: $e');
return [];
}
@ -43,19 +42,19 @@ class AccessMangApi{
},
);
return response;
} catch (e) {
} catch (e) {
debugPrint('Error fetching $e');
return [];
}
}
Future<bool> postOnlineOneTime({
String? email,
String? passwordName,
String? password,
String? effectiveTime,
String? invalidTime,
List<String>? devicesUuid}) async {
Future<bool> postOnlineOneTime(
{String? email,
String? passwordName,
String? password,
String? effectiveTime,
String? invalidTime,
List<String>? devicesUuid}) async {
try {
final response = await HTTPService().post(
path: ApiEndpoints.sendOnlineOneTime,
@ -64,34 +63,34 @@ class AccessMangApi{
"passwordName": passwordName,
"password": password,
"devicesUuid": devicesUuid,
"effectiveTime":effectiveTime ,
"effectiveTime": effectiveTime,
"invalidTime": invalidTime
}),
showServerMessage: true,
expectedResponseModel: (json) {
if(json['statusCode'].toString()=='201'){
if (json['statusCode'].toString() == '201') {
return true;
}else{
} else {
return false;
}
},
);
return response;
} on DioException catch (e) {
} on DioException catch (e) {
debugPrint('Error: ${e.message}');
debugPrint('Error fetching ${e.response!.statusMessage}');
return false;
}
}
Future postOnlineMultipleTime({
String? effectiveTime,
String? invalidTime,
String? email,
String? password,
String? passwordName,
List<Schedule>? scheduleList,
List<String>? devicesUuid}) async {
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,
@ -102,22 +101,24 @@ class AccessMangApi{
"invalidTime": invalidTime,
};
if (scheduleList != null) {
body["scheduleList"] = scheduleList.map((schedule) => schedule.toJson()).toList();
body["scheduleList"] =
scheduleList.map((schedule) => schedule.toJson()).toList();
}
final response = await HTTPService().post(
path: ApiEndpoints.sendOnlineMultipleTime,
body: jsonEncode(body),
showServerMessage: true,
expectedResponseModel: (json) {
if(json['data']['successOperations'][0]['success'].toString()=='true'){
if (json['data']['successOperations'][0]['success'].toString() ==
'true') {
return true;
}else{
} else {
return false;
}
},
);
return response;
} on DioException catch (e){
} on DioException catch (e) {
debugPrint('Error fetching ${e.type.name}');
debugPrint('Error fetching ${e.response!.statusMessage}');
return false;
@ -126,16 +127,17 @@ class AccessMangApi{
// OffLine One Time Password
Future postOffLineOneTime({String? email,String? passwordName,List<String>? devicesUuid}) async {
Future postOffLineOneTime(
{String? email, String? passwordName, List<String>? devicesUuid}) async {
try {
final response = await HTTPService().post(
path: ApiEndpoints.sendOffLineOneTime,
body: jsonEncode({
"email": email,
"passwordName": passwordName,
"devicesUuid": devicesUuid
}),
showServerMessage: true,
path: ApiEndpoints.sendOffLineOneTime,
body: jsonEncode({
"email": email,
"passwordName": passwordName,
"devicesUuid": devicesUuid
}),
showServerMessage: true,
expectedResponseModel: (json) {
if (json['data']['successOperations'][0]['success'].toString() ==
'true') {
@ -143,8 +145,7 @@ class AccessMangApi{
} else {
return false;
}
}
);
});
return response;
} catch (e) {
debugPrint('Error fetching $e');
@ -152,25 +153,23 @@ class AccessMangApi{
}
}
Future postOffLineMultipleTime({
String? email,
String? passwordName,
String? effectiveTime,
String? invalidTime,
List<String>? devicesUuid
}) async {
Future postOffLineMultipleTime(
{String? email,
String? passwordName,
String? effectiveTime,
String? invalidTime,
List<String>? devicesUuid}) async {
try {
final response = await HTTPService().post(
path: ApiEndpoints.sendOffLineOneTime,
body: jsonEncode({
"email": email,
"devicesUuid":devicesUuid,
"passwordName": passwordName,
"effectiveTime": effectiveTime,
"invalidTime": invalidTime
}),
showServerMessage: true,
path: ApiEndpoints.sendOffLineOneTime,
body: jsonEncode({
"email": email,
"devicesUuid": devicesUuid,
"passwordName": passwordName,
"effectiveTime": effectiveTime,
"invalidTime": invalidTime
}),
showServerMessage: true,
expectedResponseModel: (json) {
if (json['data']['successOperations'][0]['success'].toString() ==
'true') {
@ -178,12 +177,11 @@ class AccessMangApi{
} else {
return false;
}
}
);
});
return response;
} catch (e) {
debugPrint('Error fetching $e');
return [];
}
}
}
}

View File

@ -22,16 +22,19 @@ class HTTPInterceptor extends InterceptorsWrapper {
if (await validateResponse(response)) {
super.onResponse(response, handler);
} else {
handler.reject(DioException(requestOptions: response.requestOptions, response: response));
handler.reject(DioException(
requestOptions: response.requestOptions, response: response));
}
}
@override
void onRequest(RequestOptions options, RequestInterceptorHandler handler) async {
void onRequest(
RequestOptions options, RequestInterceptorHandler handler) async {
var storage = const FlutterSecureStorage();
var token = await storage.read(key: Token.loginAccessTokenKey);
if (checkHeaderExclusionListOfAddedParameters(options.path)) {
options.headers.putIfAbsent(HttpHeaders.authorizationHeader, () => "Bearer $token");
options.headers
.putIfAbsent(HttpHeaders.authorizationHeader, () => "Bearer $token");
}
// options.headers['Authorization'] = 'Bearer ${'${token!}123'}';
super.onRequest(options, handler);

View File

@ -31,8 +31,7 @@ class ServerFailure extends Failure {
{
// var document = parser.parse(dioError.response!.data.toString());
// var message = document.body!.text;
return ServerFailure.fromResponse(
dioError.response!.statusCode!,
return ServerFailure.fromResponse(dioError.response!.statusCode!,
dioError.response?.data['message'] ?? "Error");
}
case DioExceptionType.cancel:

View File

@ -1,4 +1,3 @@
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
import 'package:syncrow_web/pages/auth/model/region_model.dart';
@ -18,48 +17,43 @@ class AuthenticationAPI {
return response;
}
static Future forgetPassword(
{required var email, required var password,}) async {
static Future forgetPassword({
required var email,
required var password,
}) async {
final response = await HTTPService().post(
path: ApiEndpoints.forgetPassword,
body: {
"email": email,
"password": password
},
body: {"email": email, "password": password},
showServerMessage: true,
expectedResponseModel: (json) {});
return response;
}
static Future<int?> sendOtp({required String email, required String regionUuid}) async {
static Future<int?> sendOtp(
{required String email, required String regionUuid}) async {
try {
final response = await HTTPService().post(
path: ApiEndpoints.sendOtp,
body: {
"email": email,
"type": "PASSWORD",
"regionUuid": regionUuid
},
body: {"email": email, "type": "PASSWORD", "regionUuid": regionUuid},
showServerMessage: true,
expectedResponseModel: (json) {
return 30;
}
);
});
return 30;
} on DioException catch (e) {
if (e.response != null) {
if (e.response!.statusCode == 400) {
final errorData = e.response!.data;
String errorMessage = errorData['message'];
if(errorMessage=='User not found'){
if (errorMessage == 'User not found') {
return 1;
}else{
} else {
int cooldown = errorData['data']['cooldown'] ?? 1;
return cooldown;
}
} else {
debugPrint('Error: ${e.response!.statusCode} - ${e.response!.statusMessage}');
debugPrint(
'Error: ${e.response!.statusCode} - ${e.response!.statusMessage}');
return 1;
}
} else {
@ -74,7 +68,7 @@ class AuthenticationAPI {
static Future verifyOtp(
{required String email, required String otpCode}) async {
try{
try {
final response = await HTTPService().post(
path: ApiEndpoints.verifyOtp,
body: {"email": email, "type": "PASSWORD", "otpCode": otpCode},
@ -87,12 +81,12 @@ class AuthenticationAPI {
}
});
return response;
}on DioException catch (e){
} on DioException catch (e) {
if (e.response != null) {
if (e.response!.statusCode == 400) {
final errorData = e.response!.data;
String errorMessage = errorData['message'];
return errorMessage;
return errorMessage;
}
} else {
debugPrint('Error: ${e.message}');
@ -105,10 +99,10 @@ class AuthenticationAPI {
path: ApiEndpoints.getRegion,
showServerMessage: true,
expectedResponseModel: (json) {
return (json as List).map((zone) => RegionModel.fromJson(zone)).toList();
}
);
return (json as List)
.map((zone) => RegionModel.fromJson(zone))
.toList();
});
return response as List<RegionModel>;
}
}

View File

@ -0,0 +1,26 @@
import 'package:flutter/material.dart';
import 'package:syncrow_web/pages/device_managment/models/devices_model.dart';
import 'package:syncrow_web/services/api/http_service.dart';
import 'package:syncrow_web/utils/constants/api_const.dart';
class DevicesManagementApi {
Future<List<AllDevicesModel>> fetchDevices() async {
try {
final response = await HTTPService().get(
path: ApiEndpoints.getAllDevices,
showServerMessage: true,
expectedResponseModel: (json) {
List<dynamic> jsonData = json;
List<AllDevicesModel> devicesList = jsonData.map((jsonItem) {
return AllDevicesModel.fromJson(jsonItem);
}).toList();
return devicesList;
},
);
return response;
} catch (e) {
debugPrint('Error fetching $e');
return [];
}
}
}

View File

@ -1,16 +1,15 @@
import 'package:syncrow_web/pages/auth/model/user_model.dart';
import 'package:syncrow_web/pages/auth/model/user_model.dart';
import 'package:syncrow_web/services/api/http_service.dart';
import 'package:syncrow_web/utils/constants/api_const.dart';
class HomeApi{
Future fetchUserInfo(userId) async {
final response = await HTTPService().get(
path: ApiEndpoints.getUser.replaceAll('{userUuid}', userId!),
showServerMessage: true,
expectedResponseModel: (json) {
return UserModel.fromJson(json);
}
);
return response;
}
}
class HomeApi {
Future fetchUserInfo(userId) async {
final response = await HTTPService().get(
path: ApiEndpoints.getUser.replaceAll('{userUuid}', userId!),
showServerMessage: true,
expectedResponseModel: (json) {
return UserModel.fromJson(json);
});
return response;
}
}

View File

@ -4,7 +4,7 @@ import 'package:syncrow_web/services/api/http_interceptor.dart';
import 'package:syncrow_web/services/api/http_service.dart';
final GetIt serviceLocator = GetIt.instance;
//setupLocator() // to search for dependency injection in flutter
//setupLocator() // to search for dependency injection in flutter
initialSetup() {
serviceLocator.registerSingleton<HTTPInterceptor>(HTTPInterceptor());
//Base classes