83 lines
2.1 KiB
Dart
83 lines
2.1 KiB
Dart
import '../../../../core/network/api_handler.dart';
|
|
import '../../../../shared/models/api_response.dart';
|
|
import '../../../../shared/models/export_file_result.dart';
|
|
import '../../../../shared/models/user_management_models.dart';
|
|
import '../repositories/user_repository.dart';
|
|
|
|
class GetUsersUseCase {
|
|
GetUsersUseCase(this._repository);
|
|
|
|
final UserRepository _repository;
|
|
|
|
Future<Result<PaginatedResponse<ManagedUserModel>>> call(UserListQuery query) =>
|
|
_repository.getUsers(query);
|
|
}
|
|
|
|
class GetUserByIdUseCase {
|
|
GetUserByIdUseCase(this._repository);
|
|
|
|
final UserRepository _repository;
|
|
|
|
Future<Result<ManagedUserModel>> call(String id) => _repository.getUserById(id);
|
|
}
|
|
|
|
class CreateUserUseCase {
|
|
CreateUserUseCase(this._repository);
|
|
|
|
final UserRepository _repository;
|
|
|
|
Future<Result<ManagedUserModel>> call(CreateUserRequest request) =>
|
|
_repository.createUser(request);
|
|
}
|
|
|
|
class UpdateUserUseCase {
|
|
UpdateUserUseCase(this._repository);
|
|
|
|
final UserRepository _repository;
|
|
|
|
Future<Result<ManagedUserModel>> call(String id, UpdateUserRequest request) =>
|
|
_repository.updateUser(id, request);
|
|
}
|
|
|
|
class DeleteUserUseCase {
|
|
DeleteUserUseCase(this._repository);
|
|
|
|
final UserRepository _repository;
|
|
|
|
Future<Result<void>> call(String id) => _repository.deleteUser(id);
|
|
}
|
|
|
|
class GetUserSummaryUseCase {
|
|
GetUserSummaryUseCase(this._repository);
|
|
|
|
final UserRepository _repository;
|
|
|
|
Future<Result<UserSummaryModel>> call() => _repository.getSummary();
|
|
}
|
|
|
|
class GetUserFiltersUseCase {
|
|
GetUserFiltersUseCase(this._repository);
|
|
|
|
final UserRepository _repository;
|
|
|
|
Future<Result<UserFiltersModel>> call() => _repository.getFilters();
|
|
}
|
|
|
|
class UpdateProfileUseCase {
|
|
UpdateProfileUseCase(this._repository);
|
|
|
|
final UserRepository _repository;
|
|
|
|
Future<Result<ManagedUserModel>> call(UpdateProfileRequest request) =>
|
|
_repository.updateProfile(request);
|
|
}
|
|
|
|
class ExportUsersUseCase {
|
|
ExportUsersUseCase(this._repository);
|
|
|
|
final UserRepository _repository;
|
|
|
|
Future<Result<ExportFileResult>> call(UserListQuery query) =>
|
|
_repository.exportUsers(query);
|
|
}
|