apimodels

package
v1.2.27 Latest Latest
Warning

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

Go to latest
Published: Nov 7, 2025 License: AGPL-3.0 Imports: 28 Imported by: 0

Documentation

Overview

Code generated by ogen, DO NOT EDIT.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WithServerURL

func WithServerURL(ctx context.Context, u *url.URL) context.Context

WithServerURL sets context key to override server URL.

Types

type BearerAuth

type BearerAuth struct {
	Token string
	Roles []string
}

func (*BearerAuth) GetRoles

func (s *BearerAuth) GetRoles() []string

GetRoles returns the value of Roles.

func (*BearerAuth) GetToken

func (s *BearerAuth) GetToken() string

GetToken returns the value of Token.

func (*BearerAuth) SetRoles

func (s *BearerAuth) SetRoles(val []string)

SetRoles sets the value of Roles.

func (*BearerAuth) SetToken

func (s *BearerAuth) SetToken(val string)

SetToken sets the value of Token.

type CheckSessionRes

type CheckSessionRes interface {
	// contains filtered or unexported methods
}

type Claims

type Claims struct {
	// The unique identifier of the user. Can be null if the session is anonymous.
	UserID OptUUID `json:"userID"`
	// The roles granted by the token.
	Roles []Role `json:"roles"`
	// The unique identifier of the refresh token. Can be null if the session is anonymous.
	RefreshTokenID OptString `json:"refreshTokenID"`
}

Ref: #/components/schemas/Claims

func (*Claims) Decode

func (s *Claims) Decode(d *jx.Decoder) error

Decode decodes Claims from json.

func (*Claims) Encode

func (s *Claims) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*Claims) GetRefreshTokenID

func (s *Claims) GetRefreshTokenID() OptString

GetRefreshTokenID returns the value of RefreshTokenID.

func (*Claims) GetRoles

func (s *Claims) GetRoles() []Role

GetRoles returns the value of Roles.

func (*Claims) GetUserID

func (s *Claims) GetUserID() OptUUID

GetUserID returns the value of UserID.

func (*Claims) MarshalJSON

func (s *Claims) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*Claims) SetRefreshTokenID

func (s *Claims) SetRefreshTokenID(val OptString)

SetRefreshTokenID sets the value of RefreshTokenID.

func (*Claims) SetRoles

func (s *Claims) SetRoles(val []Role)

SetRoles sets the value of Roles.

func (*Claims) SetUserID

func (s *Claims) SetUserID(val OptUUID)

SetUserID sets the value of UserID.

func (*Claims) UnmarshalJSON

func (s *Claims) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*Claims) Validate

func (s *Claims) Validate() error

type Client

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

Client implements OAS client.

func NewClient

func NewClient(serverURL string, sec SecuritySource, opts ...ClientOption) (*Client, error)

NewClient initializes new Client defined by OAS.

func (*Client) CheckSession

func (c *Client) CheckSession(ctx context.Context) (CheckSessionRes, error)

CheckSession invokes checkSession operation.

Takes an empty request with authorization headers, and check the validity of those headers. If the headers can be used to access any protected resource, the session is considered valid and the decoded claims are returned as a success response. Otherwise, an error will be sent, explaining why the session is invalid.

GET /session

func (*Client) CreateAnonSession

func (c *Client) CreateAnonSession(ctx context.Context) (CreateAnonSessionRes, error)

CreateAnonSession invokes createAnonSession operation.

Create a new anonymous session. An anonymous session is delivered without constraint, and grants basic access to apis with low protection.

PUT /session/anon

func (*Client) CreateSession

func (c *Client) CreateSession(ctx context.Context, request *LoginForm) (CreateSessionRes, error)

CreateSession invokes createSession operation.

Create a new session, using a set of credentials. The provided credentials will be used to validate the identity of the caller. Once the credentials have been verified, a token is issued. The access rights it grants may depend on the profile of the user.

PUT /session

func (*Client) EmailExists

func (c *Client) EmailExists(ctx context.Context, params EmailExistsParams) (EmailExistsRes, error)

EmailExists invokes emailExists operation.

Returns an empty, successful response if the email is already associated to an user. Otherwise, it fails with a not found (404) error status.

GET /credentials/email

func (*Client) GetUser

func (c *Client) GetUser(ctx context.Context, params GetUserParams) (GetUserRes, error)

GetUser invokes getUser operation.

Get a user from the database.

GET /user

func (*Client) Healthcheck

func (c *Client) Healthcheck(ctx context.Context) (HealthcheckRes, error)

Healthcheck invokes healthcheck operation.

Returns a detailed report of the health of the service, including every dependency.

GET /healthcheck

func (*Client) ListUsers

func (c *Client) ListUsers(ctx context.Context, params ListUsersParams) (ListUsersRes, error)

ListUsers invokes listUsers operation.

List users in the database.

GET /users

func (*Client) Ping

func (c *Client) Ping(ctx context.Context) (PingRes, error)

Ping invokes ping operation.

Check the status of the service. If the service is running, a successful response is returned.

GET /ping

func (*Client) RefreshSession

func (c *Client) RefreshSession(ctx context.Context, params RefreshSessionParams) (RefreshSessionRes, error)

RefreshSession invokes refreshSession operation.

Takes a refresh token, and use it to issue a new access token.

PATCH /session/refresh

func (*Client) Register

func (c *Client) Register(ctx context.Context, request *RegisterForm) (RegisterRes, error)

Register invokes register operation.

Create a new user. The form must contain a short code, that was sent through a registration link at the user desired email. On success, a valid access token is returned, that can be used to access higher-privilege routes.

PUT /credentials

func (*Client) RequestEmailUpdate

func (c *Client) RequestEmailUpdate(ctx context.Context, request *RequestEmailUpdateForm) (RequestEmailUpdateRes, error)

RequestEmailUpdate invokes requestEmailUpdate operation.

Create a new short code for updating the email of an user. This short code is sent to the new address. If the user clicks on it, it should take it to a page that will forward the short code back to this API. Once done, the email associated to the user will be updated automatically. This route requires to be called by an authenticated user. Anonymous sessions cannot trigger an email update request. NOTE that this request does not verify the availability of an email. You may check this beforehand,

using

the `Email Exists` endpoint. If multiple email update links are requested for the same email, only the last one will be valid.

PUT /short-code/update-email

func (*Client) RequestPasswordReset

func (c *Client) RequestPasswordReset(ctx context.Context, request *RequestPasswordResetForm) (RequestPasswordResetRes, error)

RequestPasswordReset invokes requestPasswordReset operation.

Create a new short code for updating the password of an user. This short code is sent to the new address. If the user clicks on it, it should take it to a page that will forward the short code back to this API. Once done, the password of the user is updated. This route does not require authentication (although it requires at least an anonymous session). This allow users who forgot their password to reset it. If multiple password update links are requested for the same email, only the last one will be valid.

PUT /short-code/update-password

func (*Client) RequestRegistration

func (c *Client) RequestRegistration(ctx context.Context, request *RequestRegistrationForm) (RequestRegistrationRes, error)

RequestRegistration invokes requestRegistration operation.

To prevent spam in our user database, registration must be done through a link sent by e-mail, so we can ensure this address is valid. When a user registers, the short code it received must be sent along with the registration payload.

The email

of the payload MUST match the email the short code was sent to, and is used to retrieve the short code. NOTE that this request does not verify the availability of an email. You may check this beforehand,

using

the `Email Exists` endpoint. If multiple registration links are requested for the same email, only the last one will be valid.

PUT /short-code/register

func (*Client) ResetPassword

func (c *Client) ResetPassword(ctx context.Context, request *ResetPasswordForm) (ResetPasswordRes, error)

ResetPassword invokes resetPassword operation.

Reset the password of an user. This route allows an unauthenticated session to update the password of a user. To prevent security issues, this route requires a short code that was sent to the email of the user that requested the password reset.

PATCH /credentials/password/reset

func (*Client) UpdateEmail

func (c *Client) UpdateEmail(ctx context.Context, request *UpdateEmailForm) (UpdateEmailRes, error)

UpdateEmail invokes updateEmail operation.

Update the email of an user. This route requires a valid short code, that was sent to the new email. If the short code is valid, the email of the user is updated with the email address the short code was sent to.

PATCH /credentials/email

func (*Client) UpdatePassword

func (c *Client) UpdatePassword(ctx context.Context, request *UpdatePasswordForm) (UpdatePasswordRes, error)

UpdatePassword invokes updatePassword operation.

Update the password of an user. This route requires the original password of the user, to double check the identity of the caller.

PATCH /credentials/password

func (*Client) UpdateRole

func (c *Client) UpdateRole(ctx context.Context, request *UpdateRoleForm) (UpdateRoleRes, error)

UpdateRole invokes updateRole operation.

Update the role of an user. This route requires the original password of the user, to double check the identity of the caller.

PATCH /credentials/role

type ClientOption

type ClientOption interface {
	// contains filtered or unexported methods
}

ClientOption is client config option.

func WithClient

func WithClient(client ht.Client) ClientOption

WithClient specifies http client to use.

type ConflictError

type ConflictError struct {
	// The error message.
	Error string `json:"error"`
}

Ref: #/components/schemas/ConflictError

