38 lines
1.1 KiB
Dart
38 lines
1.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:tm_app/core/utils/result.dart';
|
|
import 'package:tm_app/data/repositories/your_tenders_repository.dart';
|
|
import 'package:tm_app/data/services/model/your_tender_model_request/your_tenders_request_model.dart';
|
|
import 'package:tm_app/data/services/model/your_tender_model_response/your_tender_model_response.dart';
|
|
|
|
class YourTendersViewModel with ChangeNotifier {
|
|
final YourTendersRepository yourTendersRepository;
|
|
YourTendersViewModel({required this.yourTendersRepository}) {
|
|
getTenders();
|
|
}
|
|
|
|
bool isLoading = false;
|
|
String? errorMessage;
|
|
YourTendersResponseModel? data;
|
|
|
|
Future<void> getTenders() async {
|
|
isLoading = true;
|
|
notifyListeners();
|
|
|
|
final result = await yourTendersRepository.getYourTenders(
|
|
request: const YourTendersRequestModel(id: '1'),
|
|
);
|
|
|
|
switch (result) {
|
|
case Ok<YourTendersResponseModel>():
|
|
data = result.value;
|
|
break;
|
|
case Error<YourTendersResponseModel>():
|
|
errorMessage = result.error.toString();
|
|
break;
|
|
}
|
|
|
|
isLoading = false;
|
|
notifyListeners();
|
|
}
|
|
}
|