dataloader

package
v0.0.0-...-96f7096 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 26, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const LoaderNameTeams = "teams"
View Source
const LoaderNameUserRoles = "user_roles"
View Source
const LoaderNameUsers = "users"

Variables

This section is empty.

Functions

func GetTeam

func GetTeam(ctx context.Context, teamSlug *slug.Slug) (*db.Team, error)

func GetUser

func GetUser(ctx context.Context, userID *uuid.UUID) (*db.User, error)

func GetUserRoles

func GetUserRoles(ctx context.Context, userID uuid.UUID) ([]*db.UserRole, error)

func Middleware

func Middleware(loaders *Loaders) func(http.Handler) http.Handler

Middleware injects data loaders into the context

Types

type Loaders

type Loaders struct {
	UsersLoader     *dataloader.Loader[string, *db.User]
	TeamsLoader     *dataloader.Loader[string, *db.Team]
	UserRolesLoader *dataloader.Loader[string, []*db.UserRole]
}

Loaders wrap your data loaders to inject via middleware

func For

func For(ctx context.Context) *Loaders

func NewLoaders

func NewLoaders(database db.Database) *Loaders

NewLoaders instantiates data loaders for the middleware

type TeamReader

type TeamReader struct {
	// contains filtered or unexported fields
}

type UserReader

type UserReader struct {
	// contains filtered or unexported fields
}

type UserRoleReader

type UserRoleReader struct {
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL