merge branches
This commit is contained in:
@@ -1,21 +1,33 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:tm_app/core/utils/result.dart';
|
||||
import 'package:tm_app/data/repositories/tender_detail_repository.dart';
|
||||
import 'package:tm_app/data/repositories/tenders_repository.dart';
|
||||
import 'package:tm_app/data/services/model/tender_data/tender_data.dart';
|
||||
import 'package:tm_app/data/services/model/tender_detail_response/tender_detail_response_model.dart';
|
||||
|
||||
import '../data/services/model/tender_approvals_toggle_response/tender_approvals_toggle_response.dart';
|
||||
|
||||
class TenderDetailViewModel with ChangeNotifier {
|
||||
final TenderDetailRepository _tenderDetailRepository;
|
||||
final TendersRepository _tendersRepository;
|
||||
|
||||
TenderDetailViewModel({
|
||||
required TenderDetailRepository tenderDetailRepository,
|
||||
}) : _tenderDetailRepository = tenderDetailRepository;
|
||||
required TendersRepository tendersRepository,
|
||||
}) : _tenderDetailRepository = tenderDetailRepository,
|
||||
_tendersRepository = tendersRepository;
|
||||
|
||||
bool _isLoading = false;
|
||||
bool _isSubmitApprovalLoading = false;
|
||||
bool _isRejectApprovalLoading = false;
|
||||
String? _errorMessage;
|
||||
TenderData? _tenderDetail;
|
||||
|
||||
bool approvalStatus = false;
|
||||
|
||||
bool get isLoading => _isLoading;
|
||||
bool get isSubmitApprovalLoading => _isSubmitApprovalLoading;
|
||||
bool get isRejectApprovalLoading => _isRejectApprovalLoading;
|
||||
String? get errorMessage => _errorMessage;
|
||||
TenderData? get tenderDetail => _tenderDetail;
|
||||
|
||||
@@ -37,4 +49,56 @@ class TenderDetailViewModel with ChangeNotifier {
|
||||
_isLoading = false;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> submitTenderApproval({
|
||||
required String tenderId,
|
||||
required String submissionMode,
|
||||
}) async {
|
||||
_isSubmitApprovalLoading = true;
|
||||
notifyListeners();
|
||||
final result = await _tendersRepository.toggleApprovals(
|
||||
tenderId: tenderId,
|
||||
status: 'approved',
|
||||
submissionMode: submissionMode,
|
||||
);
|
||||
switch (result) {
|
||||
case Ok<TenderApprovalsToggleResponse>():
|
||||
approvalStatus = true;
|
||||
break;
|
||||
case Error<TenderApprovalsToggleResponse>():
|
||||
_errorMessage = result.error.toString();
|
||||
approvalStatus = false;
|
||||
break;
|
||||
}
|
||||
_isSubmitApprovalLoading = false;
|
||||
notifyListeners();
|
||||
_errorMessage = null;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> rejectTenderApproval({
|
||||
required String tenderId,
|
||||
required String submissionMode,
|
||||
}) async {
|
||||
_isRejectApprovalLoading = true;
|
||||
notifyListeners();
|
||||
final result = await _tendersRepository.toggleApprovals(
|
||||
tenderId: tenderId,
|
||||
status: 'rejected',
|
||||
submissionMode: submissionMode,
|
||||
);
|
||||
switch (result) {
|
||||
case Ok<TenderApprovalsToggleResponse>():
|
||||
approvalStatus = true;
|
||||
break;
|
||||
case Error<TenderApprovalsToggleResponse>():
|
||||
_errorMessage = result.error.toString();
|
||||
approvalStatus = false;
|
||||
break;
|
||||
}
|
||||
_isRejectApprovalLoading = false;
|
||||
notifyListeners();
|
||||
_errorMessage = null;
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user