pathWithParams method

String pathWithParams(
  1. Map<String, String> params, {
  2. Map<String, String>? queries,
  3. bool validate = true,
})

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;
}