tuuli_app/lib/api_controller.dart

37 lines
1.1 KiB
Dart

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();
String get endPoint => apiStorageBox.read<String>("endPoint") ?? "";
set endPoint(String value) => apiStorageBox.write("endPoint", value);
String get token => apiStorageBox.read<String>("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,
)),
interceptors: [
ApiKeyAuthInterceptor(),
],
);
_apiClientBase!.setApiKey("access-token", token);
return _apiClientBase!;
}
DefaultApi get apiClient {
return apiClientBase.getDefaultApi();
}
}