func (*ConflictError) Decode

func (s *ConflictError) Decode(d *jx.Decoder) error

Decode decodes ConflictError from json.

func (*ConflictError) Encode

func (s *ConflictError) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*ConflictError) GetError

func (s *ConflictError) GetError() string

GetError returns the value of Error.

func (*ConflictError) MarshalJSON

func (s *ConflictError) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*ConflictError) SetError

func (s *ConflictError) SetError(val string)

SetError sets the value of Error.

func (*ConflictError) UnmarshalJSON

func (s *ConflictError) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

type CreateAnonSessionIMATeapot

type CreateAnonSessionIMATeapot struct{}

CreateAnonSessionIMATeapot is response for CreateAnonSession operation.

type CreateAnonSessionRes

type CreateAnonSessionRes interface {
	// contains filtered or unexported methods
}

type CreateSessionRes

type CreateSessionRes interface {
	// contains filtered or unexported methods
}

type CredentialsRole

type CredentialsRole string

A role specifically assigned to a user. Ref: #/components/schemas/CredentialsRole

const (
	CredentialsRoleUser       CredentialsRole = "user"
	CredentialsRoleAdmin      CredentialsRole = "admin"
	CredentialsRoleSuperAdmin CredentialsRole = "super_admin"
)

func (CredentialsRole) AllValues

func (CredentialsRole) AllValues() []CredentialsRole

AllValues returns all CredentialsRole values.

func (*CredentialsRole) Decode

func (s *CredentialsRole) Decode(d *jx.Decoder) error

Decode decodes CredentialsRole from json.

func (CredentialsRole) Encode

func (s CredentialsRole) Encode(e *jx.Encoder)

Encode encodes CredentialsRole as json.

func (CredentialsRole) MarshalJSON

func (s CredentialsRole) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (CredentialsRole) MarshalText

func (s CredentialsRole) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler.

func (*CredentialsRole) UnmarshalJSON

func (s *CredentialsRole) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*CredentialsRole) UnmarshalText

func (s *CredentialsRole) UnmarshalText(data []byte) error

UnmarshalText implements encoding.TextUnmarshaler.

func (CredentialsRole) Validate

func (s CredentialsRole) Validate() error

type Dependency

type Dependency struct {
	// The name of the dependency.
	Name            string           `json:"name"`
	Status          DependencyStatus `json:"status"`
	AdditionalProps DependencyAdditional
}

Ref: #/components/schemas/Dependency

func (*Dependency) Decode

func (s *Dependency) Decode(d *jx.Decoder) error

Decode decodes Dependency from json.

func (*Dependency) Encode

func (s *Dependency) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*Dependency) GetAdditionalProps

func (s *Dependency) GetAdditionalProps() DependencyAdditional

GetAdditionalProps returns the value of AdditionalProps.

func (*Dependency) GetName

func (s *Dependency) GetName() string

GetName returns the value of Name.

func (*Dependency) GetStatus

func (s *Dependency) GetStatus() DependencyStatus

GetStatus returns the value of Status.

func (*Dependency) MarshalJSON

func (s *Dependency) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*Dependency) SetAdditionalProps

func (s *Dependency) SetAdditionalProps(val DependencyAdditional)

SetAdditionalProps sets the value of AdditionalProps.

func (*Dependency) SetName

func (s *Dependency) SetName(val string)

SetName sets the value of Name.

func (*Dependency) SetStatus

func (s *Dependency) SetStatus(val DependencyStatus)

SetStatus sets the value of Status.

func (*Dependency) UnmarshalJSON

func (s *Dependency) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*Dependency) Validate

func (s *Dependency) Validate() error

type DependencyAdditional

type DependencyAdditional map[string]jx.Raw

func (*DependencyAdditional) Decode

func (s *DependencyAdditional) Decode(d *jx.Decoder) error

Decode decodes DependencyAdditional from json.

func (DependencyAdditional) Encode

func (s DependencyAdditional) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (DependencyAdditional) MarshalJSON

func (s DependencyAdditional) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*DependencyAdditional) UnmarshalJSON

func (s *DependencyAdditional) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

type DependencyStatus

type DependencyStatus string

The status of a dependency. Ref: #/components/schemas/DependencyStatus

const (
	DependencyStatusUp      DependencyStatus = "up"
	DependencyStatusDown    DependencyStatus = "down"
	DependencyStatusUnknown DependencyStatus = "unknown"
)

func (DependencyStatus) AllValues

func (DependencyStatus) AllValues() []DependencyStatus

AllValues returns all DependencyStatus values.

func (*DependencyStatus) Decode

func (s *DependencyStatus) Decode(d *jx.Decoder) error

Decode decodes DependencyStatus from json.

func (DependencyStatus) Encode

func (s DependencyStatus) Encode(e *jx.Encoder)

Encode encodes DependencyStatus as json.

func (DependencyStatus) MarshalJSON

func (s DependencyStatus) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (DependencyStatus) MarshalText

func (s DependencyStatus) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler.

func (*DependencyStatus) UnmarshalJSON

func (s *DependencyStatus) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*DependencyStatus) UnmarshalText

func (s *DependencyStatus) UnmarshalText(data []byte) error

UnmarshalText implements encoding.TextUnmarshaler.

func (DependencyStatus) Validate

func (s DependencyStatus) Validate() error

type Email

type Email string

func (*Email) Decode

func (s *Email) Decode(d *jx.Decoder) error

Decode decodes Email from json.

func (Email) Encode

func (s Email) Encode(e *jx.Encoder)

Encode encodes Email as json.

func (Email) MarshalJSON

func (s Email) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*Email) UnmarshalJSON

func (s *Email) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (Email) Validate

func (s Email) Validate() error

type EmailExistsNoContent

type EmailExistsNoContent struct{}

EmailExistsNoContent is response for EmailExists operation.

type EmailExistsParams

type EmailExistsParams struct {
	Email Email
}

EmailExistsParams is parameters of emailExists operation.

type EmailExistsRes

type EmailExistsRes interface {
	// contains filtered or unexported methods
}

type ErrorHandler

type ErrorHandler = ogenerrors.ErrorHandler

ErrorHandler is error handler.

type ForbiddenError

type ForbiddenError struct {
	// The error message.
	Error string `json:"error"`
}

Ref: #/components/schemas/ForbiddenError

func (*ForbiddenError) Decode

func (s *ForbiddenError) Decode(d *jx.Decoder) error

Decode decodes ForbiddenError from json.

func (*ForbiddenError) Encode

func (s *ForbiddenError) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*ForbiddenError) GetError

func (s *ForbiddenError) GetError() string

GetError returns the value of Error.

func (*ForbiddenError) MarshalJSON

func (s *ForbiddenError) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*ForbiddenError) SetError

func (s *ForbiddenError) SetError(val string)

SetError sets the value of Error.

func (*ForbiddenError) UnmarshalJSON

func (s *ForbiddenError) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

type GetUserParams

type GetUserParams struct {
	// The unique identifier of the user.
	UserID UserID
}

GetUserParams is parameters of getUser operation.

type GetUserRes

type GetUserRes interface {
	// contains filtered or unexported methods
}

type Handler

