Documentation
¶
Overview ¶
Package handlers implements the brainjar HTTP API handlers. Each resource (soul, persona, rule, brain, ...) owns a struct that satisfies Handler and mounts its routes via Register.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AdminApp ¶
type AdminApp interface {
Export(ctx context.Context, wsID models.WorkspaceID) (*bundle.ContentBundle, error)
Import(ctx context.Context, wsID models.WorkspaceID, cb *bundle.ContentBundle) (*bundle.ImportResult, error)
}
type BrainApp ¶
type BrainApp interface {
List(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Brain, error)
Get(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Brain, error)
Upsert(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug, soulSlug, personaSlug models.Slug, ruleSlugs []models.Slug, modelPrefs *models.ModelPrefs) (*models.Brain, error)
Delete(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
}
type Compose ¶
type Compose struct {
// contains filtered or unexported fields
}
func NewCompose ¶
func NewCompose(app ComposeApp) *Compose
type ComposeApp ¶
type ComposeApp interface {
Compose(ctx context.Context, req models.ComposeRequest) (*models.ComposeResponse, error)
}
type Handler ¶
Handler registers its routes on a mux. Callers compose handlers by constructing each one and invoking Register(srv.Mux()).
type PersonaApp ¶
type PersonaApp interface {
List(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Persona, error)
Get(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Persona, error)
Upsert(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug, content string, bundledRules []models.Slug) (*models.Persona, error)
Delete(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
}
type Personas ¶
type Personas struct {
// contains filtered or unexported fields
}
func NewPersonas ¶
func NewPersonas(app PersonaApp) *Personas
type RuleApp ¶
type RuleApp interface {
List(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Rule, error)
Get(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Rule, error)
Upsert(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug, entries []models.RuleEntry) (*models.Rule, error)
Delete(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
}
type SoulApp ¶
type SoulApp interface {
List(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Soul, error)
Get(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Soul, error)
Upsert(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug, content string) (*models.Soul, error)
Delete(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
}
SoulApp is the subset of apps.SoulApp the handler depends on.
type StateApp ¶
type StateApp interface {
ResolveForScope(ctx context.Context, wsID models.WorkspaceID, projectSlug, sessionID string) (*models.EffectiveState, error)
FindLayers(ctx context.Context, wsID models.WorkspaceID, projectSlug, sessionID string) ([]models.LayerOverride, error)
SetState(ctx context.Context, wsID models.WorkspaceID, scopeType models.ScopeType, referenceID string, partial *models.LayerOverride) error
DeleteState(ctx context.Context, wsID models.WorkspaceID, scopeType models.ScopeType, referenceID string) error
}
type VersionApp ¶
type VersionApp interface {
ListContentVersions(ctx context.Context, workspaceID models.WorkspaceID, contentType models.ContentType, slug models.Slug) ([]models.VersionSummary, error)
GetContentVersion(ctx context.Context, workspaceID models.WorkspaceID, contentType models.ContentType, slug models.Slug, version int) (*models.ContentVersion, error)
}
Click to show internal directories.
Click to hide internal directories.