apiOutputOData function

  1. @Preview(name: 'API Output - OData')
Widget apiOutputOData()

Implementation

@Preview(name: 'API Output - OData')
Widget apiOutputOData() {
  const requestBuilder = DataGridRequestBuilder(standard: ApiFilterStandard.odata);

  final request = requestBuilder.buildRequest(
    page: 1,
    pageSize: 50,
    filters: {
      'department': const VooDataFilter(operator: VooFilterOperator.equals, value: 'Sales'),
      'salary': const VooDataFilter(operator: VooFilterOperator.between, value: [50000, 100000]),
    },
    sorts: [const VooColumnSort(field: 'salary', 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('OData Request:', 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)),
          ),
        ],
      ),
    ),
  );
}