docs: add CLAUDE.md for Claude Code integration
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# presenter
|
||||
|
||||
Shared Go library for GraphQL error presentation with coded errors.
|
||||
|
||||
## Shared Documentation
|
||||
|
||||
@../docs/claude/architecture.md
|
||||
@../docs/claude/go-services.md
|
||||
@../docs/claude/graphql.md
|
||||
@../docs/claude/conventions.md
|
||||
|
||||
## Library Information
|
||||
|
||||
### Purpose
|
||||
|
||||
Provides a standardized GraphQL error presenter that handles coded errors across all microservices. Converts internal error codes to GraphQL error extensions.
|
||||
|
||||
### Usage
|
||||
|
||||
```go
|
||||
import "gitlab.com/unboundsoftware/shiny/presenter"
|
||||
|
||||
// Create error presenter with valid codes and entities
|
||||
errorPresenter := presenter.New(logger, validCodes, validEntities, internalErrorCode)
|
||||
|
||||
// Use in gqlgen server config
|
||||
srv := handler.NewDefaultServer(generated.NewExecutableSchema(cfg))
|
||||
srv.SetErrorPresenter(errorPresenter)
|
||||
```
|
||||
|
||||
### Key Types
|
||||
|
||||
- `CodedError` - Error type with code, entity, and params
|
||||
- `Code` - Error code type
|
||||
- `Entity` - Error entity type
|
||||
|
||||
### Error Extensions
|
||||
|
||||
Errors are presented with extensions:
|
||||
- `code` - The error code (mapped to valid codes or internal error)
|
||||
- `errorEntity` - The entity related to the error (optional)
|
||||
- `params` - Additional error parameters (optional)
|
||||
Reference in New Issue
Block a user