mirror of
https://github.com/Mercantec-GHC/h4-projekt-gruppe-0-sm.git
synced 2025-04-27 16:24:07 +02:00
41 lines
1.2 KiB
Dart
41 lines
1.2 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:mobile/controllers/session.dart';
|
|
import 'package:mobile/models/receipt.dart';
|
|
import 'package:mobile/results.dart';
|
|
import 'package:mobile/server/server.dart';
|
|
|
|
class ReceiptHeaderController extends ChangeNotifier {
|
|
List<ReceiptHeader> _receiptHeaders = [];
|
|
|
|
final Server server;
|
|
|
|
final SessionController sessionController;
|
|
|
|
ReceiptHeaderController(
|
|
{required this.server, required this.sessionController}) {
|
|
fetchReceiptsFromServer();
|
|
}
|
|
|
|
Future<void> fetchReceiptsFromServer() async {
|
|
final res = await sessionController.requestWithSession(
|
|
(Server server, String token) => server.allReceipts(token));
|
|
|
|
switch (res) {
|
|
case Ok<List<ReceiptHeader>, String>(value: final receiptHeaders):
|
|
_receiptHeaders = receiptHeaders;
|
|
case Err<List<ReceiptHeader>, String>():
|
|
break;
|
|
}
|
|
notifyListeners();
|
|
}
|
|
|
|
List<ReceiptHeader> receiptHeadersSortedByDate() {
|
|
List<ReceiptHeader> clonedReceiptHeaders = [];
|
|
for (var i = 0; i < _receiptHeaders.length; i++) {
|
|
clonedReceiptHeaders.add(_receiptHeaders[i]);
|
|
}
|
|
clonedReceiptHeaders.sort((a, b) => b.timestamp.compareTo(a.timestamp));
|
|
return clonedReceiptHeaders;
|
|
}
|
|
}
|