Initial commit
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
import 'package:cargocalculaterapp/features/calculator/data/model/calculate_price_response.dart';
|
||||
import 'package:cargocalculaterapp/features/calculator/data/model/lead_create_response.dart';
|
||||
import 'package:cargocalculaterapp/features/calculator/data/model/lead_create_request.dart';
|
||||
import 'package:cargocalculaterapp/features/calculator/data/model/price_calculate_request.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import '../../../../core/error/failure.dart';
|
||||
|
||||
abstract class CalculatorRepository {
|
||||
Future<Either<Failure, CalculatePriceResponse>> calculatePrice(
|
||||
PriceCalculateRequest request,
|
||||
);
|
||||
Future<Either<Failure, LeadCreateResponse>> createLead(
|
||||
LeadCreateRequest request,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import 'package:cargocalculaterapp/core/error/failure.dart';
|
||||
import 'package:cargocalculaterapp/core/usecase/usecase.dart';
|
||||
import 'package:cargocalculaterapp/features/calculator/data/model/calculate_price_response.dart';
|
||||
import 'package:cargocalculaterapp/features/calculator/data/model/price_calculate_request.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
|
||||
import '../repository/calculator_repository.dart';
|
||||
|
||||
class CalculatePriceUseCase
|
||||
extends UseCase<CalculatePriceResponse, PriceCalculateRequest> {
|
||||
final CalculatorRepository repository;
|
||||
|
||||
CalculatePriceUseCase(this.repository);
|
||||
|
||||
@override
|
||||
Future<Either<Failure, CalculatePriceResponse>> call(
|
||||
PriceCalculateRequest params,
|
||||
) async {
|
||||
return await repository.calculatePrice(params);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import 'package:cargocalculaterapp/core/error/failure.dart';
|
||||
import 'package:cargocalculaterapp/core/usecase/usecase.dart';
|
||||
import 'package:cargocalculaterapp/features/calculator/data/model/lead_create_request.dart';
|
||||
import 'package:cargocalculaterapp/features/calculator/data/model/lead_create_response.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
|
||||
import '../repository/calculator_repository.dart';
|
||||
|
||||
class CreateLeadUseCase
|
||||
extends UseCase<LeadCreateResponse, LeadCreateRequest> {
|
||||
final CalculatorRepository repository;
|
||||
|
||||
CreateLeadUseCase(this.repository);
|
||||
|
||||
@override
|
||||
Future<Either<Failure, LeadCreateResponse>> call(
|
||||
LeadCreateRequest params,
|
||||
) async {
|
||||
return await repository.createLead(params);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user