Initial commit
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
import 'package:cargocalculaterapp/features/profile/data/models/profile_response.dart';
|
||||
import 'package:cargocalculaterapp/features/profile/data/models/profile_update_request.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import '../../../../core/error/failure.dart';
|
||||
import '../../data/models/delete_account_response.dart';
|
||||
|
||||
abstract class ProfileRepository {
|
||||
Future<Either<Failure, ProfileResponse>> getProfile(bool isCache);
|
||||
|
||||
Future<Either<Failure, ProfileResponse>> updateProfile(
|
||||
ProfileUpdateRequest request,
|
||||
);
|
||||
|
||||
Future<Either<Failure, DeleteAccountResponse>> deleteProfile();
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import 'package:cargocalculaterapp/core/error/failure.dart';
|
||||
import 'package:cargocalculaterapp/features/profile/data/models/delete_account_response.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
|
||||
import '../../../../core/usecase/usecase.dart';
|
||||
import '../repository/profile_repository.dart';
|
||||
|
||||
class DeleteProfileUseCase extends UseCase<DeleteAccountResponse, NoParams> {
|
||||
final ProfileRepository repository;
|
||||
|
||||
DeleteProfileUseCase(this.repository);
|
||||
|
||||
@override
|
||||
Future<Either<Failure, DeleteAccountResponse>> call(NoParams params) async {
|
||||
return await repository.deleteProfile();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import 'package:cargocalculaterapp/core/error/failure.dart';
|
||||
import 'package:cargocalculaterapp/core/usecase/usecase.dart';
|
||||
import 'package:cargocalculaterapp/features/profile/data/models/profile_update_request.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
|
||||
import '../../data/models/profile_response.dart';
|
||||
import '../repository/profile_repository.dart';
|
||||
|
||||
class ProfileUpdateUseCase
|
||||
extends UseCase<ProfileResponse, ProfileUpdateRequest> {
|
||||
final ProfileRepository repository;
|
||||
|
||||
ProfileUpdateUseCase(this.repository);
|
||||
|
||||
@override
|
||||
Future<Either<Failure, ProfileResponse>> call(
|
||||
ProfileUpdateRequest params,
|
||||
) async {
|
||||
final response = await repository.updateProfile(params);
|
||||
return response;
|
||||
}
|
||||
}
|
||||
17
lib/features/profile/domain/usecase/profile_usecase.dart
Normal file
17
lib/features/profile/domain/usecase/profile_usecase.dart
Normal file
@@ -0,0 +1,17 @@
|
||||
import 'package:cargocalculaterapp/core/error/failure.dart';
|
||||
import 'package:cargocalculaterapp/core/usecase/usecase.dart';
|
||||
import 'package:cargocalculaterapp/features/profile/data/models/profile_response.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import '../repository/profile_repository.dart';
|
||||
|
||||
class ProfileUseCase extends UseCase<ProfileResponse, bool> {
|
||||
final ProfileRepository repository;
|
||||
|
||||
ProfileUseCase(this.repository);
|
||||
|
||||
@override
|
||||
Future<Either<Failure, ProfileResponse>> call(bool params) async {
|
||||
final response = await repository.getProfile(params);
|
||||
return response;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user