dart.libraries.dio.auth.api_key_auth.mustache Maven / Gradle / Ivy
{{>header}}
import 'package:dio/dio.dart';
import 'package:{{pubName}}/{{sourceFolder}}/auth/auth.dart';
class ApiKeyAuthInterceptor extends AuthInterceptor {
final Map apiKeys = {};
@override
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
final authInfo = getAuthInfo(options, (secure) => secure['type'] == 'apiKey');
for (final info in authInfo) {
final authName = info['name'] as String;
final authKeyName = info['keyName'] as String;
final authWhere = info['where'] as String;
final apiKey = apiKeys[authName];
if (apiKey != null) {
if (authWhere == 'query') {
options.queryParameters[authKeyName] = apiKey;
} else {
options.headers[authKeyName] = apiKey;
}
}
}
super.onRequest(options, handler);
}
}