Files
supabase/apps/docs/resources/error/errorSchema.ts
Charis 4e916fc16a feat(graphql): add paginated errors collection query (#36149)
* feat(graphql): add paginated errors collection query

- Add new GraphQL query field 'errors' with cursor-based pagination

- Add UUID id column to content.error table for cursor pagination

- Implement error collection resolver with forward/backward pagination

- Add comprehensive test suite for pagination functionality

- Update database types and schema to support new error collection

- Add utility functions for handling collection queries and errors

- Add seed data for testing pagination scenarios

This change allows clients to efficiently paginate through error codes using cursor-based pagination, supporting both forward and backward traversal. The implementation follows the Relay connection specification and includes proper error handling and type safety.

* docs(graphql): add comprehensive GraphQL architecture documentation

Add detailed documentation for the docs GraphQL endpoint architecture, including:
- Modular query pattern and folder structure
- Step-by-step guide for creating new top-level queries
- Best practices for error handling, field optimization, and testing
- Code examples for schemas, models, resolvers, and tests

* feat(graphql): add service filtering to errors collection query

Enable filtering error codes by Supabase service in the GraphQL errors collection:
- Add optional service argument to errors query resolver
- Update error model to support service-based filtering in database queries
- Maintain pagination compatibility with service filtering
- Add comprehensive tests for service filtering with and without pagination

* feat(graphql): add service filtering and fix cursor encoding for errors collection

- Add service parameter to errors GraphQL query for filtering by Supabase service
- Implement base64 encoding/decoding for pagination cursors in error resolver
- Fix test cursor encoding to match resolver implementation
- Update GraphQL schema snapshot to reflect new service filter field

* docs(graphql): fix codegen instruction
2025-06-09 10:24:17 -04:00

42 lines
1.2 KiB
TypeScript

import {
GraphQLEnumType,
GraphQLInt,
GraphQLNonNull,
GraphQLObjectType,
GraphQLString,
} from 'graphql'
import { SERVICES } from './errorModel'
export const GRAPHQL_FIELD_ERROR_GLOBAL = 'error' as const
export const GRAPHQL_FIELD_ERRORS_GLOBAL = 'errors' as const
export const GraphQLEnumTypeService = new GraphQLEnumType({
name: 'Service',
values: SERVICES,
})
export const GraphQLObjectTypeError = new GraphQLObjectType({
name: 'Error',
description: 'An error returned by a Supabase service',
fields: {
code: {
type: new GraphQLNonNull(GraphQLString),
description:
'The unique code identifying the error. The code is stable, and can be used for string matching during error handling.',
},
service: {
type: new GraphQLNonNull(GraphQLEnumTypeService),
description: 'The Supabase service that returns this error.',
},
httpStatusCode: {
type: GraphQLInt,
description: 'The HTTP status code returned with this error.',
},
message: {
type: GraphQLString,
description:
'A human-readable message describing the error. The message is not stable, and should not be used for string matching during error handling. Use the code instead.',
},
},
})