type Handler interface {
	// CheckSession implements checkSession operation.
	//
	// Takes an empty request with authorization headers, and check the validity of those headers. If the
	// headers can
	// be used to access any protected resource, the session is considered valid and the decoded claims
	// are returned
	// as a success response. Otherwise, an error will be sent, explaining why the session is invalid.
	//
	// GET /session
	CheckSession(ctx context.Context) (CheckSessionRes, error)
	// CreateAnonSession implements createAnonSession operation.
	//
	// Create a new anonymous session. An anonymous session is delivered without constraint, and grants
	// basic access
	// to apis with low protection.
	//
	// PUT /session/anon
	CreateAnonSession(ctx context.Context) (CreateAnonSessionRes, error)
	// CreateSession implements createSession operation.
	//
	// Create a new session, using a set of credentials. The provided credentials will be used to
	// validate the
	// identity of the caller. Once the credentials have been verified, a token is issued. The access
	// rights it grants
	// may depend on the profile of the user.
	//
	// PUT /session
	CreateSession(ctx context.Context, req *LoginForm) (CreateSessionRes, error)
	// EmailExists implements emailExists operation.
	//
	// Returns an empty, successful response if the email is already associated to an user. Otherwise, it
	// fails
	// with a not found (404) error status.
	//
	// GET /credentials/email
	EmailExists(ctx context.Context, params EmailExistsParams) (EmailExistsRes, error)
	// GetUser implements getUser operation.
	//
	// Get a user from the database.
	//
	// GET /user
	GetUser(ctx context.Context, params GetUserParams) (GetUserRes, error)
	// Healthcheck implements healthcheck operation.
	//
	// Returns a detailed report of the health of the service, including every dependency.
	//
	// GET /healthcheck
	Healthcheck(ctx context.Context) (HealthcheckRes, error)
	// ListUsers implements listUsers operation.
	//
	// List users in the database.
	//
	// GET /users
	ListUsers(ctx context.Context, params ListUsersParams) (ListUsersRes, error)
	// Ping implements ping operation.
	//
	// Check the status of the service. If the service is running, a successful response is returned.
	//
	// GET /ping
	Ping(ctx context.Context) (PingRes, error)
	// RefreshSession implements refreshSession operation.
	//
	// Takes a refresh token, and use it to issue a new access token.
	//
	// PATCH /session/refresh
	RefreshSession(ctx context.Context, params RefreshSessionParams) (RefreshSessionRes, error)
	// Register implements register operation.
	//
	// Create a new user. The form must contain a short code, that was sent through a registration link
	// at the user
	// desired email.
	// On success, a valid access token is returned, that can be used to access higher-privilege routes.
	//
	// PUT /credentials
	Register(ctx context.Context, req *RegisterForm) (RegisterRes, error)
	// RequestEmailUpdate implements requestEmailUpdate operation.
	//
	// Create a new short code for updating the email of an user. This short code is sent to the new
	// address.
	// If the user clicks on it, it should take it to a page that will forward the short code back to
	// this API.
	// Once done, the email associated to the user will be updated automatically.
	// This route requires to be called by an authenticated user. Anonymous sessions cannot trigger an
	// email
	// update request.
	// NOTE that this request does not verify the availability of an email. You may check this beforehand,
	//  using
	// the `Email Exists` endpoint.
	// If multiple email update links are requested for the same email, only the last one will be valid.
	//
	// PUT /short-code/update-email
	RequestEmailUpdate(ctx context.Context, req *RequestEmailUpdateForm) (RequestEmailUpdateRes, error)
	// RequestPasswordReset implements requestPasswordReset operation.
	//
	// Create a new short code for updating the password of an user. This short code is sent to the new
	// address.
	// If the user clicks on it, it should take it to a page that will forward the short code back to
	// this API.
	// Once done, the password of the user is updated.
	// This route does not require authentication (although it requires at least an anonymous session).
	// This
	// allow users who forgot their password to reset it.
	// If multiple password update links are requested for the same email, only the last one will be
	// valid.
	//
	// PUT /short-code/update-password
	RequestPasswordReset(ctx context.Context, req *RequestPasswordResetForm) (RequestPasswordResetRes, error)
	// RequestRegistration implements requestRegistration operation.
	//
	// To prevent spam in our user database, registration must be done through a link sent by e-mail, so
	// we can
	// ensure this address is valid.
	// When a user registers, the short code it received must be sent along with the registration payload.
	//  The email
	// of the payload MUST match the email the short code was sent to, and is used to retrieve the short
	// code.
	// NOTE that this request does not verify the availability of an email. You may check this beforehand,
	//  using
	// the `Email Exists` endpoint.
	// If multiple registration links are requested for the same email, only the last one will be valid.
	//
	// PUT /short-code/register
	RequestRegistration(ctx context.Context, req *RequestRegistrationForm) (RequestRegistrationRes, error)
	// ResetPassword implements resetPassword operation.
	//
	// Reset the password of an user. This route allows an unauthenticated session to update the password
	// of a user.
	// To prevent security issues, this route requires a short code that was sent to the email of the
	// user that
	// requested the password reset.
	//
	// PATCH /credentials/password/reset
	ResetPassword(ctx context.Context, req *ResetPasswordForm) (ResetPasswordRes, error)
	// UpdateEmail implements updateEmail operation.
	//
	// Update the email of an user. This route requires a valid short code, that was sent to the new
	// email.
	// If the short code is valid, the email of the user is updated with the email address the short code
	// was
	// sent to.
	//
	// PATCH /credentials/email
	UpdateEmail(ctx context.Context, req *UpdateEmailForm) (UpdateEmailRes, error)
	// UpdatePassword implements updatePassword operation.
	//
	// Update the password of an user. This route requires the original password of the user, to double
	// check
	// the identity of the caller.
	//
	// PATCH /credentials/password
	UpdatePassword(ctx context.Context, req *UpdatePasswordForm) (UpdatePasswordRes, error)
	// UpdateRole implements updateRole operation.
	//
	// Update the role of an user. This route requires the original password of the user, to double check
	// the identity of the caller.
	//
	// PATCH /credentials/role
	UpdateRole(ctx context.Context, req *UpdateRoleForm) (UpdateRoleRes, error)
	// NewError creates *UnexpectedErrorStatusCode from error returned by handler.
	//
	// Used for common default response.
	NewError(ctx context.Context, err error) *UnexpectedErrorStatusCode
}

Handler handles operations described by OpenAPI v3 specification.

type Health

type Health struct {
	Postgres Dependency `json:"postgres"`
	JsonKeys Dependency `json:"jsonKeys"`
	SMTP     Dependency `json:"smtp"`
}

Ref: #/components/schemas/Health

func (*Health) Decode

func (s *Health) Decode(d *jx.Decoder) error

Decode decodes Health from json.

func (*Health) Encode

func (s *Health) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*Health) GetJsonKeys

func (s *Health) GetJsonKeys() Dependency

GetJsonKeys returns the value of JsonKeys.

func (*Health) GetPostgres

func (s *Health) GetPostgres() Dependency

GetPostgres returns the value of Postgres.

func (*Health) GetSMTP added in v1.2.1

func (s *Health) GetSMTP() Dependency

GetSMTP returns the value of SMTP.

func (*Health) MarshalJSON

func (s *Health) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*Health) SetJsonKeys

func (s *Health) SetJsonKeys(val Dependency)

SetJsonKeys sets the value of JsonKeys.

func (*Health) SetPostgres

func (s *Health) SetPostgres(val Dependency)

SetPostgres sets the value of Postgres.

func (*Health) SetSMTP added in v1.2.1

func (s *Health) SetSMTP(val Dependency)

SetSMTP sets the value of SMTP.

func (*Health) UnmarshalJSON

func (s *Health) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*Health) Validate

func (s *Health) Validate() error

type HealthcheckIMATeapot

type HealthcheckIMATeapot struct{}

HealthcheckIMATeapot is response for Healthcheck operation.

type HealthcheckRes

type HealthcheckRes interface {
	// contains filtered or unexported methods
}

type Invoker

type Invoker interface {
	// CheckSession invokes checkSession operation.
	//
	// Takes an empty request with authorization headers, and check the validity of those headers. If the
	// headers can
	// be used to access any protected resource, the session is considered valid and the decoded claims
	// are returned
	// as a success response. Otherwise, an error will be sent, explaining why the session is invalid.
	//
	// GET /session
	CheckSession(ctx context.Context) (CheckSessionRes, error)
	// CreateAnonSession invokes createAnonSession operation.
	//
	// Create a new anonymous session. An anonymous session is delivered without constraint, and grants
	// basic access
	// to apis with low protection.
	//
	// PUT /session/anon
	CreateAnonSession(ctx context.Context) (CreateAnonSessionRes, error)
	// CreateSession invokes createSession operation.
	//
	// Create a new session, using a set of credentials. The provided credentials will be used to
	// validate the
	// identity of the caller. Once the credentials have been verified, a token is issued. The access
	// rights it grants
	// may depend on the profile of the user.
	//
	// PUT /session
	CreateSession(ctx context.Context, request *LoginForm) (CreateSessionRes, error)
	// EmailExists invokes emailExists operation.
	//
	// Returns an empty, successful response if the email is already associated to an user. Otherwise, it
	// fails
	// with a not found (404) error status.
	//
	// GET /credentials/email
	EmailExists(ctx context.Context, params EmailExistsParams) (EmailExistsRes, error)
	// GetUser invokes getUser operation.
	//
	// Get a user from the database.
	//
	// GET /user
	GetUser(ctx context.Context, params GetUserParams) (GetUserRes, error)
	// Healthcheck invokes healthcheck operation.
	//
	// Returns a detailed report of the health of the service, including every dependency.
	//
	// GET /healthcheck
	Healthcheck(ctx context.Context) (HealthcheckRes, error)
	// ListUsers invokes listUsers operation.
	//
	// List users in the database.
	//
	// GET /users
	ListUsers(ctx context.Context, params ListUsersParams) (ListUsersRes, error)
	// Ping invokes ping operation.
	//
	// Check the status of the service. If the service is running, a successful response is returned.
	//
	// GET /ping
	Ping(ctx context.Context) (PingRes, error)
	// RefreshSession invokes refreshSession operation.
	//
	// Takes a refresh token, and use it to issue a new access token.
	//
	// PATCH /session/refresh
	RefreshSession(ctx context.Context, params RefreshSessionParams) (RefreshSessionRes, error)
	// Register invokes register operation.
	//
	// Create a new user. The form must contain a short code, that was sent through a registration link
	// at the user
	// desired email.
	// On success, a valid access token is returned, that can be used to access higher-privilege routes.
	//
	// PUT /credentials
	Register(ctx context.Context, request *RegisterForm) (RegisterRes, error)
	// RequestEmailUpdate invokes requestEmailUpdate operation.
	//
	// Create a new short code for updating the email of an user. This short code is sent to the new
	// address.
	// If the user clicks on it, it should take it to a page that will forward the short code back to
	// this API.
	// Once done, the email associated to the user will be updated automatically.
	// This route requires to be called by an authenticated user. Anonymous sessions cannot trigger an
	// email
	// update request.
	// NOTE that this request does not verify the availability of an email. You may check this beforehand,
	//  using
	// the `Email Exists` endpoint.
	// If multiple email update links are requested for the same email, only the last one will be valid.
	//
	// PUT /short-code/update-email
	RequestEmailUpdate(ctx context.Context, request *RequestEmailUpdateForm) (RequestEmailUpdateRes, error)
	// RequestPasswordReset invokes requestPasswordReset operation.
	//
	// Create a new short code for updating the password of an user. This short code is sent to the new
	// address.
	// If the user clicks on it, it should take it to a page that will forward the short code back to
	// this API.
	// Once done, the password of the user is updated.
	// This route does not require authentication (although it requires at least an anonymous session).
	// This
	// allow users who forgot their password to reset it.
	// If multiple password update links are requested for the same email, only the last one will be
	// valid.
	//
	// PUT /short-code/update-password
	RequestPasswordReset(ctx context.Context, request *RequestPasswordResetForm) (RequestPasswordResetRes, error)
	// RequestRegistration invokes requestRegistration operation.
	//
	// To prevent spam in our user database, registration must be done through a link sent by e-mail, so
	// we can
	// ensure this address is valid.
	// When a user registers, the short code it received must be sent along with the registration payload.
	//  The email
	// of the payload MUST match the email the short code was sent to, and is used to retrieve the short
	// code.
	// NOTE that this request does not verify the availability of an email. You may check this beforehand,
	//  using
	// the `Email Exists` endpoint.
	// If multiple registration links are requested for the same email, only the last one will be valid.
	//
	// PUT /short-code/register
	RequestRegistration(ctx context.Context, request *RequestRegistrationForm) (RequestRegistrationRes, error)
	// ResetPassword invokes resetPassword operation.
	//
	// Reset the password of an user. This route allows an unauthenticated session to update the password
	// of a user.
	// To prevent security issues, this route requires a short code that was sent to the email of the
	// user that
	// requested the password reset.
	//
	// PATCH /credentials/password/reset
	ResetPassword(ctx context.Context, request *ResetPasswordForm) (ResetPasswordRes, error)
	// UpdateEmail invokes updateEmail operation.
	//
	// Update the email of an user. This route requires a valid short code, that was sent to the new
	// email.
	// If the short code is valid, the email of the user is updated with the email address the short code
	// was
	// sent to.
	//
	// PATCH /credentials/email
	UpdateEmail(ctx context.Context, request *UpdateEmailForm) (UpdateEmailRes, error)
	// UpdatePassword invokes updatePassword operation.
	//
	// Update the password of an user. This route requires the original password of the user, to double
	// check
	// the identity of the caller.
	//
	// PATCH /credentials/password
	UpdatePassword(ctx context.Context, request *UpdatePasswordForm) (UpdatePasswordRes, error)
	// UpdateRole invokes updateRole operation.
	//
	// Update the role of an user. This route requires the original password of the user, to double check
	// the identity of the caller.
	//
	// PATCH /credentials/role
	UpdateRole(ctx context.Context, request *UpdateRoleForm) (UpdateRoleRes, error)
}

