pathWithParams method
Generate path with parameters
Implementation
String pathWithParams(
Map<String, String> params, {
Map<String, String>? queries,
bool validate = true,
}) {
if (validate) {
validateParams(params);
}
String finalPath = path;
// Handle required parameters
for (final param in requiredParams) {
finalPath = finalPath.replaceAll(
':$param',
Uri.encodeComponent(params[param]!),
);
}
// Handle optional parameters
for (final param in optionalParams) {
if (params.containsKey(param) && params[param]!.isNotEmpty) {
finalPath = finalPath.replaceAll(
':$param?',
Uri.encodeComponent(params[param]!),
);
} else {
finalPath = finalPath.replaceAll('/:$param?', '');
}
}
// Add query parameters
if (queries != null && queries.isNotEmpty) {
final queryString = queries.entries
.map((e) =>
'${Uri.encodeComponent(e.key)}=${Uri.encodeComponent(e.value)}')
.join('&');
finalPath += '?$queryString';
}
return finalPath;
}