grpc

package
v0.0.0-...-310fc84 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2025 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AuthMiddleware

func AuthMiddleware(secrets map[string]string, requireAuth, requireAdmin map[string]bool) grpc.UnaryServerInterceptor

func Register

func Register(
	gRPCServer *grpc.Server,
	userModifier UserModifier,
	userProvider UserProvider,
	authProvider AuthProvider,
	log *slog.Logger,
)

Types

type AuthProvider

type AuthProvider interface {
	Login(ctx context.Context, user generated.SaveUserParams) (accessToken, refreshToken *string, err error)
	RefreshToken(ctx context.Context, token string) (accessToken, refreshToken *string, err error)
}

type UserModifier

type UserModifier interface {
	UpdateUser(ctx context.Context, user generated.UpdateUserParams) (*generated.User, error)
	AddAdmin(ctx context.Context, username string, scale generated.AdminScale) (*model.Admin, error)
	DeleteAdmin(ctx context.Context, id uuid.UUID, scale generated.AdminScale) error
	InitAdmin(ctx context.Context, username string) (*model.Admin, error)
}

type UserProvider

type UserProvider interface {
	GetUsers(ctx context.Context, params model.GetUsersParams) (users []generated.User, total *uint64, err error)
	GetUser(ctx context.Context, id uuid.UUID) (*generated.User, error)
	GetAdmins(ctx context.Context, params generated.GetAdminsParams) (admins []generated.GetAdminsRow, total *uint64, err error)
}

Jump to

Keyboard shortcuts

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