apiOutputMongoDB function

  1. @Preview(name: 'API Output - MongoDB')
Widget apiOutputMongoDB()

Implementation

@Preview(name: 'API Output - MongoDB')
Widget apiOutputMongoDB() {
  const requestBuilder = DataGridRequestBuilder(standard: ApiFilterStandard.mongodb);

  final request = requestBuilder.buildRequest(
    page: 1,
    pageSize: 25,
    filters: {
      'status': const VooDataFilter(operator: VooFilterOperator.inList, value: ['active', 'pending']),
      'created': const VooDataFilter(operator: VooFilterOperator.greaterThanOrEqual, value: '2024-01-01'),
    },
    sorts: [const VooColumnSort(field: 'created', direction: VooSortDirection.descending)],
  );

  final jsonOutput = const JsonEncoder.withIndent('  ').convert(request);

  return Material(
    child: Container(
      padding: const EdgeInsets.all(16),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          const Text('MongoDB Query:', style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16)),
          const SizedBox(height: 8),
          Container(
            padding: const EdgeInsets.all(12),
            decoration: BoxDecoration(
              color: Colors.grey.withValues(alpha: 0.1),
              borderRadius: BorderRadius.circular(8),
              border: Border.all(color: Colors.grey.withValues(alpha: 0.3)),
            ),
            child: SelectableText(jsonOutput, style: const TextStyle(fontFamily: 'monospace', fontSize: 12)),
          ),
        ],
      ),
    ),
  );
}