merge branches
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:tm_app/data/services/model/customer/customer.dart';
|
||||
|
||||
import '../core/utils/result.dart';
|
||||
import '../data/repositories/auth_repository.dart';
|
||||
import '../data/services/model/login_response/login_response_model.dart';
|
||||
import '../data/services/model/logout_response/logout_response.dart';
|
||||
import '../data/services/model/user/user.dart';
|
||||
|
||||
class AuthViewModel with ChangeNotifier {
|
||||
final AuthRepository _authRepository;
|
||||
@@ -30,11 +30,11 @@ class AuthViewModel with ChangeNotifier {
|
||||
// Auth state
|
||||
bool _isLoading = false;
|
||||
String? _errorMessage;
|
||||
User? _loggedInUser;
|
||||
Customer? _loggedInUser;
|
||||
|
||||
bool get isLoading => _isLoading;
|
||||
String? get errorMessage => _errorMessage;
|
||||
User? get loggedInUser => _loggedInUser;
|
||||
Customer? get loggedInUser => _loggedInUser;
|
||||
|
||||
void togglePasswordVisibility() {
|
||||
_obscurePassword = !_obscurePassword;
|
||||
@@ -57,8 +57,7 @@ class AuthViewModel with ChangeNotifier {
|
||||
|
||||
switch (result) {
|
||||
case Ok<LoginResponseModel>():
|
||||
_loggedInUser = result.value.data.user;
|
||||
|
||||
_loggedInUser = result.value.data.customer;
|
||||
break;
|
||||
case Error<LoginResponseModel>():
|
||||
_errorMessage = result.error.toString();
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
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/services/model/tender_detail_request/tender_detail_request.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';
|
||||
|
||||
class TenderDetailViewModel with ChangeNotifier {
|
||||
@@ -9,32 +9,25 @@ class TenderDetailViewModel with ChangeNotifier {
|
||||
|
||||
TenderDetailViewModel({
|
||||
required TenderDetailRepository tenderDetailRepository,
|
||||
}) : _tenderDetailRepository = tenderDetailRepository {
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
getTenderDetail(id: 'JNDFKMDV-100JF');
|
||||
});
|
||||
}
|
||||
}) : _tenderDetailRepository = tenderDetailRepository;
|
||||
|
||||
bool _isLoading = false;
|
||||
String? _errorMessage;
|
||||
TenderDetailResponseModel? _tenderDetail;
|
||||
TenderData? _tenderDetail;
|
||||
|
||||
bool get isLoading => _isLoading;
|
||||
String? get errorMessage => _errorMessage;
|
||||
TenderDetailResponseModel? get tenderDetail => _tenderDetail;
|
||||
TenderData? get tenderDetail => _tenderDetail;
|
||||
|
||||
Future<void> getTenderDetail({required String id}) async {
|
||||
_isLoading = true;
|
||||
_errorMessage = null;
|
||||
notifyListeners();
|
||||
|
||||
final request = TenderDetailRequest(id: id);
|
||||
final result = await _tenderDetailRepository.getTenderDetail(
|
||||
request: request,
|
||||
);
|
||||
final result = await _tenderDetailRepository.getTenderDetail(tenderId: id);
|
||||
switch (result) {
|
||||
case Ok<TenderDetailResponseModel>():
|
||||
_tenderDetail = result.value;
|
||||
_tenderDetail = result.value.data;
|
||||
break;
|
||||
case Error<TenderDetailResponseModel>():
|
||||
_errorMessage = result.error.toString();
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:tm_app/data/repositories/tenders_repository.dart';
|
||||
import 'package:tm_app/data/services/model/tender/tender_model.dart';
|
||||
import 'package:tm_app/data/services/model/tenders/tender_dislike_response/tender_dislike_response.dart';
|
||||
import 'package:tm_app/data/services/model/tenders/tender_like_response/tender_like_response.dart';
|
||||
import 'package:tm_app/data/services/model/tenders/tender_reject_response/tender_reject_response.dart';
|
||||
import 'package:tm_app/data/services/model/tenders/tender_submit_response/tender_submit_response.dart';
|
||||
import 'package:tm_app/data/services/model/tenders/tenders_request/tenders_request.dart';
|
||||
import 'package:tm_app/data/services/model/tenders/tenders_response/tenders_response.dart';
|
||||
|
||||
import '../core/utils/result.dart';
|
||||
@@ -35,10 +30,7 @@ class TendersViewModel with ChangeNotifier {
|
||||
_errorMessage = null;
|
||||
notifyListeners();
|
||||
|
||||
final request = TendersRequest(id: 'JNDFKMDV-100JF');
|
||||
final result = await _tendersRepository.getTenders(
|
||||
tendersRequestModel: request,
|
||||
);
|
||||
final result = await _tendersRepository.getTenders();
|
||||
switch (result) {
|
||||
case Ok<TendersResponse>():
|
||||
_tendersResponse = result.value;
|
||||
@@ -61,98 +53,102 @@ class TendersViewModel with ChangeNotifier {
|
||||
bool? rejected,
|
||||
bool? submitted,
|
||||
}) {
|
||||
if (_tendersResponse?.tenders != null) {
|
||||
final updatedTenders =
|
||||
_tendersResponse!.tenders!.map((element) {
|
||||
if (element.tenderId == tenderId) {
|
||||
return element.copyWith(
|
||||
liked: liked,
|
||||
disliked: disliked,
|
||||
rejected: rejected,
|
||||
submitted: submitted,
|
||||
);
|
||||
}
|
||||
return element;
|
||||
}).toList();
|
||||
// if (_tendersResponse?.tendersData?.tenders != null) {
|
||||
// final updatedTenders =
|
||||
// _tendersResponse!.tendersData!.tenders!.map((element) {
|
||||
// if (element.tenderId == tenderId) {
|
||||
// return element.copyWith(
|
||||
// liked: liked,
|
||||
// disliked: disliked,
|
||||
// rejected: rejected,
|
||||
// submitted: submitted,
|
||||
// );
|
||||
// }
|
||||
// return element;
|
||||
// }).toList();
|
||||
|
||||
_tendersResponse = _tendersResponse!.copyWith(tenders: updatedTenders);
|
||||
}
|
||||
// _tendersResponse = _tendersResponse!.copyWith(
|
||||
// tendersData: _tendersResponse!.tendersData!.copyWith(
|
||||
// tenders: updatedTenders,
|
||||
// ),
|
||||
// );
|
||||
// }
|
||||
}
|
||||
|
||||
/// Sets a tender as liked
|
||||
Future<void> markLiked(TenderModel tender) async {
|
||||
_updateTenderState(
|
||||
tender.tenderId!,
|
||||
liked: true,
|
||||
disliked: false,
|
||||
rejected: false,
|
||||
submitted: tender.submitted,
|
||||
);
|
||||
notifyListeners();
|
||||
final result = await _tendersRepository.likeTender();
|
||||
switch (result) {
|
||||
case Ok<TenderLikeResponse>():
|
||||
break;
|
||||
case Error<TenderLikeResponse>():
|
||||
break;
|
||||
}
|
||||
// _updateTenderState(
|
||||
// tender.id!,
|
||||
// liked: true,
|
||||
// disliked: false,
|
||||
// rejected: false,
|
||||
// submitted: tender.submitted,
|
||||
// );
|
||||
// notifyListeners();
|
||||
// final result = await _tendersRepository.likeTender();
|
||||
// switch (result) {
|
||||
// case Ok<TenderLikeResponse>():
|
||||
// break;
|
||||
// case Error<TenderLikeResponse>():
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
|
||||
/// Sets a tender as disliked
|
||||
Future<void> markDisliked(TenderModel tender) async {
|
||||
_updateTenderState(
|
||||
tender.tenderId!,
|
||||
disliked: true,
|
||||
liked: false,
|
||||
rejected: tender.rejected,
|
||||
submitted: false,
|
||||
);
|
||||
notifyListeners();
|
||||
final result = await _tendersRepository.dislikeTender();
|
||||
switch (result) {
|
||||
case Ok<TenderDislikeResponse>():
|
||||
break;
|
||||
case Error<TenderDislikeResponse>():
|
||||
break;
|
||||
}
|
||||
// _updateTenderState(
|
||||
// tender.tenderId!,
|
||||
// disliked: true,
|
||||
// liked: false,
|
||||
// rejected: tender.rejected,
|
||||
// submitted: false,
|
||||
// );
|
||||
// notifyListeners();
|
||||
// final result = await _tendersRepository.dislikeTender();
|
||||
// switch (result) {
|
||||
// case Ok<TenderDislikeResponse>():
|
||||
// break;
|
||||
// case Error<TenderDislikeResponse>():
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
|
||||
/// Sets a tender as rejected
|
||||
Future<void> markRejected(TenderModel tender) async {
|
||||
_updateTenderState(
|
||||
tender.tenderId!,
|
||||
rejected: true,
|
||||
liked: false,
|
||||
disliked: tender.disliked,
|
||||
submitted: false,
|
||||
);
|
||||
notifyListeners();
|
||||
final result = await _tendersRepository.rejectTender();
|
||||
switch (result) {
|
||||
case Ok<TenderRejectResponse>():
|
||||
break;
|
||||
case Error<TenderRejectResponse>():
|
||||
break;
|
||||
}
|
||||
// _updateTenderState(
|
||||
// tender.tenderId!,
|
||||
// rejected: true,
|
||||
// liked: false,
|
||||
// disliked: tender.disliked,
|
||||
// submitted: false,
|
||||
// );
|
||||
// notifyListeners();
|
||||
// final result = await _tendersRepository.rejectTender();
|
||||
// switch (result) {
|
||||
// case Ok<TenderRejectResponse>():
|
||||
// break;
|
||||
// case Error<TenderRejectResponse>():
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
|
||||
/// Sets a tender as submitted
|
||||
Future<void> markSubmitted(TenderModel tender) async {
|
||||
_updateTenderState(
|
||||
tender.tenderId!,
|
||||
submitted: true,
|
||||
liked: tender.liked,
|
||||
disliked: false,
|
||||
rejected: false,
|
||||
);
|
||||
notifyListeners();
|
||||
final result = await _tendersRepository.submitTender();
|
||||
switch (result) {
|
||||
case Ok<TenderSubmitResponse>():
|
||||
break;
|
||||
case Error<TenderSubmitResponse>():
|
||||
break;
|
||||
}
|
||||
// _updateTenderState(
|
||||
// tender.tenderId!,
|
||||
// submitted: true,
|
||||
// liked: tender.liked,
|
||||
// disliked: false,
|
||||
// rejected: false,
|
||||
// );
|
||||
// notifyListeners();
|
||||
// final result = await _tendersRepository.submitTender();
|
||||
// switch (result) {
|
||||
// case Ok<TenderSubmitResponse>():
|
||||
// break;
|
||||
// case Error<TenderSubmitResponse>():
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
|
||||
/// Clears a specific state for a tender
|
||||
@@ -163,52 +159,52 @@ class TendersViewModel with ChangeNotifier {
|
||||
bool? isRejected,
|
||||
bool? isSubmitted,
|
||||
}) {
|
||||
_updateTenderState(
|
||||
tenderModel.tenderId!,
|
||||
liked: isLiked ?? tenderModel.liked,
|
||||
disliked: isDisliked ?? tenderModel.disliked,
|
||||
rejected: isRejected ?? tenderModel.rejected,
|
||||
submitted: isSubmitted ?? tenderModel.submitted,
|
||||
);
|
||||
// _updateTenderState(
|
||||
// tenderModel.tenderId!,
|
||||
// liked: isLiked ?? tenderModel.liked,
|
||||
// disliked: isDisliked ?? tenderModel.disliked,
|
||||
// rejected: isRejected ?? tenderModel.rejected,
|
||||
// submitted: isSubmitted ?? tenderModel.submitted,
|
||||
// );
|
||||
}
|
||||
|
||||
/// Toggles like state for a tender
|
||||
void toggleLike(TenderModel tender) {
|
||||
if (tender.liked == true) {
|
||||
clearTenderState(tender, isLiked: false);
|
||||
} else {
|
||||
markLiked(tender);
|
||||
}
|
||||
notifyListeners();
|
||||
// if (tender.liked == true) {
|
||||
// clearTenderState(tender, isLiked: false);
|
||||
// } else {
|
||||
// markLiked(tender);
|
||||
// }
|
||||
// notifyListeners();
|
||||
}
|
||||
|
||||
/// Toggles dislike state for a tender
|
||||
void toggleDislike(TenderModel tender) {
|
||||
if (tender.disliked == true) {
|
||||
clearTenderState(tender, isDisliked: false);
|
||||
} else {
|
||||
markDisliked(tender);
|
||||
}
|
||||
notifyListeners();
|
||||
// if (tender.disliked == true) {
|
||||
// clearTenderState(tender, isDisliked: false);
|
||||
// } else {
|
||||
// markDisliked(tender);
|
||||
// }
|
||||
// notifyListeners();
|
||||
}
|
||||
|
||||
/// Toggles reject state for a tender
|
||||
void toggleReject(TenderModel tender) {
|
||||
if (tender.rejected == true) {
|
||||
clearTenderState(tender, isRejected: false);
|
||||
} else {
|
||||
markRejected(tender);
|
||||
}
|
||||
notifyListeners();
|
||||
// if (tender.rejected == true) {
|
||||
// clearTenderState(tender, isRejected: false);
|
||||
// } else {
|
||||
// markRejected(tender);
|
||||
// }
|
||||
// notifyListeners();
|
||||
}
|
||||
|
||||
/// Toggles submit state for a tender
|
||||
void toggleSubmit(TenderModel tender) {
|
||||
if (tender.submitted == true) {
|
||||
clearTenderState(tender, isSubmitted: false);
|
||||
} else {
|
||||
markSubmitted(tender);
|
||||
}
|
||||
notifyListeners();
|
||||
// if (tender.submitted == true) {
|
||||
// clearTenderState(tender, isSubmitted: false);
|
||||
// } else {
|
||||
// markSubmitted(tender);
|
||||
// }
|
||||
// notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user