attendence login/logout has been implemented

This commit is contained in:
Daniah Ayad Al-sultani
2026-01-15 22:35:10 +03:00
parent 3b3ed5e640
commit 56e2c0ffaa
20 changed files with 538 additions and 200 deletions

View File

@@ -1,3 +1,6 @@
import 'package:coda_project/data/datasources/attendance_remote_data_source.dart';
import 'package:coda_project/data/repositories/attendance_repository_impl.dart';
import 'package:coda_project/domain/repositories/attendance_repository.dart';
import 'package:dio/dio.dart';
import 'package:get_it/get_it.dart';
import 'package:shared_preferences/shared_preferences.dart';
@@ -7,6 +10,8 @@ import '../../data/datasources/user_local_data_source.dart';
import '../../data/repositories/auth_repository_impl.dart';
import '../../domain/repositories/auth_repository.dart';
import '../../domain/usecases/login_usecase.dart';
import '../../domain/usecases/attendance_login_usecase.dart';
import '../../domain/usecases/attendance_logout_usecase.dart';
import '../../presentation/blocs/login/login_bloc.dart';
final sl = GetIt.instance;
@@ -14,7 +19,7 @@ final sl = GetIt.instance;
Future<void> initializeDependencies() async {
// External
sl.registerLazySingleton<Dio>(() => Dio());
// SharedPreferences
final sharedPreferences = await SharedPreferences.getInstance();
sl.registerLazySingleton<SharedPreferences>(() => sharedPreferences);
@@ -28,17 +33,14 @@ Future<void> initializeDependencies() async {
sl.registerLazySingleton<AuthRemoteDataSource>(
() => AuthRemoteDataSourceImpl(apiClient: sl()),
);
sl.registerLazySingleton<UserLocalDataSource>(
() => UserLocalDataSourceImpl(sharedPreferences: sl()),
);
// Repositories
sl.registerLazySingleton<AuthRepository>(
() => AuthRepositoryImpl(
remoteDataSource: sl(),
localDataSource: sl(),
),
() => AuthRepositoryImpl(remoteDataSource: sl(), localDataSource: sl()),
);
// Use cases
@@ -46,4 +48,17 @@ Future<void> initializeDependencies() async {
// Blocs
sl.registerFactory(() => LoginBloc(loginUseCase: sl()));
//Attendence
sl.registerLazySingleton<AttendanceRemoteDataSource>(
() => AttendanceRemoteDataSourceImpl(apiClient: sl()),
);
sl.registerLazySingleton<AttendanceRepository>(
() => AttendanceRepositoryImpl(remoteDataSource: sl()),
);
sl.registerLazySingleton(() => AttendanceLoginUsecase(repository: sl()));
sl.registerLazySingleton(() => AttendanceLogoutUseCase(repository: sl()));
}