get like tenders refactor services
This commit is contained in:
@@ -8,13 +8,13 @@ class AppConfig {
|
|||||||
|
|
||||||
// این متد بر اساس محیط فعال، URL مناسب را برمیگرداند.
|
// این متد بر اساس محیط فعال، URL مناسب را برمیگرداند.
|
||||||
static String get apiBaseUrl {
|
static String get apiBaseUrl {
|
||||||
// return 'http://10.0.2.2:8081';
|
return 'http://10.0.2.2:8081';
|
||||||
// return '192.168.1.103:8081';
|
// return '192.168.1.103:8081';
|
||||||
// if (isDevelopment) {
|
// if (isDevelopment) {
|
||||||
// // Handle different platforms for local development
|
// // Handle different platforms for local development
|
||||||
// if (kIsWeb) {
|
// if (kIsWeb) {
|
||||||
// For web, use localhost
|
// For web, use localhost
|
||||||
return 'https://app.opplens.com';
|
// return 'https://app.opplens.com';
|
||||||
// return 'http://localhost:8081';
|
// return 'http://localhost:8081';
|
||||||
// } else {
|
// } else {
|
||||||
// For Android emulator, use 10.0.2.2 (special IP for host machine)
|
// 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) => AuthRepository(authService: context.read())),
|
||||||
Provider(
|
Provider(
|
||||||
create:
|
create:
|
||||||
(context) =>
|
(context) => YourTendersRepository(
|
||||||
YourTendersRepository(yourTendersService: context.read()),
|
yourTendersService: context.read(),
|
||||||
|
likedTendersService: context.read(),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
Provider(
|
Provider(
|
||||||
create:
|
create:
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'package:tm_app/core/utils/result.dart';
|
import 'package:tm_app/core/utils/result.dart';
|
||||||
import 'package:tm_app/data/services/liked_tenders_service.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/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 {
|
class LikedTendersRepository {
|
||||||
final LikedTendersService _likedTendersService;
|
final LikedTendersService _likedTendersService;
|
||||||
@@ -8,9 +9,8 @@ class LikedTendersRepository {
|
|||||||
: _likedTendersService = likedTendersService;
|
: _likedTendersService = likedTendersService;
|
||||||
|
|
||||||
Future<Result<LikedTendersResponse>> getLikedTenders({
|
Future<Result<LikedTendersResponse>> getLikedTenders({
|
||||||
int offset = 0,
|
required TenderFeedbackRequestModel requestModel,
|
||||||
int limit = 20,
|
|
||||||
}) {
|
}) {
|
||||||
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/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/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/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/model/tender_approvals_response/tender_approvals_response.dart';
|
||||||
import 'package:tm_app/data/services/your_tenders_service.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 {
|
class YourTendersRepository {
|
||||||
final YourTendersService _yourTendersService;
|
final YourTendersService _yourTendersService;
|
||||||
YourTendersRepository({required YourTendersService yourTendersService})
|
final LikedTendersService _likedTendersService;
|
||||||
: _yourTendersService = yourTendersService;
|
YourTendersRepository({
|
||||||
|
required YourTendersService yourTendersService,
|
||||||
|
required LikedTendersService likedTendersService,
|
||||||
|
}) : _yourTendersService = yourTendersService,
|
||||||
|
_likedTendersService = likedTendersService;
|
||||||
|
|
||||||
Future<Result<TenderApprovalsResponse>> getApprovedTenders({
|
Future<Result<TenderApprovalsResponse>> getApprovedTenders({
|
||||||
required int limit,
|
required int limit,
|
||||||
@@ -30,18 +37,8 @@ class YourTendersRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<Result<LikedTendersResponse>> getTendersFeedback({
|
Future<Result<LikedTendersResponse>> getTendersFeedback({
|
||||||
required int limit,
|
required TenderFeedbackRequestModel requestModel,
|
||||||
required int offset,
|
|
||||||
required String feedbackType,
|
|
||||||
required String dateFrom,
|
|
||||||
required String dateTo,
|
|
||||||
}) {
|
}) {
|
||||||
return _yourTendersService.getTendersFeedback(
|
return _likedTendersService.getLikedTenders(requestModel: requestModel);
|
||||||
limit: limit,
|
|
||||||
offset: offset,
|
|
||||||
feedbackType: feedbackType,
|
|
||||||
dateFrom: dateFrom,
|
|
||||||
dateTo: dateTo,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,16 @@
|
|||||||
class LikedTendersApi {
|
class LikedTendersApi {
|
||||||
static const String likedTenders =
|
static const String tendersFeedback = '/api/v1/feedback';
|
||||||
'/api/v1/feedback?feedback_type=like';
|
|
||||||
|
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;
|
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 'package:tm_app/data/services/model/liked_tenders_response/liked_tenders_response.dart';
|
||||||
|
|
||||||
import '../../../core/network/network_manager.dart';
|
import '../../../core/network/network_manager.dart';
|
||||||
|
import 'model/request_models/tender_feedback_request_model/tender_feedback_request_model.dart';
|
||||||
|
|
||||||
class LikedTendersService {
|
class LikedTendersService {
|
||||||
LikedTendersService({required NetworkManager networkManager})
|
LikedTendersService({required NetworkManager networkManager})
|
||||||
@@ -11,10 +12,15 @@ class LikedTendersService {
|
|||||||
final NetworkManager _networkManager;
|
final NetworkManager _networkManager;
|
||||||
|
|
||||||
Future<Result<LikedTendersResponse>> getLikedTenders({
|
Future<Result<LikedTendersResponse>> getLikedTenders({
|
||||||
int offset = 0,
|
required TenderFeedbackRequestModel requestModel,
|
||||||
int limit = 20,
|
|
||||||
}) async {
|
}) 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(
|
final result = await _networkManager.makeRequest(
|
||||||
uri,
|
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/core/utils/result.dart';
|
||||||
import 'package:tm_app/data/services/api/your_tenders_api.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 'package:tm_app/data/services/model/tender_approvals_response/tender_approvals_response.dart';
|
||||||
|
|
||||||
import '../../../core/network/network_manager.dart';
|
import '../../../core/network/network_manager.dart';
|
||||||
@@ -48,25 +47,4 @@ class YourTendersService {
|
|||||||
);
|
);
|
||||||
return result;
|
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 'package:tm_app/view_models/home_view_model.dart';
|
||||||
|
|
||||||
import '../data/services/model/feedback_response/feedback_response.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_by_id_response/tender_approvals_by_id_response.dart';
|
||||||
import '../data/services/model/tender_approvals_data/tender_approvals_data.dart';
|
import '../data/services/model/tender_approvals_data/tender_approvals_data.dart';
|
||||||
|
|
||||||
@@ -83,9 +84,14 @@ class LikedTendersViewModel with ChangeNotifier {
|
|||||||
|
|
||||||
errorMessage = null;
|
errorMessage = null;
|
||||||
|
|
||||||
final result = await _likedTendersRepository.getLikedTenders(
|
final requestModel = TenderFeedbackRequestModel(
|
||||||
offset: _offset,
|
offset: _offset,
|
||||||
limit: _limit,
|
limit: _limit,
|
||||||
|
feedbackType: 'like',
|
||||||
|
);
|
||||||
|
|
||||||
|
final result = await _likedTendersRepository.getLikedTenders(
|
||||||
|
requestModel: requestModel,
|
||||||
);
|
);
|
||||||
|
|
||||||
switch (result) {
|
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 '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/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 {
|
class YourTendersViewModel with ChangeNotifier {
|
||||||
final YourTendersRepository yourTendersRepository;
|
final YourTendersRepository yourTendersRepository;
|
||||||
@@ -132,14 +133,18 @@ class YourTendersViewModel with ChangeNotifier {
|
|||||||
}
|
}
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
|
|
||||||
final result = await yourTendersRepository.getTendersFeedback(
|
final requestModel = TenderFeedbackRequestModel(
|
||||||
limit: _limit,
|
|
||||||
offset: _offset,
|
offset: _offset,
|
||||||
|
limit: _limit,
|
||||||
feedbackType: _currentFeedbackType ?? feedbackType,
|
feedbackType: _currentFeedbackType ?? feedbackType,
|
||||||
dateFrom: startDateUnix,
|
dateFrom: startDateUnix,
|
||||||
dateTo: endDateUnix,
|
dateTo: endDateUnix,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
final result = await yourTendersRepository.getTendersFeedback(
|
||||||
|
requestModel: requestModel,
|
||||||
|
);
|
||||||
|
|
||||||
switch (result) {
|
switch (result) {
|
||||||
case Ok<LikedTendersResponse>():
|
case Ok<LikedTendersResponse>():
|
||||||
final incoming = result.value;
|
final incoming = result.value;
|
||||||
|
|||||||
Reference in New Issue
Block a user