Invoker invokes operations described by OpenAPI v3 specification.

type Labeler

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

Labeler is used to allow adding custom attributes to the server request metrics.

func LabelerFromContext

func LabelerFromContext(ctx context.Context) (*Labeler, bool)

LabelerFromContext retrieves the Labeler from the provided context, if present.

If no Labeler was found in the provided context a new, empty Labeler is returned and the second return value is false. In this case it is safe to use the Labeler but any attributes added to it will not be used.

func (*Labeler) Add

func (l *Labeler) Add(attrs ...attribute.KeyValue)

Add attributes to the Labeler.

func (*Labeler) AttributeSet

func (l *Labeler) AttributeSet() attribute.Set

AttributeSet returns the attributes added to the Labeler as an attribute.Set.

type Lang

type Lang string

The language of the user. Ref: #/components/schemas/Lang

const (
	LangEn Lang = "en"
	LangFr Lang = "fr"
)

func (Lang) AllValues

func (Lang) AllValues() []Lang

AllValues returns all Lang values.

func (*Lang) Decode

func (s *Lang) Decode(d *jx.Decoder) error

Decode decodes Lang from json.

func (Lang) Encode

func (s Lang) Encode(e *jx.Encoder)

Encode encodes Lang as json.

func (Lang) MarshalJSON

func (s Lang) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (Lang) MarshalText

func (s Lang) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler.

func (*Lang) UnmarshalJSON

func (s *Lang) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*Lang) UnmarshalText

func (s *Lang) UnmarshalText(data []byte) error

UnmarshalText implements encoding.TextUnmarshaler.

func (Lang) Validate

func (s Lang) Validate() error

type ListUsersOKApplicationJSON

type ListUsersOKApplicationJSON []User

func (*ListUsersOKApplicationJSON) Decode

Decode decodes ListUsersOKApplicationJSON from json.

func (ListUsersOKApplicationJSON) Encode

func (s ListUsersOKApplicationJSON) Encode(e *jx.Encoder)

Encode encodes ListUsersOKApplicationJSON as json.

func (ListUsersOKApplicationJSON) MarshalJSON

func (s ListUsersOKApplicationJSON) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*ListUsersOKApplicationJSON) UnmarshalJSON

func (s *ListUsersOKApplicationJSON) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (ListUsersOKApplicationJSON) Validate

func (s ListUsersOKApplicationJSON) Validate() error

type ListUsersParams

type ListUsersParams struct {
	// The maximum number of items to return.
	Limit OptInt `json:",omitempty,omitzero"`
	// The number of items to skip before starting to collect the result set.
	Offset OptInt `json:",omitempty,omitzero"`
	// The roles to filter the users by.
	Roles []CredentialsRole `json:",omitempty"`
}

ListUsersParams is parameters of listUsers operation.

type ListUsersRes

type ListUsersRes interface {
	// contains filtered or unexported methods
}

type LoginForm

type LoginForm struct {
	Email    Email    `json:"email"`
	Password Password `json:"password"`
}

Data used to authenticate a user. It usually includes some private information only known to the user (password, secret question, etc), that is checked against some protected data on the server. If this information is correct, the user is authenticated and granted a special token. Ref: #/components/schemas/LoginForm

func (*LoginForm) Decode

func (s *LoginForm) Decode(d *jx.Decoder) error

Decode decodes LoginForm from json.

func (*LoginForm) Encode

func (s *LoginForm) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*LoginForm) GetEmail

func (s *LoginForm) GetEmail() Email

GetEmail returns the value of Email.

func (*LoginForm) GetPassword

func (s *LoginForm) GetPassword() Password

GetPassword returns the value of Password.

func (*LoginForm) MarshalJSON

func (s *LoginForm) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*LoginForm) SetEmail

func (s *LoginForm) SetEmail(val Email)

SetEmail sets the value of Email.

func (*LoginForm) SetPassword

func (s *LoginForm) SetPassword(val Password)

SetPassword sets the value of Password.

func (*LoginForm) UnmarshalJSON

func (s *LoginForm) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*LoginForm) Validate

func (s *LoginForm) Validate() error

type Middleware

type Middleware = middleware.Middleware

Middleware is middleware type.

type NewEmail

type NewEmail struct {
	// The new email of the user.
	Email Email `json:"email"`
}

Ref: #/components/schemas/NewEmail

func (*NewEmail) Decode

func (s *NewEmail) Decode(d *jx.Decoder) error

Decode decodes NewEmail from json.

func (*NewEmail) Encode

func (s *NewEmail) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*NewEmail) GetEmail

func (s *NewEmail) GetEmail() Email

GetEmail returns the value of Email.

func (*NewEmail) MarshalJSON

func (s *NewEmail) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*NewEmail) SetEmail

func (s *NewEmail) SetEmail(val Email)

SetEmail sets the value of Email.

func (*NewEmail) UnmarshalJSON

func (s *NewEmail) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*NewEmail) Validate

func (s *NewEmail) Validate() error

type NotFoundError

type NotFoundError struct {
	// The error message.
	Error string `json:"error"`
}

Ref: #/components/schemas/NotFoundError

func (*NotFoundError) Decode

func (s *NotFoundError) Decode(d *jx.Decoder) error

Decode decodes NotFoundError from json.

func (*NotFoundError) Encode

func (s *NotFoundError) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*NotFoundError) GetError

func (s *NotFoundError) GetError() string

GetError returns the value of Error.

func (*NotFoundError) MarshalJSON

func (s *NotFoundError) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*NotFoundError) SetError

func (s *NotFoundError) SetError(val string)

SetError sets the value of Error.

func (*NotFoundError) UnmarshalJSON

func (s *NotFoundError) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

type OperationName

type OperationName = string

OperationName is the ogen operation name

