From 67e14ea836eb10c99f2dac30e2392dac8e7d2104 Mon Sep 17 00:00:00 2001 From: Andrew nuark G Date: Mon, 24 Apr 2023 11:03:52 +0700 Subject: [PATCH] ApiController for api-related stuff --- lib/api_controller.dart | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 lib/api_controller.dart diff --git a/lib/api_controller.dart b/lib/api_controller.dart new file mode 100644 index 0000000..ce8b5ad --- /dev/null +++ b/lib/api_controller.dart @@ -0,0 +1,35 @@ +import 'package:dio/dio.dart'; +import 'package:get/get.dart'; +import 'package:get_storage/get_storage.dart'; +import 'package:tuuli_api/tuuli_api.dart'; + +class ApiController extends GetxController { + static ApiController get to => Get.find(); + + final apiStorageBox = GetStorage(); + + final _endPoint = "http://127.0.0.1:8000".obs; + String get endPoint => _endPoint.value; + set endPoint(String value) => _endPoint.value = value; + + String get token => apiStorageBox.read("accessToken") ?? ""; + set token(String value) => apiStorageBox.write("accessToken", value); + + TuuliApi? _apiClientBase; + TuuliApi get apiClientBase { + _apiClientBase ??= TuuliApi( + dio: Dio(BaseOptions( + baseUrl: endPoint, + connectTimeout: 5000.milliseconds, + receiveTimeout: 3000.milliseconds, + receiveDataWhenStatusError: true, + )), + ); + _apiClientBase!.setApiKey("access-token", token); + return _apiClientBase!; + } + + DefaultApi get apiClient { + return apiClientBase.getDefaultApi(); + } +}