APIRequest.fromArgs constructor
Constructs an APIRequest parsing args
.
Implementation
factory APIRequest.fromArgs(List<String> args) {
var path = args.removeAt(0);
var arguments = Arguments.parse(
args,
abbreviations: {
'm': 'method',
'q': 'query',
'querystring': 'query',
'body': 'payload',
},
);
var query = arguments.parameters.remove('query');
if (query != null) {
var params = Uri.splitQueryString(query);
arguments.parameters.addAll(params);
}
var methodVal = arguments.parameters.remove('method');
var method = methodVal != null
? parseAPIRequestMethod(methodVal.toString().toLowerCase()) ??
APIRequestMethod.GET
: APIRequestMethod.GET;
var payload = arguments.parameters.remove('payload');
var parameters = Map.fromEntries(arguments.parameters.entries
.where((e) => !_regexpHeaderPrefix.hasMatch(e.key)));
for (var f in arguments.flags) {
parameters[f] = true;
}
var headers = Map.fromEntries(arguments.parameters.entries
.where((e) => _regexpHeaderPrefix.hasMatch(e.key))
.map((e) => MapEntry(e.key.substring(7), e.value)));
return APIRequest(method, path,
parameters: parameters, headers: headers, payload: payload);
}