get like tenders refactor services
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -64,8 +64,10 @@ List<SingleChildWidget> 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:
|
||||
|
||||
@@ -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<Result<LikedTendersResponse>> getLikedTenders({
|
||||
int offset = 0,
|
||||
int limit = 20,
|
||||
required TenderFeedbackRequestModel requestModel,
|
||||
}) {
|
||||
return _likedTendersService.getLikedTenders(offset: offset, limit: limit);
|
||||
return _likedTendersService.getLikedTenders(requestModel: requestModel);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Result<TenderApprovalsResponse>> getApprovedTenders({
|
||||
required int limit,
|
||||
@@ -30,18 +37,8 @@ class YourTendersRepository {
|
||||
}
|
||||
|
||||
Future<Result<LikedTendersResponse>> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Result<LikedTendersResponse>> 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,
|
||||
|
||||
+15
@@ -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,
|
||||
});
|
||||
}
|
||||
@@ -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<Result<LikedTendersResponse>> 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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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<LikedTendersResponse>():
|
||||
final incoming = result.value;
|
||||
|
||||
Reference in New Issue
Block a user