diff --git a/lib/core/config/app_config.dart b/lib/core/config/app_config.dart index 542bc74..8e569f5 100644 --- a/lib/core/config/app_config.dart +++ b/lib/core/config/app_config.dart @@ -8,13 +8,13 @@ class AppConfig { // این متد بر اساس محیط فعال، URL مناسب را برمی‌گرداند. static String get apiBaseUrl { - // return 'http://10.0.2.2:8081'; + return 'http://10.0.2.2:8081'; // return '192.168.1.103:8081'; // if (isDevelopment) { // // Handle different platforms for local development // if (kIsWeb) { // For web, use localhost - return 'https://app.opplens.com'; + // return 'https://app.opplens.com'; // return 'http://localhost:8081'; // } else { // For Android emulator, use 10.0.2.2 (special IP for host machine) diff --git a/lib/core/config/dependencies.dart b/lib/core/config/dependencies.dart index 0fdb68d..5c3bdfb 100644 --- a/lib/core/config/dependencies.dart +++ b/lib/core/config/dependencies.dart @@ -64,8 +64,10 @@ List get repositories { Provider(create: (context) => AuthRepository(authService: context.read())), Provider( create: - (context) => - YourTendersRepository(yourTendersService: context.read()), + (context) => YourTendersRepository( + yourTendersService: context.read(), + likedTendersService: context.read(), + ), ), Provider( create: diff --git a/lib/data/repositories/liked_tenders_repository.dart b/lib/data/repositories/liked_tenders_repository.dart index e944797..6f2d575 100644 --- a/lib/data/repositories/liked_tenders_repository.dart +++ b/lib/data/repositories/liked_tenders_repository.dart @@ -1,6 +1,7 @@ import 'package:tm_app/core/utils/result.dart'; import 'package:tm_app/data/services/liked_tenders_service.dart'; import 'package:tm_app/data/services/model/liked_tenders_response/liked_tenders_response.dart'; +import 'package:tm_app/data/services/model/request_models/tender_feedback_request_model/tender_feedback_request_model.dart'; class LikedTendersRepository { final LikedTendersService _likedTendersService; @@ -8,9 +9,8 @@ class LikedTendersRepository { : _likedTendersService = likedTendersService; Future> getLikedTenders({ - int offset = 0, - int limit = 20, + required TenderFeedbackRequestModel requestModel, }) { - return _likedTendersService.getLikedTenders(offset: offset, limit: limit); + return _likedTendersService.getLikedTenders(requestModel: requestModel); } } diff --git a/lib/data/repositories/your_tenders_repository.dart b/lib/data/repositories/your_tenders_repository.dart index 2968a73..7f59ee2 100644 --- a/lib/data/repositories/your_tenders_repository.dart +++ b/lib/data/repositories/your_tenders_repository.dart @@ -1,13 +1,20 @@ import 'package:tm_app/core/utils/result.dart'; +import 'package:tm_app/data/services/liked_tenders_service.dart'; import 'package:tm_app/data/services/model/liked_tenders_response/liked_tenders_response.dart'; import 'package:tm_app/data/services/model/request_models/get_tenders_request_model/get_tenders_request_model.dart'; import 'package:tm_app/data/services/model/tender_approvals_response/tender_approvals_response.dart'; import 'package:tm_app/data/services/your_tenders_service.dart'; +import '../services/model/request_models/tender_feedback_request_model/tender_feedback_request_model.dart'; + class YourTendersRepository { final YourTendersService _yourTendersService; - YourTendersRepository({required YourTendersService yourTendersService}) - : _yourTendersService = yourTendersService; + final LikedTendersService _likedTendersService; + YourTendersRepository({ + required YourTendersService yourTendersService, + required LikedTendersService likedTendersService, + }) : _yourTendersService = yourTendersService, + _likedTendersService = likedTendersService; Future> getApprovedTenders({ required int limit, @@ -30,18 +37,8 @@ class YourTendersRepository { } Future> getTendersFeedback({ - required int limit, - required int offset, - required String feedbackType, - required String dateFrom, - required String dateTo, + required TenderFeedbackRequestModel requestModel, }) { - return _yourTendersService.getTendersFeedback( - limit: limit, - offset: offset, - feedbackType: feedbackType, - dateFrom: dateFrom, - dateTo: dateTo, - ); + return _likedTendersService.getLikedTenders(requestModel: requestModel); } } diff --git a/lib/data/services/api/liked_tenders_api.dart b/lib/data/services/api/liked_tenders_api.dart index 94d0f34..673fb72 100644 --- a/lib/data/services/api/liked_tenders_api.dart +++ b/lib/data/services/api/liked_tenders_api.dart @@ -1,4 +1,16 @@ class LikedTendersApi { - static const String likedTenders = - '/api/v1/feedback?feedback_type=like'; + static const String tendersFeedback = '/api/v1/feedback'; + + static String getTendersFeedback({ + required int limit, + required int offset, + required String feedbackType, + required String dateFrom, + required String dateTo, + }) { + if (dateFrom.isNotEmpty && dateTo.isNotEmpty) { + return '$tendersFeedback?feedback_type=$feedbackType&limit=$limit&offset=$offset&date_from=$dateFrom&date_to=$dateTo'; + } + return '$tendersFeedback?feedback_type=$feedbackType&limit=$limit&offset=$offset'; + } } diff --git a/lib/data/services/api/your_tenders_api.dart b/lib/data/services/api/your_tenders_api.dart index fbb00cd..5dab60b 100644 --- a/lib/data/services/api/your_tenders_api.dart +++ b/lib/data/services/api/your_tenders_api.dart @@ -36,19 +36,4 @@ class YourTendersApi { return url; } - - static const String tendersFeedback = '/api/v1/feedback'; - - static String getTendersFeedback({ - required int limit, - required int offset, - required String feedbackType, - required String dateFrom, - required String dateTo, - }) { - if (dateFrom.isNotEmpty && dateTo.isNotEmpty) { - return '$tendersFeedback?feedback_type=$feedbackType&limit=$limit&offset=$offset&date_from=$dateFrom&date_to=$dateTo'; - } - return '$tendersFeedback?feedback_type=$feedbackType&limit=$limit&offset=$offset'; - } } diff --git a/lib/data/services/liked_tenders_service.dart b/lib/data/services/liked_tenders_service.dart index b58a79d..75b304a 100644 --- a/lib/data/services/liked_tenders_service.dart +++ b/lib/data/services/liked_tenders_service.dart @@ -3,6 +3,7 @@ import 'package:tm_app/data/services/api/liked_tenders_api.dart'; import 'package:tm_app/data/services/model/liked_tenders_response/liked_tenders_response.dart'; import '../../../core/network/network_manager.dart'; +import 'model/request_models/tender_feedback_request_model/tender_feedback_request_model.dart'; class LikedTendersService { LikedTendersService({required NetworkManager networkManager}) @@ -11,10 +12,15 @@ class LikedTendersService { final NetworkManager _networkManager; Future> getLikedTenders({ - int offset = 0, - int limit = 20, + required TenderFeedbackRequestModel requestModel, }) async { - final uri = '${LikedTendersApi.likedTenders}&limit=$limit&offset=$offset'; + final uri = LikedTendersApi.getTendersFeedback( + limit: requestModel.limit, + offset: requestModel.offset, + feedbackType: requestModel.feedbackType, + dateFrom: requestModel.dateFrom, + dateTo: requestModel.dateTo, + ); final result = await _networkManager.makeRequest( uri, diff --git a/lib/data/services/model/request_models/tender_feedback_request_model/tender_feedback_request_model.dart b/lib/data/services/model/request_models/tender_feedback_request_model/tender_feedback_request_model.dart new file mode 100644 index 0000000..c56470b --- /dev/null +++ b/lib/data/services/model/request_models/tender_feedback_request_model/tender_feedback_request_model.dart @@ -0,0 +1,15 @@ +class TenderFeedbackRequestModel { + final String feedbackType; + final String dateFrom; + final String dateTo; + final int limit; + final int offset; + + TenderFeedbackRequestModel({ + required this.feedbackType, + this.dateFrom = '', + this.dateTo = '', + this.limit = 10, + this.offset = 0, + }); +} diff --git a/lib/data/services/your_tenders_service.dart b/lib/data/services/your_tenders_service.dart index 7a9b499..3234744 100644 --- a/lib/data/services/your_tenders_service.dart +++ b/lib/data/services/your_tenders_service.dart @@ -1,6 +1,5 @@ import 'package:tm_app/core/utils/result.dart'; import 'package:tm_app/data/services/api/your_tenders_api.dart'; -import 'package:tm_app/data/services/model/liked_tenders_response/liked_tenders_response.dart'; import 'package:tm_app/data/services/model/tender_approvals_response/tender_approvals_response.dart'; import '../../../core/network/network_manager.dart'; @@ -48,25 +47,4 @@ class YourTendersService { ); return result; } - - Future> getTendersFeedback({ - required int limit, - required int offset, - required String feedbackType, - required String dateFrom, - required String dateTo, - }) async { - final result = await _networkManager.makeRequest( - YourTendersApi.getTendersFeedback( - limit: limit, - offset: offset, - feedbackType: feedbackType, - dateFrom: dateFrom, - dateTo: dateTo, - ), - (json) => LikedTendersResponse.fromJson(json), - method: 'GET', - ); - return result; - } } diff --git a/lib/view_models/liked_tenders_view_model.dart b/lib/view_models/liked_tenders_view_model.dart index 4dd0c66..0799a6d 100644 --- a/lib/view_models/liked_tenders_view_model.dart +++ b/lib/view_models/liked_tenders_view_model.dart @@ -8,6 +8,7 @@ import 'package:tm_app/data/services/model/tender_approvals_toggle_response/tend import 'package:tm_app/view_models/home_view_model.dart'; import '../data/services/model/feedback_response/feedback_response.dart'; +import '../data/services/model/request_models/tender_feedback_request_model/tender_feedback_request_model.dart'; import '../data/services/model/tender_approvals_by_id_response/tender_approvals_by_id_response.dart'; import '../data/services/model/tender_approvals_data/tender_approvals_data.dart'; @@ -83,9 +84,14 @@ class LikedTendersViewModel with ChangeNotifier { errorMessage = null; - final result = await _likedTendersRepository.getLikedTenders( + final requestModel = TenderFeedbackRequestModel( offset: _offset, limit: _limit, + feedbackType: 'like', + ); + + final result = await _likedTendersRepository.getLikedTenders( + requestModel: requestModel, ); switch (result) { diff --git a/lib/view_models/your_tenders_view_model.dart b/lib/view_models/your_tenders_view_model.dart index 295ff11..3be71e0 100644 --- a/lib/view_models/your_tenders_view_model.dart +++ b/lib/view_models/your_tenders_view_model.dart @@ -7,6 +7,7 @@ import 'package:tm_app/data/services/model/tender_approvals_response/tender_appr import 'package:tm_app/views/your_tenders/strings/your_tenders_strings.dart'; import '../data/services/model/request_models/get_tenders_request_model/get_tenders_request_model.dart'; +import '../data/services/model/request_models/tender_feedback_request_model/tender_feedback_request_model.dart'; class YourTendersViewModel with ChangeNotifier { final YourTendersRepository yourTendersRepository; @@ -132,14 +133,18 @@ class YourTendersViewModel with ChangeNotifier { } notifyListeners(); - final result = await yourTendersRepository.getTendersFeedback( - limit: _limit, + final requestModel = TenderFeedbackRequestModel( offset: _offset, + limit: _limit, feedbackType: _currentFeedbackType ?? feedbackType, dateFrom: startDateUnix, dateTo: endDateUnix, ); + final result = await yourTendersRepository.getTendersFeedback( + requestModel: requestModel, + ); + switch (result) { case Ok(): final incoming = result.value;