get liked list approvals
This commit is contained in:
@@ -6,6 +6,8 @@ import 'package:tm_app/data/services/model/liked_tender_feedback/liked_tender_fe
|
||||
import 'package:tm_app/data/services/model/liked_tenders_response/liked_tenders_response.dart';
|
||||
|
||||
import '../data/services/model/feedback_response/feedback_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';
|
||||
|
||||
class LikedTendersViewModel with ChangeNotifier {
|
||||
final LikedTendersRepository _likedTendersRepository;
|
||||
@@ -21,6 +23,11 @@ class LikedTendersViewModel with ChangeNotifier {
|
||||
bool hasMore = true;
|
||||
String? errorMessage;
|
||||
LikedTendersResponse? data;
|
||||
TenderApprovalsData? _tenderApprovalData;
|
||||
|
||||
TenderApprovalsData? get tenderApprovalData => _tenderApprovalData;
|
||||
|
||||
List<TenderApprovalsData> tenderApprovals = [];
|
||||
|
||||
int _offset = 0;
|
||||
final int _limit = 7;
|
||||
@@ -60,6 +67,10 @@ class LikedTendersViewModel with ChangeNotifier {
|
||||
final incoming = result.value;
|
||||
final incomingList = incoming.data?.feedback ?? [];
|
||||
|
||||
for (var element in incomingList) {
|
||||
await getTenderApproval(element.tenderId!);
|
||||
}
|
||||
|
||||
if (reset) {
|
||||
data = incoming;
|
||||
} else {
|
||||
@@ -151,4 +162,98 @@ class LikedTendersViewModel with ChangeNotifier {
|
||||
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> getTenderApproval(String tenderId) async {
|
||||
errorMessage = null;
|
||||
notifyListeners();
|
||||
|
||||
final result = await _tendersRepository.getTenderApprovals(
|
||||
tenderId: tenderId,
|
||||
);
|
||||
|
||||
switch (result) {
|
||||
case Ok<TenderApprovalsByIdResponse>():
|
||||
_tenderApprovalData = result.value.data;
|
||||
tenderApprovals.add(_tenderApprovalData!);
|
||||
break;
|
||||
case Error<TenderApprovalsByIdResponse>():
|
||||
errorMessage = result.error.toString();
|
||||
break;
|
||||
}
|
||||
|
||||
notifyListeners();
|
||||
errorMessage = null;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
TenderApprovalsData? getApprovalStatusForTender(String tenderId) {
|
||||
try {
|
||||
return tenderApprovals.firstWhere((a) => a.tenderId == tenderId);
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/// Check if tender approval exists for a specific tender
|
||||
bool hasTenderApprovalForTender(String tenderId) {
|
||||
return tenderApprovals.any((a) => a.tenderId == tenderId);
|
||||
}
|
||||
|
||||
// Future<void> submitTenderApproval({
|
||||
// required String tenderId,
|
||||
// required String submissionMode,
|
||||
// }) async {
|
||||
|
||||
// errorMessage = null;
|
||||
// notifyListeners();
|
||||
// final result = await _tendersRepository.toggleApprovals(
|
||||
// tenderId: tenderId,
|
||||
// status: 'submitted',
|
||||
// submissionMode: submissionMode,
|
||||
// );
|
||||
// switch (result) {
|
||||
// case Ok<TenderApprovalsToggleResponse>():
|
||||
// approvalStatus = true;
|
||||
// _status = result.value.data?.status ?? '';
|
||||
// break;
|
||||
// case Error<TenderApprovalsToggleResponse>():
|
||||
// _errorMessage = result.error.toString();
|
||||
// approvalStatus = false;
|
||||
// break;
|
||||
// }
|
||||
// _isSubmitApprovalLoading = false;
|
||||
// notifyListeners();
|
||||
// _errorMessage = null;
|
||||
// approvalStatus = false;
|
||||
// notifyListeners();
|
||||
// }
|
||||
|
||||
// Future<void> rejectTenderApproval({
|
||||
// required String tenderId,
|
||||
// required String submissionMode,
|
||||
// }) async {
|
||||
// _isRejectApprovalLoading = true;
|
||||
// _errorMessage = null;
|
||||
// notifyListeners();
|
||||
// final result = await _tendersRepository.toggleApprovals(
|
||||
// tenderId: tenderId,
|
||||
// status: 'rejected',
|
||||
// submissionMode: submissionMode,
|
||||
// );
|
||||
// switch (result) {
|
||||
// case Ok<TenderApprovalsToggleResponse>():
|
||||
// approvalStatus = true;
|
||||
// _status = result.value.data?.status ?? '';
|
||||
// break;
|
||||
// case Error<TenderApprovalsToggleResponse>():
|
||||
// _errorMessage = result.error.toString();
|
||||
// approvalStatus = false;
|
||||
// break;
|
||||
// }
|
||||
// _isRejectApprovalLoading = false;
|
||||
// notifyListeners();
|
||||
// _errorMessage = null;
|
||||
// approvalStatus = false;
|
||||
// notifyListeners();
|
||||
// }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user