const (
	CheckSessionOperation         OperationName = "CheckSession"
	CreateAnonSessionOperation    OperationName = "CreateAnonSession"
	CreateSessionOperation        OperationName = "CreateSession"
	EmailExistsOperation          OperationName = "EmailExists"
	GetUserOperation              OperationName = "GetUser"
	HealthcheckOperation          OperationName = "Healthcheck"
	ListUsersOperation            OperationName = "ListUsers"
	PingOperation                 OperationName = "Ping"
	RefreshSessionOperation       OperationName = "RefreshSession"
	RegisterOperation             OperationName = "Register"
	RequestEmailUpdateOperation   OperationName = "RequestEmailUpdate"
	RequestPasswordResetOperation OperationName = "RequestPasswordReset"
	RequestRegistrationOperation  OperationName = "RequestRegistration"
	ResetPasswordOperation        OperationName = "ResetPassword"
	UpdateEmailOperation          OperationName = "UpdateEmail"
	UpdatePasswordOperation       OperationName = "UpdatePassword"
	UpdateRoleOperation           OperationName = "UpdateRole"
)

type OptInt

type OptInt struct {
	Value int
	Set   bool
}

OptInt is optional int.

func NewOptInt

func NewOptInt(v int) OptInt

NewOptInt returns new OptInt with value set to v.

func (OptInt) Get

func (o OptInt) Get() (v int, ok bool)

Get returns value and boolean that denotes whether value was set.

func (OptInt) IsSet

func (o OptInt) IsSet() bool

IsSet returns true if OptInt was set.

func (OptInt) Or

func (o OptInt) Or(d int) int

Or returns value if set, or given parameter if does not.

func (*OptInt) Reset

func (o *OptInt) Reset()

Reset unsets value.

func (*OptInt) SetTo

func (o *OptInt) SetTo(v int)

SetTo sets value to v.

type OptLang

type OptLang struct {
	Value Lang
	Set   bool
}

OptLang is optional Lang.

func NewOptLang

func NewOptLang(v Lang) OptLang

NewOptLang returns new OptLang with value set to v.

func (*OptLang) Decode

func (o *OptLang) Decode(d *jx.Decoder) error

Decode decodes Lang from json.

func (OptLang) Encode

func (o OptLang) Encode(e *jx.Encoder)

Encode encodes Lang as json.

func (OptLang) Get

func (o OptLang) Get() (v Lang, ok bool)

Get returns value and boolean that denotes whether value was set.

func (OptLang) IsSet

func (o OptLang) IsSet() bool

IsSet returns true if OptLang was set.

func (OptLang) MarshalJSON

func (s OptLang) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (OptLang) Or

func (o OptLang) Or(d Lang) Lang

Or returns value if set, or given parameter if does not.

func (*OptLang) Reset

func (o *OptLang) Reset()

Reset unsets value.

func (*OptLang) SetTo

func (o *OptLang) SetTo(v Lang)

SetTo sets value to v.

func (*OptLang) UnmarshalJSON

func (s *OptLang) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

type OptString

type OptString struct {
	Value string
	Set   bool
}

OptString is optional string.

func NewOptString

func NewOptString(v string) OptString

NewOptString returns new OptString with value set to v.

func (*OptString) Decode

func (o *OptString) Decode(d *jx.Decoder) error

Decode decodes string from json.

func (OptString) Encode

func (o OptString) Encode(e *jx.Encoder)

Encode encodes string as json.

func (OptString) Get

func (o OptString) Get() (v string, ok bool)

Get returns value and boolean that denotes whether value was set.

func (OptString) IsSet

func (o OptString) IsSet() bool

IsSet returns true if OptString was set.

func (OptString) MarshalJSON

func (s OptString) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (OptString) Or

func (o OptString) Or(d string) string

Or returns value if set, or given parameter if does not.

func (*OptString) Reset

func (o *OptString) Reset()

Reset unsets value.

func (*OptString) SetTo

func (o *OptString) SetTo(v string)

SetTo sets value to v.

func (*OptString) UnmarshalJSON

func (s *OptString) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

type OptUUID

type OptUUID struct {
	Value uuid.UUID
	Set   bool
}

OptUUID is optional uuid.UUID.

func NewOptUUID

func NewOptUUID(v uuid.UUID) OptUUID

NewOptUUID returns new OptUUID with value set to v.

func (*OptUUID) Decode

func (o *OptUUID) Decode(d *jx.Decoder) error

Decode decodes uuid.UUID from json.

func (OptUUID) Encode

func (o OptUUID) Encode(e *jx.Encoder)

Encode encodes uuid.UUID as json.

func (OptUUID) Get

func (o OptUUID) Get() (v uuid.UUID, ok bool)

Get returns value and boolean that denotes whether value was set.

func (OptUUID) IsSet

func (o OptUUID) IsSet() bool

IsSet returns true if OptUUID was set.

func (OptUUID) MarshalJSON

func (s OptUUID) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (OptUUID) Or

func (o OptUUID) Or(d uuid.UUID) uuid.UUID

Or returns value if set, or given parameter if does not.

func (*OptUUID) Reset

func (o *OptUUID) Reset()

Reset unsets value.

func (*OptUUID) SetTo

func (o *OptUUID) SetTo(v uuid.UUID)

SetTo sets value to v.

func (*OptUUID) UnmarshalJSON

func (s *OptUUID) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

type Option

type Option interface {
	ServerOption
	ClientOption
}

Option is config option.

func WithAttributes added in v1.2.15

func WithAttributes(attributes ...attribute.KeyValue) Option

WithAttributes specifies default otel attributes.

func WithMeterProvider

func WithMeterProvider(provider metric.MeterProvider) Option

WithMeterProvider specifies a meter provider to use for creating a meter.

If none is specified, the otel.GetMeterProvider() is used.

func WithTracerProvider

func WithTracerProvider(provider trace.TracerProvider) Option

WithTracerProvider specifies a tracer provider to use for creating a tracer.

If none is specified, the global provider is used.

type Password

type Password string

func (*Password) Decode

func (s *Password) Decode(d *jx.Decoder) error

Decode decodes Password from json.

func (Password) Encode

func (s Password) Encode(e *jx.Encoder)

Encode encodes Password as json.

func (Password) MarshalJSON

func (s Password) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*Password) UnmarshalJSON

func (s *Password) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (Password) Validate

func (s Password) Validate() error

type PingIMATeapot

type PingIMATeapot struct{}

PingIMATeapot is response for Ping operation.

type PingOK

type PingOK struct {
	Data io.Reader
}

func (PingOK) Read

func (s PingOK) Read(p []byte) (n int, err error)

Read reads data from the Data reader.

Kept to satisfy the io.Reader interface.

type PingRes

type PingRes interface {
	// contains filtered or unexported methods
}

type RefreshSessionParams

type RefreshSessionParams struct {
	RefreshToken string
	AccessToken  string
}

RefreshSessionParams is parameters of refreshSession operation.

type RefreshSessionRes

type RefreshSessionRes interface {
	// contains filtered or unexported methods
}

type RegisterForm

type RegisterForm struct {
	// The email of the new user. This email must be available, and also match the one that received
	// the short code / registration link.
	Email     Email     `json:"email"`
	Password  Password  `json:"password"`
	ShortCode ShortCode `json:"shortCode"`
}

Data used to create a user. Ref: #/components/schemas/RegisterForm

func (*RegisterForm) Decode

func (s *RegisterForm) Decode(d *jx.Decoder) error

Decode decodes RegisterForm from json.

func (*RegisterForm) Encode

func (s *RegisterForm) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*RegisterForm) GetEmail

func (s *RegisterForm) GetEmail() Email

GetEmail returns the value of Email.

func (*RegisterForm) GetPassword

func (s *RegisterForm) GetPassword() Password

GetPassword returns the value of Password.

func (*RegisterForm) GetShortCode

func (s *RegisterForm) GetShortCode() ShortCode

GetShortCode returns the value of ShortCode.

func (*RegisterForm) MarshalJSON

func (s *RegisterForm) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*RegisterForm) SetEmail

func (s *RegisterForm) SetEmail(val Email)

SetEmail sets the value of Email.

func (*RegisterForm) SetPassword

func (s *RegisterForm) SetPassword(val Password)

SetPassword sets the value of Password.

func (*RegisterForm) SetShortCode

func (s *RegisterForm) SetShortCode(val ShortCode)

SetShortCode sets the value of ShortCode.

func (*RegisterForm) UnmarshalJSON

func (s *RegisterForm) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*RegisterForm) Validate

func (s *RegisterForm) Validate() error

type RegisterRes

type RegisterRes interface {
	// contains filtered or unexported methods
}

type RequestEmailUpdateForm

type RequestEmailUpdateForm struct {
	// The bew email of the new user. This email must be available at the time of validation.
	Email Email   `json:"email"`
	Lang  OptLang `json:"lang"`
}

Create a new email update link. Ref: #/components/schemas/RequestEmailUpdateForm

func (*RequestEmailUpdateForm) Decode

func (s *RequestEmailUpdateForm) Decode(d *jx.Decoder) error

Decode decodes RequestEmailUpdateForm from json.

func (*RequestEmailUpdateForm) Encode

func (s *RequestEmailUpdateForm) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*RequestEmailUpdateForm) GetEmail

func (s *RequestEmailUpdateForm) GetEmail() Email

GetEmail returns the value of Email.

func (*RequestEmailUpdateForm) GetLang

func (s *RequestEmailUpdateForm) GetLang() OptLang

GetLang returns the value of Lang.

func (*RequestEmailUpdateForm) MarshalJSON

func (s *RequestEmailUpdateForm) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*RequestEmailUpdateForm) SetEmail

