You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
HMG_Patient_App_New/lib/features/authentication/authentication_repo.dart

58 lines
2.0 KiB
Dart

2 months ago
import 'dart:async';
import 'dart:developer';
import 'package:dartz/dartz.dart';
import 'package:hmg_patient_app_new/core/api/api_client.dart';
import 'package:hmg_patient_app_new/core/api_consts.dart';
import 'package:hmg_patient_app_new/core/exceptions/api_exception.dart';
import 'package:hmg_patient_app_new/core/exceptions/api_failure.dart';
2 months ago
import 'package:hmg_patient_app_new/features/authentication/models/select_device_by_imei.dart';
import 'package:hmg_patient_app_new/services/logger_service.dart';
abstract class AuthenticationRepo {
Future<Either<Failure, SelectDeviceByImeiRespModelElement?>> selectDeviceByImei({required String firebaseToken});
}
class AuthenticationRepoImp implements AuthenticationRepo {
final ApiClient apiClient;
final LoggerService loggerService;
AuthenticationRepoImp({required this.loggerService, required this.apiClient});
@override
2 months ago
Future<Either<Failure, SelectDeviceByImeiRespModelElement?>> selectDeviceByImei({
required String firebaseToken,
}) async {
final mapDevice = {"IMEI": firebaseToken};
2 months ago
try {
2 months ago
final completer = Completer<Either<Failure, SelectDeviceByImeiRespModelElement?>>();
await apiClient.post(
ApiConsts.selectDeviceImei,
body: mapDevice,
onSuccess: (response, statusCode) {
try {
final SelectDeviceByImeiRespModelElement model =
SelectDeviceByImeiRespModelElement.fromJson(response['Patient_SELECTDeviceIMEIbyIMEIList'][0]);
completer.complete(Right(model));
} catch (e) {
completer.complete(Left(ServerFailure(e.toString())));
}
},
onFailure: (error, statusCode) {
loggerService.logInfo(("$error - $statusCode").toString());
completer.complete(Left(ServerFailure(error)));
},
);
return await completer.future;
} on APIException catch (e) {
loggerService.errorLogs(e.toString());
2 months ago
return Left(ServerFailure(e.message));
} catch (e) {
loggerService.errorLogs(e.toString());
return Left(ServerFailure(e.toString()));
}
}
2 months ago
}