location has been enabled in addition to sending the domain

This commit is contained in:
Daniah Ayad Al-sultani
2026-02-22 14:06:02 +03:00
parent f616a2c104
commit 8b0d849f1b
22 changed files with 312 additions and 43 deletions

View File

@@ -14,12 +14,16 @@ abstract class AttendanceRemoteDataSource {
required String employeeId,
required File faceImage,
bool localAuth = false,
double? latitude,
double? longitude,
});
Future<AttendanceResponseDto> logout({
required String employeeId,
required File faceImage,
bool localAuth = false,
double? latitude,
double? longitude,
});
Future<List<AttendanceRecordDto>> getAttendanceRecords({
@@ -46,12 +50,17 @@ class AttendanceRemoteDataSourceImpl implements AttendanceRemoteDataSource {
required String employeeId,
required File faceImage,
bool localAuth = false,
double? latitude,
double? longitude,
}) async {
try {
final formData = FormData.fromMap({
'EmployeeId': employeeId,
'FaceImage': await MultipartFile.fromFile(faceImage.path),
'IsAuth': localAuth.toString(),
'Domain': 'hrm.go.iq',
if (latitude != null) 'Latitude': latitude,
if (longitude != null) 'Longitude': longitude,
});
final response = await apiClient.post(
@@ -112,12 +121,16 @@ class AttendanceRemoteDataSourceImpl implements AttendanceRemoteDataSource {
required String employeeId,
required File faceImage,
bool localAuth = false,
double? latitude,
double? longitude,
}) async {
try {
final formData = FormData.fromMap({
'EmployeeId': employeeId,
'FaceImage': await MultipartFile.fromFile(faceImage.path),
'IsAuth': localAuth.toString(),
if (latitude != null) 'Latitude': latitude,
if (longitude != null) 'Longitude': longitude,
});
final response = await apiClient.post(

View File

@@ -19,6 +19,8 @@ class AttendanceRepositoryImpl implements AttendanceRepository {
employeeId: request.employeeId,
faceImage: request.faceImage,
localAuth: request.localAuth,
latitude: request.latitude,
longitude: request.longitude,
);
return AttendanceResponseModel(
@@ -36,6 +38,8 @@ class AttendanceRepositoryImpl implements AttendanceRepository {
employeeId: request.employeeId,
faceImage: request.faceImage,
localAuth: request.localAuth,
latitude: request.latitude,
longitude: request.longitude,
);
return AttendanceResponseModel(

View File

@@ -1,4 +1,5 @@
import 'package:dartz/dartz.dart';
import '../../core/config/app_urls.dart';
import '../../core/error/failures.dart';
import '../../core/error/exceptions.dart';
import '../../domain/models/theme_model.dart';
@@ -14,7 +15,14 @@ class ThemeRepositoryImpl implements ThemeRepository {
Future<Either<Failure, ThemeModel>> getTheme() async {
try {
final dto = await remote.getTheme();
return Right(ThemeModel(name: dto.name, logo: dto.logo));
return Right(
ThemeModel(
name: dto.name,
logo: dto.logo,
logoUrl: AppUrls.buildThemeLogoUrl(dto.logo),
),
);
} on ServerException catch (e) {
return Left(ServerFailure(e.message));
} catch (e) {