Files
presenter/CLAUDE.md
T
argoyle 66b940f05c
presenter / test (push) Successful in 1m0s
presenter / vulnerabilities (push) Successful in 38s
Unbound Release / Check Preconditions (push) Successful in 1s
Unbound Release / Create Tag (push) Skipped
pre-commit / pre-commit (push) Successful in 3m5s
Unbound Release / Generate Changelog and Handle PR (push) Successful in 10s
Unbound Release / Create Release (push) Successful in 4s
Release / release (push) Successful in 8m58s
feat: move module path to git.unbound.se (#207)
2026-10-17 18:06:36 +00:00

1.1 KiB

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

import "git.unbound.se/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)