loadConfig function

Future<String> loadConfig()

Implementation

Future<String> loadConfig() async {
  final storage = storageLocator<FlutterSecureStorage>();
  String jwtToken = '';
  Map<String, dynamic> configItems = {};
  return storage.read(key: 'jwt').then((jwtTokenValue) {
    return storage.read(key: 'configItems').then((configItemsValue) {
      return storage.read(key: 'api_key').then((apiKeyValue) {
        if (debugJwtToken) {
          logDebug('http_service | loadConfig | jwtTokenValue: $jwtTokenValue');
          logDebug(
            'http_service | loadConfig | configItemsValue: $configItemsValue',
          );
        }
        String userId = "";
        if (jwtTokenValue != null) {
          jwtToken = jwtTokenValue;
          Map<String, dynamic> payload = getJwtPayload(jwtToken);
          if (debugJwtToken) {
            logDebug('http_service | loadConfig | payload: $payload');
          }
          if (payload.isNotEmpty) {
            userId = payload["public_id"];
          }
        }
        if (configItemsValue != null) {
          configItems = json.decode(configItemsValue);
        }
        String result = json.encode({
          'userId': userId,
          'jwtToken': jwtToken,
          'apiKey': apiKeyValue,
          'configItems': configItems,
        });
        if (debugConfigValues) {
          logDebug('http_service | loadConfig | result: $result');
        }
        return result;
      });
    });
  });
}