func (s *RequestEmailUpdateForm) SetEmail(val Email)

SetEmail sets the value of Email.

func (*RequestEmailUpdateForm) SetLang

func (s *RequestEmailUpdateForm) SetLang(val OptLang)

SetLang sets the value of Lang.

func (*RequestEmailUpdateForm) UnmarshalJSON

func (s *RequestEmailUpdateForm) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*RequestEmailUpdateForm) Validate

func (s *RequestEmailUpdateForm) Validate() error

type RequestEmailUpdateNoContent

type RequestEmailUpdateNoContent struct{}

RequestEmailUpdateNoContent is response for RequestEmailUpdate operation.

type RequestEmailUpdateRes

type RequestEmailUpdateRes interface {
	// contains filtered or unexported methods
}

type RequestPasswordResetForm

type RequestPasswordResetForm struct {
	// The email of the user. This email must match a user in the database.
	Email Email   `json:"email"`
	Lang  OptLang `json:"lang"`
}

Create a new password update link. Ref: #/components/schemas/RequestPasswordResetForm

func (*RequestPasswordResetForm) Decode

func (s *RequestPasswordResetForm) Decode(d *jx.Decoder) error

Decode decodes RequestPasswordResetForm from json.

func (*RequestPasswordResetForm) Encode

func (s *RequestPasswordResetForm) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*RequestPasswordResetForm) GetEmail

func (s *RequestPasswordResetForm) GetEmail() Email

GetEmail returns the value of Email.

func (*RequestPasswordResetForm) GetLang

func (s *RequestPasswordResetForm) GetLang() OptLang

GetLang returns the value of Lang.

func (*RequestPasswordResetForm) MarshalJSON

func (s *RequestPasswordResetForm) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*RequestPasswordResetForm) SetEmail

func (s *RequestPasswordResetForm) SetEmail(val Email)

SetEmail sets the value of Email.

func (*RequestPasswordResetForm) SetLang

func (s *RequestPasswordResetForm) SetLang(val OptLang)

SetLang sets the value of Lang.

func (*RequestPasswordResetForm) UnmarshalJSON

func (s *RequestPasswordResetForm) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*RequestPasswordResetForm) Validate

func (s *RequestPasswordResetForm) Validate() error

type RequestPasswordResetNoContent

type RequestPasswordResetNoContent struct{}

RequestPasswordResetNoContent is response for RequestPasswordReset operation.

type RequestPasswordResetRes

type RequestPasswordResetRes interface {
	// contains filtered or unexported methods
}

type RequestRegistrationForm

type RequestRegistrationForm struct {
	// The email of the new user. This email must be available at the time of registration.
	Email Email   `json:"email"`
	Lang  OptLang `json:"lang"`
}

Create a new registration link. Ref: #/components/schemas/RequestRegistrationForm

func (*RequestRegistrationForm) Decode

func (s *RequestRegistrationForm) Decode(d *jx.Decoder) error

Decode decodes RequestRegistrationForm from json.

func (*RequestRegistrationForm) Encode

func (s *RequestRegistrationForm) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*RequestRegistrationForm) GetEmail

func (s *RequestRegistrationForm) GetEmail() Email

GetEmail returns the value of Email.

func (*RequestRegistrationForm) GetLang

func (s *RequestRegistrationForm) GetLang() OptLang

GetLang returns the value of Lang.

func (*RequestRegistrationForm) MarshalJSON

func (s *RequestRegistrationForm) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*RequestRegistrationForm) SetEmail

func (s *RequestRegistrationForm) SetEmail(val Email)

SetEmail sets the value of Email.

func (*RequestRegistrationForm) SetLang

func (s *RequestRegistrationForm) SetLang(val OptLang)

SetLang sets the value of Lang.

func (*RequestRegistrationForm) UnmarshalJSON

func (s *RequestRegistrationForm) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*RequestRegistrationForm) Validate

func (s *RequestRegistrationForm) Validate() error

type RequestRegistrationIMATeapot

type RequestRegistrationIMATeapot struct{}

RequestRegistrationIMATeapot is response for RequestRegistration operation.

type RequestRegistrationNoContent

type RequestRegistrationNoContent struct{}

RequestRegistrationNoContent is response for RequestRegistration operation.

type RequestRegistrationRes

type RequestRegistrationRes interface {
	// contains filtered or unexported methods
}

type ResetPasswordForm

type ResetPasswordForm struct {
	// The ID of the user that requested a password reset is sent in the reset link of the reset password
	// email.
	UserID UserID `json:"userID"`
	// The new password of the user.
	Password  Password  `json:"password"`
	ShortCode ShortCode `json:"shortCode"`
}

Data used to reset the password of a user. Ref: #/components/schemas/ResetPasswordForm

func (*ResetPasswordForm) Decode

func (s *ResetPasswordForm) Decode(d *jx.Decoder) error

Decode decodes ResetPasswordForm from json.

func (*ResetPasswordForm) Encode

func (s *ResetPasswordForm) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*ResetPasswordForm) GetPassword

func (s *ResetPasswordForm) GetPassword() Password

GetPassword returns the value of Password.

func (*ResetPasswordForm) GetShortCode

func (s *ResetPasswordForm) GetShortCode() ShortCode

GetShortCode returns the value of ShortCode.

func (*ResetPasswordForm) GetUserID

func (s *ResetPasswordForm) GetUserID() UserID

GetUserID returns the value of UserID.

func (*ResetPasswordForm) MarshalJSON

func (s *ResetPasswordForm) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*ResetPasswordForm) SetPassword

func (s *ResetPasswordForm) SetPassword(val Password)

SetPassword sets the value of Password.

func (*ResetPasswordForm) SetShortCode

func (s *ResetPasswordForm) SetShortCode(val ShortCode)

SetShortCode sets the value of ShortCode.

func (*ResetPasswordForm) SetUserID

func (s *ResetPasswordForm) SetUserID(val UserID)

SetUserID sets the value of UserID.

func (*ResetPasswordForm) UnmarshalJSON

func (s *ResetPasswordForm) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*ResetPasswordForm) Validate

func (s *ResetPasswordForm) Validate() error

type ResetPasswordNoContent

type ResetPasswordNoContent struct{}

ResetPasswordNoContent is response for ResetPassword operation.

type ResetPasswordRes

type ResetPasswordRes interface {
	// contains filtered or unexported methods
}

type Role

type Role string

func (*Role) Decode

func (s *Role) Decode(d *jx.Decoder) error

Decode decodes Role from json.

func (Role) Encode

func (s Role) Encode(e *jx.Encoder)

Encode encodes Role as json.

func (Role) MarshalJSON

func (s Role) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*Role) UnmarshalJSON

func (s *Role) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

type Route

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

Route is route object.

func (Route) Args

func (r Route) Args() []string

Args returns parsed arguments.

func (Route) Name

func (r Route) Name() string

Name returns ogen operation name.

It is guaranteed to be unique and not empty.

func (Route) OperationID

func (r Route) OperationID() string

OperationID returns OpenAPI operationId.

func (Route) PathPattern

func (r Route) PathPattern() string

PathPattern returns OpenAPI path.

func (Route) Summary

func (r Route) Summary() string

Summary returns OpenAPI summary.

type SecurityHandler

type SecurityHandler interface {
	// HandleBearerAuth handles bearerAuth security.
	HandleBearerAuth(ctx context.Context, operationName OperationName, t BearerAuth) (context.Context, error)
}

SecurityHandler is handler for security parameters.

type SecuritySource

type SecuritySource interface {
	// BearerAuth provides bearerAuth security value.
	BearerAuth(ctx context.Context, operationName OperationName) (BearerAuth, error)
}

SecuritySource is provider of security values (tokens, passwords, etc.).

type Server

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

Server implements http server based on OpenAPI v3 specification and calls Handler to handle requests.

func NewServer

func NewServer(h Handler, sec SecurityHandler, opts ...ServerOption) (*Server, error)

NewServer creates new Server.

func (*Server) FindPath

func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool)

FindPath finds Route for given method and URL.

func (*Server) FindRoute

func (s *Server) FindRoute(method, path string) (Route, bool)

FindRoute finds Route for given method and path.

Note: this method does not unescape path or handle reserved characters in path properly. Use FindPath instead.

func (*Server) ServeHTTP

func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP serves http request as defined by OpenAPI v3 specification, calling handler that matches the path or returning not found error.

type ServerOption

type ServerOption interface {
	// contains filtered or unexported methods
}

ServerOption is server config option.

func WithErrorHandler

func WithErrorHandler(h ErrorHandler) ServerOption

WithErrorHandler specifies error handler to use.

func WithMaxMultipartMemory

func WithMaxMultipartMemory(max int64) ServerOption

WithMaxMultipartMemory specifies limit of memory for storing file parts. File parts which can't be stored in memory will be stored on disk in temporary files.

func WithMethodNotAllowed

func WithMethodNotAllowed(methodNotAllowed func(w http.ResponseWriter, r *http.Request, allowed string)) ServerOption

WithMethodNotAllowed specifies Method Not Allowed handler to use.

func WithMiddleware

func WithMiddleware(m ...Middleware) ServerOption

