From 529ec239d1b3f68a44e7d1229a79d30d212f9776 Mon Sep 17 00:00:00 2001 From: Andrew nuark G Date: Tue, 11 Apr 2023 15:46:37 +0700 Subject: [PATCH] Improved credential checking for CheckupPage --- lib/pages/checkup_page.dart | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/lib/pages/checkup_page.dart b/lib/pages/checkup_page.dart index 2963dda..d25468a 100644 --- a/lib/pages/checkup_page.dart +++ b/lib/pages/checkup_page.dart @@ -2,6 +2,7 @@ import 'package:animated_background/animated_background.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:get_storage/get_storage.dart'; +import 'package:tuuli_app/api/api_client.dart'; class CheckupPage extends StatefulWidget { const CheckupPage({super.key}); @@ -16,13 +17,8 @@ class _CheckupPageState extends State void initState() { super.initState(); - final accessToken = GetStorage().read("accessToken"); WidgetsBinding.instance.addPostFrameCallback((_) { - if (accessToken == null) { - Get.offAllNamed("/login"); - } else { - Get.offAllNamed("/home"); - } + checkCredentials(); }); } @@ -51,4 +47,19 @@ class _CheckupPageState extends State ), ); } + + Future checkCredentials() async { + final accessToken = GetStorage().read("accessToken"); + if (accessToken == null) { + Get.offAllNamed("/login"); + } else { + final apiClient = Get.find(); + (await apiClient.tablesList()).unfold((data) { + Get.offAllNamed("/home"); + }, (error) async { + await GetStorage().remove("accessToken"); + Get.offAllNamed("/login"); + }); + } + } }