fixed services
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
import 'package:tm_app/data/services/model/login_response/login_response_model.dart';
|
||||
import 'package:tm_app/data/services/model/logout_response/logout_response.dart';
|
||||
|
||||
import '../../core/utils/result.dart';
|
||||
import '../services/auth_service.dart';
|
||||
import '../services/model/logout_response/logout_response.dart';
|
||||
|
||||
class AuthRepository {
|
||||
final AuthService _authService;
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
import 'package:tm_app/core/utils/result.dart';
|
||||
import 'package:tm_app/data/services/home_service.dart';
|
||||
import 'package:tm_app/data/services/model/home/home_request/home_request_model.dart';
|
||||
import 'package:tm_app/data/services/model/home/home_response/home_response_model.dart';
|
||||
import 'package:tm_app/data/services/model/recommended_tenders_response/recommended_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_state_response/tender_approvals_state_response.dart';
|
||||
@@ -13,12 +11,6 @@ class HomeRepository {
|
||||
: _homeService = homeService;
|
||||
final HomeService _homeService;
|
||||
|
||||
Future<Result<HomeResponseModel>> getHome({
|
||||
HomeRequestModel? homeRequestModel,
|
||||
}) async {
|
||||
return _homeService.getHome(homeRequestModel: homeRequestModel);
|
||||
}
|
||||
|
||||
Future<Result<RecommendedTendersResponse>> getHomeRecommendedTenders({
|
||||
required int limit,
|
||||
required int offset,
|
||||
|
||||
@@ -28,7 +28,7 @@ class TendersRepository {
|
||||
required String tenderId,
|
||||
required String feedbackType,
|
||||
}) async {
|
||||
return _tendersService.feedback(
|
||||
return _tendersService.toggleFeedback(
|
||||
tenderId: tenderId,
|
||||
feedbackType: feedbackType,
|
||||
);
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
class AuthApi {
|
||||
static const String login = '/api/v1/profile/login';
|
||||
static const String logout = '/api/v1/profile/logout';
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
class HomeApi {
|
||||
static const String recommendedTenders = '/api/v1/tenders/recommend';
|
||||
static String getRecommendedTenders({
|
||||
required int limit,
|
||||
required int offset,
|
||||
}) {
|
||||
return '$recommendedTenders?limit=$limit&offset=$offset';
|
||||
}
|
||||
|
||||
static const String tenderApprovals = '/api/v1/tender-approvals';
|
||||
static const String tenderApprovalStats = '/api/v1/tender-approvals/stats';
|
||||
static const String statsCompany = '/api/v1/feedback/stats/company';
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
class ProfileApi {
|
||||
static const String profile = '/api/v1/profile';
|
||||
static const String companyProfile = '/api/v1/companies';
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
class TenderDetailApi {
|
||||
static const String tenderDetails = '/api/v1/tenders/details';
|
||||
static String getTenderDetails({required String tenderId}) {
|
||||
return '$tenderDetails/$tenderId';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
class TendersApi {
|
||||
static const String tenders = '/api/v1/tenders';
|
||||
static String getTenders({required int limit, required int offset}) {
|
||||
return '$tenders?limit=$limit&offset=$offset';
|
||||
}
|
||||
|
||||
static const String feedbackTender = '/api/v1/feedback/tender';
|
||||
static String getFeedbackForTender({required String tenderId}) {
|
||||
return '$feedbackTender/$tenderId';
|
||||
}
|
||||
|
||||
static const String feedback = '/api/v1/feedback';
|
||||
|
||||
static const String tenderApprovals = '/api/v1/tender-approvals';
|
||||
|
||||
static const String tenderApprovalsTender = '/api/v1/tender-approvals/tender';
|
||||
static String getTenderApprovalById({required String tenderId}) {
|
||||
return '$tenderApprovalsTender/$tenderId';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
class YourTendersApi {
|
||||
static const String tenderApprovalsStatus =
|
||||
'/api/v1/tender-approvals?status=submitted';
|
||||
}
|
||||
@@ -3,6 +3,8 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:tm_app/core/utils/logger.dart';
|
||||
import 'package:tm_app/data/services/api/auth_api.dart';
|
||||
import 'package:tm_app/data/services/model/login_response/login_response_model.dart';
|
||||
import 'package:tm_app/data/services/model/logout_response/logout_response.dart';
|
||||
|
||||
@@ -22,7 +24,7 @@ class AuthService {
|
||||
var data = jsonEncode({"password": password, "username": username});
|
||||
|
||||
final result = await _networkManager.makeRequest(
|
||||
'/api/v1/profile/login',
|
||||
AuthApi.login,
|
||||
method: 'POST',
|
||||
(json) => LoginResponseModel.fromJson(json),
|
||||
data: data,
|
||||
@@ -41,7 +43,7 @@ class AuthService {
|
||||
|
||||
Future<Result<LogoutResponse>> logout() async {
|
||||
final result = await _networkManager.makeRequest(
|
||||
'/api/v1/profile/logout',
|
||||
AuthApi.logout,
|
||||
method: 'DELETE',
|
||||
(json) => LogoutResponse.fromJson(json),
|
||||
);
|
||||
@@ -52,5 +54,6 @@ class AuthService {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.remove('bearer');
|
||||
await prefs.remove('refresh_token');
|
||||
appLogger.info('tokens cleared!');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:tm_app/core/utils/logger.dart';
|
||||
import 'package:tm_app/core/utils/result.dart';
|
||||
import 'package:tm_app/data/services/mock_data/home_mock_data.dart';
|
||||
import 'package:tm_app/data/services/api/home_api.dart';
|
||||
import 'package:tm_app/data/services/model/feedback_stats_response/feedback_stat_response.dart';
|
||||
import 'package:tm_app/data/services/model/home/home_request/home_request_model.dart';
|
||||
import 'package:tm_app/data/services/model/home/home_response/home_response_model.dart';
|
||||
import 'package:tm_app/data/services/model/recommended_tenders_response/recommended_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_state_response/tender_approvals_state_response.dart';
|
||||
@@ -18,36 +12,12 @@ class HomeService {
|
||||
: _networkManager = networkManager;
|
||||
final NetworkManager _networkManager;
|
||||
|
||||
Future<Result<HomeResponseModel>> getHome({
|
||||
HomeRequestModel? homeRequestModel,
|
||||
}) async {
|
||||
try {
|
||||
// final result = await _networkManager.makeRequest(
|
||||
// '/api/v1/home',
|
||||
// (json) => HomeResponseModel.fromJson(json),
|
||||
// method: 'GET',
|
||||
// );
|
||||
await Future.delayed(Duration(seconds: 2));
|
||||
appLogger.info('get home success');
|
||||
// TODO: will change when api is ready
|
||||
return Result.ok(
|
||||
HomeResponseModel.fromJson(jsonDecode(homeMockData)['data']),
|
||||
);
|
||||
} on DioException catch (e) {
|
||||
appLogger.error('get home failed: $e');
|
||||
return Result.error(e);
|
||||
} on Exception catch (e, stackTrace) {
|
||||
appLogger.error('get home failed: $e', stackTrace: stackTrace);
|
||||
return Result.error(Exception(e));
|
||||
}
|
||||
}
|
||||
|
||||
Future<Result<RecommendedTendersResponse>> getRecommendedTenders({
|
||||
required int limit,
|
||||
required int offset,
|
||||
}) async {
|
||||
final result = await _networkManager.makeRequest(
|
||||
'/api/v1/tenders/recommend?limit=$limit&offset=$offset',
|
||||
HomeApi.getRecommendedTenders(limit: limit, offset: offset),
|
||||
method: 'GET',
|
||||
(json) => RecommendedTendersResponse.fromJson(json),
|
||||
);
|
||||
@@ -56,7 +26,7 @@ class HomeService {
|
||||
|
||||
Future<Result<TenderApprovalsResponse>> getYourTenders() async {
|
||||
final result = await _networkManager.makeRequest(
|
||||
'/api/v1/tender-approvals',
|
||||
HomeApi.tenderApprovals,
|
||||
(json) => TenderApprovalsResponse.fromJson(json),
|
||||
method: 'GET',
|
||||
);
|
||||
@@ -67,7 +37,7 @@ class HomeService {
|
||||
Future<Result<TenderApprovalsStateResponse>>
|
||||
getTendersApprovalsState() async {
|
||||
final result = await _networkManager.makeRequest(
|
||||
'/api/v1/tender-approvals/stats',
|
||||
HomeApi.tenderApprovalStats,
|
||||
(json) => TenderApprovalsStateResponse.fromJson(json),
|
||||
method: 'GET',
|
||||
);
|
||||
@@ -77,7 +47,7 @@ class HomeService {
|
||||
|
||||
Future<Result<FeedbackStatResponse>> getFeedbackStats() async {
|
||||
final result = await _networkManager.makeRequest(
|
||||
'/api/v1/feedback/stats/company',
|
||||
HomeApi.statsCompany,
|
||||
(json) => FeedbackStatResponse.fromJson(json),
|
||||
method: 'GET',
|
||||
);
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import 'package:tm_app/data/services/api/profile_api.dart';
|
||||
import 'package:tm_app/data/services/model/company_profile_response/company_profile_response.dart';
|
||||
import 'package:tm_app/data/services/model/profile_response/profile_response.dart';
|
||||
|
||||
@@ -12,7 +13,7 @@ class ProfileService {
|
||||
|
||||
Future<Result<ProfileResponse>> getProfile() async {
|
||||
final result = await _networkManager.makeRequest(
|
||||
'/api/v1/profile',
|
||||
ProfileApi.profile,
|
||||
method: 'GET',
|
||||
(json) => ProfileResponse.fromJson(json),
|
||||
);
|
||||
@@ -21,7 +22,7 @@ class ProfileService {
|
||||
|
||||
Future<Result<CompanyProfileResponse>> getCompanyProfile() async {
|
||||
final result = await _networkManager.makeRequest(
|
||||
'/api/v1/companies',
|
||||
ProfileApi.companyProfile,
|
||||
method: 'GET',
|
||||
(json) => CompanyProfileResponse.fromJson(json),
|
||||
);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:tm_app/core/utils/result.dart';
|
||||
import 'package:tm_app/data/services/api/tender_detail_api.dart';
|
||||
import 'package:tm_app/data/services/model/tender_detail_response/tender_detail_response_model.dart';
|
||||
|
||||
import '../../core/network/network_manager.dart';
|
||||
@@ -13,7 +14,7 @@ class TenderDetailService {
|
||||
required String tenderId,
|
||||
}) async {
|
||||
final result = await _networkManager.makeRequest(
|
||||
'/api/v1/tenders/details/$tenderId',
|
||||
TenderDetailApi.getTenderDetails(tenderId: tenderId),
|
||||
method: 'GET',
|
||||
(json) => TenderDetailResponseModel.fromJson(json),
|
||||
);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:tm_app/core/utils/result.dart';
|
||||
import 'package:tm_app/data/services/api/tenders_api.dart';
|
||||
import 'package:tm_app/data/services/model/feedback_response/feedback_response.dart';
|
||||
import 'package:tm_app/data/services/model/tender_approvals_by_id_response/tender_approvals_by_id_response.dart';
|
||||
import 'package:tm_app/data/services/model/tender_approvals_toggle_response/tender_approvals_toggle_response.dart';
|
||||
@@ -18,7 +19,7 @@ class TendersService {
|
||||
required int offset,
|
||||
}) async {
|
||||
final result = await _networkManager.makeRequest(
|
||||
'/api/v1/tenders?limit=$limit&offset=$offset',
|
||||
TendersApi.getTenders(limit: limit, offset: offset),
|
||||
method: 'GET',
|
||||
(json) => TendersResponse.fromJson(json),
|
||||
);
|
||||
@@ -29,14 +30,14 @@ class TendersService {
|
||||
required String tenderId,
|
||||
}) async {
|
||||
final result = await _networkManager.makeRequest(
|
||||
'/api/v1/feedback/tender/$tenderId',
|
||||
TendersApi.getFeedbackForTender(tenderId: tenderId),
|
||||
method: 'GET',
|
||||
(json) => FeedbackResponse.fromJson(json),
|
||||
);
|
||||
return result;
|
||||
}
|
||||
|
||||
Future<Result<FeedbackResponse>> feedback({
|
||||
Future<Result<FeedbackResponse>> toggleFeedback({
|
||||
required String tenderId,
|
||||
required String feedbackType,
|
||||
}) async {
|
||||
@@ -45,7 +46,7 @@ class TendersService {
|
||||
'tender_id': tenderId,
|
||||
});
|
||||
final result = await _networkManager.makeRequest(
|
||||
'/api/v1/feedback',
|
||||
TendersApi.feedback,
|
||||
method: 'POST',
|
||||
(json) => FeedbackResponse.fromJson(json),
|
||||
data: data,
|
||||
@@ -64,7 +65,7 @@ class TendersService {
|
||||
'status': status,
|
||||
});
|
||||
final result = await _networkManager.makeRequest(
|
||||
'/api/v1/tender-approvals',
|
||||
TendersApi.tenderApprovals,
|
||||
method: 'POST',
|
||||
(json) => TenderApprovalsToggleResponse.fromJson(json),
|
||||
data: data,
|
||||
@@ -76,7 +77,7 @@ class TendersService {
|
||||
required String tenderId,
|
||||
}) async {
|
||||
final result = await _networkManager.makeRequest(
|
||||
'/api/v1/tender-approvals/tender/$tenderId',
|
||||
TendersApi.getTenderApprovalById(tenderId: tenderId),
|
||||
method: 'GET',
|
||||
(json) => TenderApprovalsByIdResponse.fromJson(json),
|
||||
);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:tm_app/core/utils/logger.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/model/tender_approvals_response/tender_approvals_response.dart';
|
||||
|
||||
import '../../../core/network/network_manager.dart';
|
||||
@@ -12,23 +11,12 @@ class YourTendersService {
|
||||
final NetworkManager _networkManager;
|
||||
|
||||
Future<Result<TenderApprovalsResponse>> getApprovedTenders() async {
|
||||
try {
|
||||
final result = await _networkManager.makeRequest(
|
||||
'/api/v1/tender-approvals?status=submitted',
|
||||
(json) => TenderApprovalsResponse.fromJson(json),
|
||||
method: 'GET',
|
||||
);
|
||||
final result = await _networkManager.makeRequest(
|
||||
YourTendersApi.tenderApprovalsStatus,
|
||||
(json) => TenderApprovalsResponse.fromJson(json),
|
||||
method: 'GET',
|
||||
);
|
||||
|
||||
return result;
|
||||
} on DioException catch (e) {
|
||||
appLogger.error('get submitted tenders failed: $e');
|
||||
return Result.error(e);
|
||||
} on Exception catch (e, stackTrace) {
|
||||
appLogger.error(
|
||||
'get submitted tenders failed: $e',
|
||||
stackTrace: stackTrace,
|
||||
);
|
||||
return Result.error(Exception(e));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user