WithMiddleware specifies middlewares to use.

func WithNotFound

func WithNotFound(notFound http.HandlerFunc) ServerOption

WithNotFound specifies Not Found handler to use.

func WithPathPrefix

func WithPathPrefix(prefix string) ServerOption

WithPathPrefix specifies server path prefix.

type ShortCode

type ShortCode string

func (*ShortCode) Decode

func (s *ShortCode) Decode(d *jx.Decoder) error

Decode decodes ShortCode from json.

func (ShortCode) Encode

func (s ShortCode) Encode(e *jx.Encoder)

Encode encodes ShortCode as json.

func (ShortCode) MarshalJSON

func (s ShortCode) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*ShortCode) UnmarshalJSON

func (s *ShortCode) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (ShortCode) Validate

func (s ShortCode) Validate() error

type Token

type Token struct {
	// The token used to authenticate the session. This token can be passed as a header to http requests
	// on
	// protected routes.
	AccessToken string `json:"accessToken"`
	// The token used to refresh the session.
	RefreshToken string `json:"refreshToken"`
}

Ref: #/components/schemas/Token

func (*Token) Decode

func (s *Token) Decode(d *jx.Decoder) error

Decode decodes Token from json.

func (*Token) Encode

func (s *Token) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*Token) GetAccessToken

func (s *Token) GetAccessToken() string

GetAccessToken returns the value of AccessToken.

func (*Token) GetRefreshToken

func (s *Token) GetRefreshToken() string

GetRefreshToken returns the value of RefreshToken.

func (*Token) MarshalJSON

func (s *Token) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*Token) SetAccessToken

func (s *Token) SetAccessToken(val string)

SetAccessToken sets the value of AccessToken.

func (*Token) SetRefreshToken

func (s *Token) SetRefreshToken(val string)

SetRefreshToken sets the value of RefreshToken.

func (*Token) UnmarshalJSON

func (s *Token) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

type UnauthorizedError

type UnauthorizedError struct {
	// The error message.
	Error string `json:"error"`
}

Ref: #/components/schemas/UnauthorizedError

func (*UnauthorizedError) Decode

func (s *UnauthorizedError) Decode(d *jx.Decoder) error

Decode decodes UnauthorizedError from json.

func (*UnauthorizedError) Encode

func (s *UnauthorizedError) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*UnauthorizedError) GetError

func (s *UnauthorizedError) GetError() string

GetError returns the value of Error.

func (*UnauthorizedError) MarshalJSON

func (s *UnauthorizedError) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*UnauthorizedError) SetError

func (s *UnauthorizedError) SetError(val string)

SetError sets the value of Error.

func (*UnauthorizedError) UnmarshalJSON

func (s *UnauthorizedError) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

type UnexpectedError

type UnexpectedError struct {
	// The error message.
	Error string `json:"error"`
}

Ref: #/components/schemas/UnexpectedError

func (*UnexpectedError) Decode

func (s *UnexpectedError) Decode(d *jx.Decoder) error

Decode decodes UnexpectedError from json.

func (*UnexpectedError) Encode

func (s *UnexpectedError) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*UnexpectedError) GetError

func (s *UnexpectedError) GetError() string

GetError returns the value of Error.

func (*UnexpectedError) MarshalJSON

func (s *UnexpectedError) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*UnexpectedError) SetError

func (s *UnexpectedError) SetError(val string)

SetError sets the value of Error.

func (*UnexpectedError) UnmarshalJSON

func (s *UnexpectedError) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

type UnexpectedErrorStatusCode

type UnexpectedErrorStatusCode struct {
	StatusCode int
	Response   UnexpectedError
}

UnexpectedErrorStatusCode wraps UnexpectedError with StatusCode.

func (*UnexpectedErrorStatusCode) Error

func (s *UnexpectedErrorStatusCode) Error() string

func (*UnexpectedErrorStatusCode) GetResponse

func (s *UnexpectedErrorStatusCode) GetResponse() UnexpectedError

GetResponse returns the value of Response.

func (*UnexpectedErrorStatusCode) GetStatusCode

func (s *UnexpectedErrorStatusCode) GetStatusCode() int

GetStatusCode returns the value of StatusCode.

func (*UnexpectedErrorStatusCode) SetResponse

func (s *UnexpectedErrorStatusCode) SetResponse(val UnexpectedError)

SetResponse sets the value of Response.

func (*UnexpectedErrorStatusCode) SetStatusCode

func (s *UnexpectedErrorStatusCode) SetStatusCode(val int)

SetStatusCode sets the value of StatusCode.

type UnimplementedHandler

type UnimplementedHandler struct{}

UnimplementedHandler is no-op Handler which returns http.ErrNotImplemented.

func (UnimplementedHandler) CheckSession

func (UnimplementedHandler) CheckSession(ctx context.Context) (r CheckSessionRes, _ error)

CheckSession implements checkSession operation.

Takes an empty request with authorization headers, and check the validity of those headers. If the headers can be used to access any protected resource, the session is considered valid and the decoded claims are returned as a success response. Otherwise, an error will be sent, explaining why the session is invalid.

GET /session

func (UnimplementedHandler) CreateAnonSession

func (UnimplementedHandler) CreateAnonSession(ctx context.Context) (r CreateAnonSessionRes, _ error)

CreateAnonSession implements createAnonSession operation.

Create a new anonymous session. An anonymous session is delivered without constraint, and grants basic access to apis with low protection.

PUT /session/anon

func (UnimplementedHandler) CreateSession

func (UnimplementedHandler) CreateSession(ctx context.Context, req *LoginForm) (r CreateSessionRes, _ error)

CreateSession implements createSession operation.

Create a new session, using a set of credentials. The provided credentials will be used to validate the identity of the caller. Once the credentials have been verified, a token is issued. The access rights it grants may depend on the profile of the user.

PUT /session

func (UnimplementedHandler) EmailExists

EmailExists implements emailExists operation.

Returns an empty, successful response if the email is already associated to an user. Otherwise, it fails with a not found (404) error status.

GET /credentials/email

func (UnimplementedHandler) GetUser

func (UnimplementedHandler) GetUser(ctx context.Context, params GetUserParams) (r GetUserRes, _ error)

GetUser implements getUser operation.

Get a user from the database.

GET /user

func (UnimplementedHandler) Healthcheck

func (UnimplementedHandler) Healthcheck(ctx context.Context) (r HealthcheckRes, _ error)

Healthcheck implements healthcheck operation.

Returns a detailed report of the health of the service, including every dependency.

GET /healthcheck

func (UnimplementedHandler) ListUsers

func (UnimplementedHandler) ListUsers(ctx context.Context, params ListUsersParams) (r ListUsersRes, _ error)

ListUsers implements listUsers operation.

List users in the database.

GET /users

func (UnimplementedHandler) NewError

NewError creates *UnexpectedErrorStatusCode from error returned by handler.

Used for common default response.

func (UnimplementedHandler) Ping

Ping implements ping operation.

Check the status of the service. If the service is running, a successful response is returned.

GET /ping

func (UnimplementedHandler) RefreshSession

RefreshSession implements refreshSession operation.

Takes a refresh token, and use it to issue a new access token.

PATCH /session/refresh

func (UnimplementedHandler) Register

Register implements register operation.

Create a new user. The form must contain a short code, that was sent through a registration link at the user desired email. On success, a valid access token is returned, that can be used to access higher-privilege routes.

PUT /credentials

func (UnimplementedHandler) RequestEmailUpdate

RequestEmailUpdate implements requestEmailUpdate operation.

Create a new short code for updating the email of an user. This short code is sent to the new address. If the user clicks on it, it should take it to a page that will forward the short code back to this API. Once done, the email associated to the user will be updated automatically. This route requires to be called by an authenticated user. Anonymous sessions cannot trigger an email update request. NOTE that this request does not verify the availability of an email. You may check this beforehand,

using

the `Email Exists` endpoint. If multiple email update links are requested for the same email, only the last one will be valid.

PUT /short-code/update-email

func (UnimplementedHandler) RequestPasswordReset

RequestPasswordReset implements requestPasswordReset operation.

Create a new short code for updating the password of an user. This short code is sent to the new address. If the user clicks on it, it should take it to a page that will forward the short code back to this API. Once done, the password of the user is updated. This route does not require authentication (although it requires at least an anonymous session). This allow users who forgot their password to reset it. If multiple password update links are requested for the same email, only the last one will be valid.

PUT /short-code/update-password

func (UnimplementedHandler) RequestRegistration

RequestRegistration implements requestRegistration operation.

To prevent spam in our user database, registration must be done through a link sent by e-mail, so we can ensure this address is valid. When a user registers, the short code it received must be sent along with the registration payload.

The email

of the payload MUST match the email the short code was sent to, and is used to retrieve the short code. NOTE that this request does not verify the availability of an email. You may check this beforehand,

using

the `Email Exists` endpoint. If multiple registration links are requested for the same email, only the last one will be valid.

PUT /short-code/register

func (UnimplementedHandler) ResetPassword

ResetPassword implements resetPassword operation.

Reset the password of an user. This route allows an unauthenticated session to update the password of a user. To prevent security issues, this route requires a short code that was sent to the email of the user that requested the password reset.

