Working api call to backend
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:helpers/helpers/print.dart';
|
||||
import 'package:rluv/global/api.dart';
|
||||
import 'package:rluv/models/budget.dart';
|
||||
import 'package:rluv/models/budget_category_model.dart';
|
||||
|
||||
import '../models/family_model.dart';
|
||||
import '../models/transaction_model.dart';
|
||||
import '../models/user.dart';
|
||||
|
||||
class Store {
|
||||
static final Store _instance = Store._internal();
|
||||
bool _initDone = false;
|
||||
|
||||
factory Store() {
|
||||
if (_instance._initDone) {
|
||||
return _instance;
|
||||
}
|
||||
_instance._initDone = true;
|
||||
_instance.dashboardProvider = FutureProvider<Map<String, dynamic>?>(
|
||||
(ref) async {
|
||||
final family = await ref.watch(_instance.familyProvider.future);
|
||||
return Api().get("dashboard/${family.id}");
|
||||
},
|
||||
);
|
||||
_instance.budgetCategoriesProvider =
|
||||
FutureProvider<List<BudgetCategory>>((ref) async {
|
||||
final dash = await ref.watch(_instance.dashboardProvider.future);
|
||||
printAmber(dash);
|
||||
if (dash == null) return [];
|
||||
final categories = dash['budget_categories'] as List<dynamic>;
|
||||
return categories
|
||||
.map(
|
||||
(e) => BudgetCategory.fromJson(e as Map<String, dynamic>),
|
||||
)
|
||||
.toList();
|
||||
});
|
||||
_instance.transactionsProvider =
|
||||
FutureProvider<List<Transaction>>((ref) async {
|
||||
final dash = await ref.watch(_instance.dashboardProvider.future);
|
||||
if (dash == null) return [];
|
||||
final transactions = dash['transactions'] as List<dynamic>;
|
||||
return transactions
|
||||
.map(
|
||||
(e) => Transaction.fromJson(e as Map<String, dynamic>),
|
||||
)
|
||||
.toList();
|
||||
});
|
||||
return _instance;
|
||||
}
|
||||
|
||||
Store._internal();
|
||||
|
||||
final FutureProvider<User> userProvider = FutureProvider<User>(
|
||||
(ref) {
|
||||
return User(
|
||||
id: 0,
|
||||
budgetId: 1,
|
||||
createdAt: DateTime.now(),
|
||||
familyId: 1,
|
||||
lastActivityAt: DateTime.now(),
|
||||
name: 'TEMP',
|
||||
updatedAt: DateTime.now(),
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
final FutureProvider<FamilyModel> familyProvider =
|
||||
FutureProvider<FamilyModel>((ref) => FamilyModel(
|
||||
id: 1,
|
||||
budgetId: 1,
|
||||
createdAt: DateTime.now(),
|
||||
updatedAt: DateTime.now()));
|
||||
|
||||
late final FutureProvider<List<BudgetCategory>> budgetCategoriesProvider;
|
||||
late final FutureProvider<Budget> budgetProvider;
|
||||
late final FutureProvider<List<Transaction>> transactionsProvider;
|
||||
late final FutureProvider<Map<String, dynamic>?> dashboardProvider;
|
||||
|
||||
void fetchDashboard() {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user