Implement tender workflows and dashboard integration
continuous-integration/drone/push Build encountered an error
continuous-integration/drone/push Build encountered an error
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
import 'package:tm_app/core/network/network_manager.dart';
|
||||
import 'package:tm_app/core/utils/result.dart';
|
||||
import 'package:tm_app/data/services/api/tender_submissions_api.dart';
|
||||
import 'package:tm_app/data/services/model/tender_submission/tender_submission.dart';
|
||||
|
||||
class TenderSubmissionsService {
|
||||
TenderSubmissionsService({required NetworkManager networkManager})
|
||||
: _networkManager = networkManager;
|
||||
|
||||
final NetworkManager _networkManager;
|
||||
|
||||
Future<Result<TenderSubmissionsResponse>> getSubmissions({
|
||||
List<String>? statuses,
|
||||
List<String>? stages,
|
||||
int? createdFrom,
|
||||
int? createdTo,
|
||||
int limit = 20,
|
||||
int offset = 0,
|
||||
String sortBy = 'updated_at',
|
||||
String sortOrder = 'desc',
|
||||
}) {
|
||||
return _networkManager.makeRequest(
|
||||
TenderSubmissionsApi.list,
|
||||
TenderSubmissionsResponse.fromJson,
|
||||
queryParameters: {
|
||||
if (statuses?.isNotEmpty == true) 'status': statuses,
|
||||
if (stages?.isNotEmpty == true) 'stage': stages,
|
||||
if (createdFrom != null) 'created_from': createdFrom,
|
||||
if (createdTo != null) 'created_to': createdTo,
|
||||
'limit': limit,
|
||||
'offset': offset,
|
||||
'sort_by': sortBy,
|
||||
'sort_order': sortOrder,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
Future<Result<TenderSubmissionResponse>> getById(String id) =>
|
||||
_networkManager.makeRequest(
|
||||
TenderSubmissionsApi.byId(id),
|
||||
TenderSubmissionResponse.fromJson,
|
||||
);
|
||||
|
||||
Future<Result<TenderSubmissionResponse>> getByTender(String tenderId) =>
|
||||
_networkManager.makeRequest(
|
||||
TenderSubmissionsApi.byTender(tenderId),
|
||||
TenderSubmissionResponse.fromJson,
|
||||
);
|
||||
|
||||
Future<Result<TenderSubmissionResponse>> ensure(
|
||||
String tenderId, {
|
||||
String? companyId,
|
||||
}) => _networkManager.makeRequest(
|
||||
TenderSubmissionsApi.ensure(tenderId),
|
||||
TenderSubmissionResponse.fromJson,
|
||||
method: 'POST',
|
||||
queryParameters: {
|
||||
if (companyId?.isNotEmpty == true) 'company_id': companyId,
|
||||
},
|
||||
);
|
||||
|
||||
Future<Result<TenderSubmissionResponse>> updateStatus({
|
||||
required String id,
|
||||
required String status,
|
||||
String? reason,
|
||||
String? description,
|
||||
}) => _networkManager.makeRequest(
|
||||
TenderSubmissionsApi.status(id),
|
||||
TenderSubmissionResponse.fromJson,
|
||||
method: 'PATCH',
|
||||
data: {
|
||||
'status': status,
|
||||
if (reason?.trim().isNotEmpty == true) 'reason': reason!.trim(),
|
||||
if (description?.trim().isNotEmpty == true)
|
||||
'description': description!.trim(),
|
||||
},
|
||||
);
|
||||
|
||||
Future<Result<TenderSubmissionStatsResponse>> getStats() =>
|
||||
_networkManager.makeRequest(
|
||||
TenderSubmissionsApi.stats,
|
||||
TenderSubmissionStatsResponse.fromJson,
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user