PATCH /credentials/password/reset

func (UnimplementedHandler) UpdateEmail

UpdateEmail implements updateEmail operation.

Update the email of an user. This route requires a valid short code, that was sent to the new email. If the short code is valid, the email of the user is updated with the email address the short code was sent to.

PATCH /credentials/email

func (UnimplementedHandler) UpdatePassword

UpdatePassword implements updatePassword operation.

Update the password of an user. This route requires the original password of the user, to double check the identity of the caller.

PATCH /credentials/password

func (UnimplementedHandler) UpdateRole

UpdateRole implements updateRole operation.

Update the role of an user. This route requires the original password of the user, to double check the identity of the caller.

PATCH /credentials/role

type UnprocessableEntityError

type UnprocessableEntityError struct {
	// The error message.
	Error string `json:"error"`
}

Ref: #/components/schemas/UnprocessableEntityError

func (*UnprocessableEntityError) Decode

func (s *UnprocessableEntityError) Decode(d *jx.Decoder) error

Decode decodes UnprocessableEntityError from json.

func (*UnprocessableEntityError) Encode

func (s *UnprocessableEntityError) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*UnprocessableEntityError) GetError

func (s *UnprocessableEntityError) GetError() string

GetError returns the value of Error.

func (*UnprocessableEntityError) MarshalJSON

func (s *UnprocessableEntityError) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*UnprocessableEntityError) SetError

func (s *UnprocessableEntityError) SetError(val string)

SetError sets the value of Error.

func (*UnprocessableEntityError) UnmarshalJSON

func (s *UnprocessableEntityError) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

type UpdateEmailForm

type UpdateEmailForm struct {
	// The id of the user that requested the email update. This ID is usually sent along the short code
	// in the email update link.
	UserID    UserID    `json:"userID"`
	ShortCode ShortCode `json:"shortCode"`
}

Data used to update the email of a user. Ref: #/components/schemas/UpdateEmailForm

func (*UpdateEmailForm) Decode

func (s *UpdateEmailForm) Decode(d *jx.Decoder) error

Decode decodes UpdateEmailForm from json.

func (*UpdateEmailForm) Encode

func (s *UpdateEmailForm) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*UpdateEmailForm) GetShortCode

func (s *UpdateEmailForm) GetShortCode() ShortCode

GetShortCode returns the value of ShortCode.

func (*UpdateEmailForm) GetUserID

func (s *UpdateEmailForm) GetUserID() UserID

GetUserID returns the value of UserID.

func (*UpdateEmailForm) MarshalJSON

func (s *UpdateEmailForm) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*UpdateEmailForm) SetShortCode

func (s *UpdateEmailForm) SetShortCode(val ShortCode)

SetShortCode sets the value of ShortCode.

func (*UpdateEmailForm) SetUserID

func (s *UpdateEmailForm) SetUserID(val UserID)

SetUserID sets the value of UserID.

func (*UpdateEmailForm) UnmarshalJSON

func (s *UpdateEmailForm) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*UpdateEmailForm) Validate

func (s *UpdateEmailForm) Validate() error

type UpdateEmailRes

type UpdateEmailRes interface {
	// contains filtered or unexported methods
}

type UpdatePasswordForm

type UpdatePasswordForm struct {
	// The new password of the user.
	Password Password `json:"password"`
	// The current password of the user, used for further verification of the caller identity.
	CurrentPassword Password `json:"currentPassword"`
}

Data used to update the password of a user. Ref: #/components/schemas/UpdatePasswordForm

func (*UpdatePasswordForm) Decode

func (s *UpdatePasswordForm) Decode(d *jx.Decoder) error

Decode decodes UpdatePasswordForm from json.

func (*UpdatePasswordForm) Encode

func (s *UpdatePasswordForm) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*UpdatePasswordForm) GetCurrentPassword

func (s *UpdatePasswordForm) GetCurrentPassword() Password

GetCurrentPassword returns the value of CurrentPassword.

func (*UpdatePasswordForm) GetPassword

func (s *UpdatePasswordForm) GetPassword() Password

GetPassword returns the value of Password.

func (*UpdatePasswordForm) MarshalJSON

func (s *UpdatePasswordForm) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*UpdatePasswordForm) SetCurrentPassword

func (s *UpdatePasswordForm) SetCurrentPassword(val Password)

SetCurrentPassword sets the value of CurrentPassword.

func (*UpdatePasswordForm) SetPassword

func (s *UpdatePasswordForm) SetPassword(val Password)

SetPassword sets the value of Password.

func (*UpdatePasswordForm) UnmarshalJSON

func (s *UpdatePasswordForm) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*UpdatePasswordForm) Validate

func (s *UpdatePasswordForm) Validate() error

type UpdatePasswordNoContent

type UpdatePasswordNoContent struct{}

UpdatePasswordNoContent is response for UpdatePassword operation.

type UpdatePasswordRes

type UpdatePasswordRes interface {
	// contains filtered or unexported methods
}

type UpdateRoleForm

type UpdateRoleForm struct {
	// The id of the user who's role is to be updated.
	UserID UserID `json:"userID"`
	// The new role of the user.
	Role CredentialsRole `json:"role"`
}

Data used to update the role of a user. The user requesting the update must follow some specific rules. - A user cannot upgrade other users to a role higher than its own. - A user can only downgrade other users to a role lower than its own. For example, the following operations are permitted: - ✅ A (super_admin) upgrades B (admin) to super_admin. - ✅ A (admin) upgrades B (user) to admin. - ✅ A (super_admin) downgrades B (admin) to user. But the following operations are not: - ❌ A (admin) upgrades B (user) to super_admin. - ❌ A (admin) downgrades B (admin) to user. Ref: #/components/schemas/UpdateRoleForm

func (*UpdateRoleForm) Decode

func (s *UpdateRoleForm) Decode(d *jx.Decoder) error

Decode decodes UpdateRoleForm from json.

func (*UpdateRoleForm) Encode

func (s *UpdateRoleForm) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*UpdateRoleForm) GetRole

func (s *UpdateRoleForm) GetRole() CredentialsRole

GetRole returns the value of Role.

func (*UpdateRoleForm) GetUserID

func (s *UpdateRoleForm) GetUserID() UserID

GetUserID returns the value of UserID.

func (*UpdateRoleForm) MarshalJSON

func (s *UpdateRoleForm) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*UpdateRoleForm) SetRole

func (s *UpdateRoleForm) SetRole(val CredentialsRole)

SetRole sets the value of Role.

func (*UpdateRoleForm) SetUserID

func (s *UpdateRoleForm) SetUserID(val UserID)

SetUserID sets the value of UserID.

func (*UpdateRoleForm) UnmarshalJSON

func (s *UpdateRoleForm) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*UpdateRoleForm) Validate

func (s *UpdateRoleForm) Validate() error

type UpdateRoleRes

type UpdateRoleRes interface {
	// contains filtered or unexported methods
}

type User

type User struct {
	// The unique identifier of the user.
	ID UserID `json:"id"`
	// The email of the user.
	Email Email `json:"email"`
	// The role of the user.
	Role CredentialsRole `json:"role"`
	// The date and time the user was created.
	CreatedAt time.Time `json:"createdAt"`
	// The date and time the user was last updated.
	UpdatedAt time.Time `json:"updatedAt"`
}

Ref: #/components/schemas/User

func (*User) Decode

func (s *User) Decode(d *jx.Decoder) error

Decode decodes User from json.

func (*User) Encode

func (s *User) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*User) GetCreatedAt

func (s *User) GetCreatedAt() time.Time

GetCreatedAt returns the value of CreatedAt.

func (*User) GetEmail

func (s *User) GetEmail() Email

GetEmail returns the value of Email.

func (*User) GetID

func (s *User) GetID() UserID

GetID returns the value of ID.

func (*User) GetRole

func (s *User) GetRole() CredentialsRole

GetRole returns the value of Role.

func (*User) GetUpdatedAt

func (s *User) GetUpdatedAt() time.Time

GetUpdatedAt returns the value of UpdatedAt.

func (*User) MarshalJSON

func (s *User) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*User) SetCreatedAt

func (s *User) SetCreatedAt(val time.Time)

SetCreatedAt sets the value of CreatedAt.

func (*User) SetEmail

func (s *User) SetEmail(val Email)

SetEmail sets the value of Email.

func (*User) SetID

func (s *User) SetID(val UserID)

SetID sets the value of ID.

func (*User) SetRole

func (s *User) SetRole(val CredentialsRole)

SetRole sets the value of Role.

func (*User) SetUpdatedAt

func (s *User) SetUpdatedAt(val time.Time)

SetUpdatedAt sets the value of UpdatedAt.

func (*User) UnmarshalJSON

func (s *User) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*User) Validate

func (s *User) Validate() error

type UserID

type UserID uuid.UUID

func (*UserID) Decode

func (s *UserID) Decode(d *jx.Decoder) error

Decode decodes UserID from json.

func (UserID) Encode

func (s UserID) Encode(e *jx.Encoder)

Encode encodes UserID as json.

func (UserID) MarshalJSON

func (s UserID) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*UserID) UnmarshalJSON

func (s *UserID) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

Jump to

Keyboard shortcuts

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