api

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2025 License: AGPL-3.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrMissingUserID = errors.New("claims do not contain user ID")

Functions

func GetSecurityClaims

func GetSecurityClaims(ctx context.Context) (*models.AccessTokenClaims, error)

func RequireUserID

func RequireUserID(ctx context.Context) (uuid.UUID, error)

Types

type API

type API struct {
	LoginService               LoginService
	LoginAnonService           LoginAnonService
	ConsumeRefreshTokenService ConsumeRefreshTokenService
	IssueRefreshTokenService   IssueRefreshTokenService

	SelectKeyService  SelectKeyService
	SearchKeysService SearchKeysService

	RequestEmailUpdateService   RequestEmailUpdateService
	RequestPasswordResetService RequestPasswordResetService
	RequestRegisterService      RequestRegisterService

	RegisterService       RegisterService
	EmailExistsService    EmailExistsService
	UpdateEmailService    UpdateEmailService
	UpdatePasswordService UpdatePasswordService

	codegen.UnimplementedHandler
}

func (*API) CheckSession

func (api *API) CheckSession(ctx context.Context) (codegen.CheckSessionRes, error)

func (*API) CreateAnonSession

func (api *API) CreateAnonSession(ctx context.Context) (codegen.CreateAnonSessionRes, error)

func (*API) CreateRefreshToken added in v0.1.1

func (api *API) CreateRefreshToken(ctx context.Context) (codegen.CreateRefreshTokenRes, error)

func (*API) CreateSession

func (api *API) CreateSession(ctx context.Context, req *codegen.LoginForm) (codegen.CreateSessionRes, error)

func (*API) EmailExists

func (api *API) EmailExists(ctx context.Context, params codegen.EmailExistsParams) (codegen.EmailExistsRes, error)

func (*API) GetPublicKey

func (api *API) GetPublicKey(ctx context.Context, params codegen.GetPublicKeyParams) (codegen.GetPublicKeyRes, error)

func (*API) Healthcheck added in v0.1.1

func (api *API) Healthcheck(ctx context.Context) (codegen.HealthcheckRes, error)

func (*API) ListPublicKeys

func (api *API) ListPublicKeys(
	ctx context.Context, params codegen.ListPublicKeysParams,
) (codegen.ListPublicKeysRes, error)

func (*API) NewError

func (api *API) NewError(ctx context.Context, err error) *codegen.UnexpectedErrorStatusCode

func (*API) Ping

func (api *API) Ping(_ context.Context) (codegen.PingRes, error)

func (*API) RefreshSession added in v0.1.1

func (api *API) RefreshSession(
	ctx context.Context, params codegen.RefreshSessionParams,
) (codegen.RefreshSessionRes, error)

func (*API) Register

func (api *API) Register(ctx context.Context, req *codegen.RegisterForm) (codegen.RegisterRes, error)

func (*API) RequestEmailUpdate

func (api *API) RequestEmailUpdate(
	ctx context.Context, req *codegen.RequestEmailUpdateForm,
) (codegen.RequestEmailUpdateRes, error)

func (*API) RequestPasswordReset

func (api *API) RequestPasswordReset(
	ctx context.Context, req *codegen.RequestPasswordResetForm,
) (codegen.RequestPasswordResetRes, error)

func (*API) RequestRegistration

func (api *API) RequestRegistration(
	ctx context.Context, req *codegen.RequestRegistrationForm,
) (codegen.RequestRegistrationRes, error)

func (*API) ResetPassword

func (api *API) ResetPassword(ctx context.Context, req *codegen.ResetPasswordForm) (codegen.ResetPasswordRes, error)

func (*API) UpdateEmail

func (api *API) UpdateEmail(ctx context.Context, req *codegen.UpdateEmailForm) (codegen.UpdateEmailRes, error)

func (*API) UpdatePassword

func (api *API) UpdatePassword(
	ctx context.Context, req *codegen.UpdatePasswordForm) (codegen.UpdatePasswordRes, error,
)

type ClaimsAPIKey

type ClaimsAPIKey struct{}

type ConsumeRefreshTokenService added in v0.1.1

type ConsumeRefreshTokenService interface {
	ConsumeRefreshToken(ctx context.Context, request services.ConsumeRefreshTokenRequest) (string, error)
}

type EmailExistsService

type EmailExistsService interface {
	EmailExists(ctx context.Context, request services.EmailExistsRequest) (bool, error)
}

type IssueRefreshTokenService added in v0.1.1

type IssueRefreshTokenService interface {
	IssueRefreshToken(ctx context.Context, request services.IssueRefreshTokenRequest) (string, error)
}

type LoginAnonService

type LoginAnonService interface {
	LoginAnon(ctx context.Context) (string, error)
}

type LoginService

type LoginService interface {
	Login(ctx context.Context, request services.LoginRequest) (string, error)
}

type RegisterService

type RegisterService interface {
	Register(ctx context.Context, request services.RegisterRequest) (string, error)
}

type RequestEmailUpdateService

type RequestEmailUpdateService interface {
	RequestEmailUpdate(ctx context.Context, request services.RequestEmailUpdateRequest) (*models.ShortCode, error)
}

type RequestPasswordResetService

type RequestPasswordResetService interface {
	RequestPasswordReset(ctx context.Context, request services.RequestPasswordResetRequest) (*models.ShortCode, error)
}

type RequestRegisterService

type RequestRegisterService interface {
	RequestRegister(ctx context.Context, request services.RequestRegisterRequest) (*models.ShortCode, error)
}

type SearchKeysService

type SearchKeysService interface {
	SearchKeys(ctx context.Context, request services.SearchKeysRequest) ([]*jwa.JWK, error)
}

type SecurityAPI

type SecurityAPI struct {
	// Permissions required by each operation.
	RequiredPermissions map[codegen.OperationName][]models.Permission
	// Permissions granted by each role.
	GrantedPermissions map[models.Role][]models.Permission

	SecurityAPISource SecurityAPISource
}

func NewSecurity

func NewSecurity(
	required map[codegen.OperationName][]models.Permission,
	granted models.PermissionsConfig,
	service SecurityAPISource,
) (*SecurityAPI, error)

func (*SecurityAPI) HandleBearerAuth

func (security *SecurityAPI) HandleBearerAuth(
	ctx context.Context, operationName codegen.OperationName, auth codegen.BearerAuth,
) (context.Context, error)

type SecurityAPISource

type SecurityAPISource interface {
	Authenticate(ctx context.Context, accessToken string) (*models.AccessTokenClaims, error)
}

type SelectKeyService

type SelectKeyService interface {
	SelectKey(ctx context.Context, request services.SelectKeyRequest) (*jwa.JWK, error)
}

type UpdateEmailService

type UpdateEmailService interface {
	UpdateEmail(ctx context.Context, request services.UpdateEmailRequest) (*services.UpdateEmailResponse, error)
}

type UpdatePasswordService

type UpdatePasswordService interface {
	UpdatePassword(ctx context.Context, request services.UpdatePasswordRequest) error
}

Directories

Path Synopsis
Code generated by ogen, DO NOT EDIT.
Code generated by ogen, DO NOT EDIT.

Jump to

Keyboard shortcuts

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