listInputItems method

  1. @override
Future<ResponseInputItemsList> listInputItems(
  1. String responseId, {
  2. String? after,
  3. String? before,
  4. List<String>? include,
  5. int limit = 20,
  6. String order = 'desc',
})
override

List input items for a response

Returns the input items that were used to generate a specific response. Useful for debugging and understanding response context.

Implementation

@override
Future<ResponseInputItemsList> listInputItems(
  String responseId, {
  String? after,
  String? before,
  List<String>? include,
  int limit = 20,
  String order = 'desc',
}) async {
  var endpoint = '$responsesEndpoint/$responseId/input_items';

  // Build query parameters
  final queryParams = <String, String>{
    'limit': limit.toString(),
    'order': order,
  };

  if (after != null) queryParams['after'] = after;
  if (before != null) queryParams['before'] = before;
  if (include != null && include.isNotEmpty) {
    queryParams['include'] = include.join(',');
  }

  // Append query parameters to endpoint
  final queryString = queryParams.entries
      .map((e) =>
          '${Uri.encodeComponent(e.key)}=${Uri.encodeComponent(e.value)}')
      .join('&');
  endpoint = '$endpoint?$queryString';

  final responseData = await client.get(endpoint);
  return ResponseInputItemsList.fromJson(responseData);
}