convertPostRequestToDataModel<T extends Object> function
T
convertPostRequestToDataModel<T extends Object>({
- required PostRequest postRequest,
- required T fromJson(),
Implementation
T convertPostRequestToDataModel<T extends Object>({
required PostRequest postRequest,
required T Function(Map<String, dynamic> json) fromJson,
}) {
final queryParameters = postRequest.queryParameters;
if (queryParameters == null || queryParameters.isEmpty) {
return fromJson.slashPermissive({
'path': postRequest.path,
if (postRequest.body != null) 'body': postRequest.body,
});
}
final paramValues = queryParameters.values;
for (final paramValues in paramValues.possibleParamValues()) {
try {
return fromJson.slashPermissive({
'path': postRequest.path,
if (postRequest.body != null) 'body': postRequest.body,
...Map.fromEntries(
queryParameters.entries.mapIndexed(
(i, e) => MapEntry(e.key, jsonDecode(paramValues[i])),
),
),
});
} catch (e) {
// try next set of param values
}
}
throw FormatException();
}