Aidra Connect 10.0.2+16
Aidra Connect Mobile Application
Loading...
Searching...
No Matches
collection_repository_impl.dart
Go to the documentation of this file.
1import 'dart:developer';
2import 'package:dartz/dartz.dart';
3
4import '../../../../core/errors/exception_failure_adapter.dart';
5import '../../../../core/errors/failures.dart';
6import '../../domain/entities/collection_entity.dart';
7import '../../domain/entities/create_collection_req_entity.dart';
8import '../../domain/entities/update_collection_req_entity.dart';
9import '../../domain/repository/collection_repository.dart';
10import '../data_sources/remote_datasource/collections_remote_datasource.dart';
11import '../models/collection_model.dart';
12import '../models/create_collection_model.dart';
13
16 CollectionsRepositoryImpl({required this.remoteDataSource});
17
18 @override
19 Future<Either<Failure, List<ProposedTimeEntity>>>
21 try {
22 final results = await remoteDataSource.fetchCollectionTimes();
23 return right(results.map((e) => ProposedTimeModel.fromJson(e)).toList());
24 } catch (e) {
25 return left(ExceptionFailureAdapter.adapt(e));
26 }
27 }
28
29 @override
30 Future<Either<Failure, List<CollectionEntity>>> loadOnGoingCollectionRequets({
31 required String partnerId,
32 }) async {
33 try {
34 final results = await remoteDataSource.fetchOnGoingCollectionRequests(
35 param: partnerId,
36 );
37 return right(results.map((e) => CollectionModel.fromJson(e)).toList());
38 } catch (e) {
39 return left(ExceptionFailureAdapter.adapt(e));
40 }
41 }
42
43 @override
44 Future<Either<Failure, List<CollectionEntity>>>
46 required String partnerId,
47 }) async {
48 try {
49 final results = await remoteDataSource.fetchCompletedCollectionRequests(
50 param: partnerId,
51 );
52 return right(results.map((e) => CollectionModel.fromJson(e)).toList());
53 } catch (e) {
54 return left(ExceptionFailureAdapter.adapt(e));
55 }
56 }
57
58 @override
59 Future<Either<Failure, void>> createCollectionRequest({
61 }) async {
62 try {
63 await remoteDataSource.createCollectionRequest(
64 body: CreateCollectionModel.fromEntity(collection).toJson(),
65 );
66 return right(null);
67 } catch (e) {
68 log(CreateCollectionModel.fromEntity(collection).toJson().toString());
69 log(e.toString());
70 return left(ExceptionFailureAdapter.adapt(e));
71 }
72 }
73
74 @override
75 Future<Either<Failure, dynamic>> updateCollectionRequest({
76 required UpdateCollectionReqEntity updatedCollection,
77 }) async {
78 try {
79 await remoteDataSource.updateCollectionRequest(
80 body: updatedCollection.toJson(),
81 );
82 return right(null);
83 } catch (e) {
84 log(e.toString());
85 return left(ExceptionFailureAdapter.adapt(e));
86 }
87 }
88}
class CalenderTransactionsSummaryVeiw extends StatefulWidget collection
Future< Map< String, dynamic > > updateCollectionRequest({ required Map< String, dynamic > body, }) async
Future< List< dynamic > > fetchOnGoingCollectionRequests({ required String param, }) async
Future< Map< String, dynamic > > createCollectionRequest({ required Map< String, dynamic > body, }) async
Future< List< dynamic > > fetchCompletedCollectionRequests({ required String param, }) async
override Future< Either< Failure, List< ProposedTimeEntity > > > loadCollectionTimes() async
override Future< Either< Failure, void > > createCollectionRequest({ required CreateCollectionRequestEntity collection, }) async
override Future< Either< Failure, dynamic > > updateCollectionRequest({ required UpdateCollectionReqEntity updatedCollection, }) async
override Future< Either< Failure, List< CollectionEntity > > > loadOnGoingCollectionRequets({ required String partnerId, }) async
CollectionsRepositoryImpl({required this.remoteDataSource})
override Future< Either< Failure, List< CollectionEntity > > > loadCompletedCollectionRequests({ required String partnerId, }) async
final CollectionsRemoteDataSource remoteDataSource
static Failure adapt(dynamic exception)
final num partnerId
class CompanyModel extends CompanyEntity ProposedTimeModel({ required super.id, required super.name, })
const CreateCollectionModel({ required super.collectionRequest, required super.dateOrder, required List< RequestOrderLineModel >? super.orderLines, required super.partnerId, required super.proposedTime, required super.userId, required super.instruction, })