server

package
v0.1.0-alpha.2 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2025 License: AGPL-3.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Note: Some errors might overlap with core definitions but are kept here
	// for mapping purposes within redirectToFrontend.
	ErrSessionNotFound           = errors.New("session not found")
	ErrSessionExpired            = errors.New("session expired")
	ErrUserNotFound              = errors.New("user not found")
	ErrTeamNotFound              = errors.New("team not found")
	ErrUnauthorizedUser          = errors.New("unauthorized user")
	ErrUserInactive              = errors.New("user inactive")
	ErrOIDCProviderNotConfigured = errors.New("OIDC provider not configured") // This one might belong in auth/oidc.go
	ErrOIDCInvalidToken          = errors.New("invalid OIDC token")
	ErrOIDCEmailNotVerified      = errors.New("email not verified")
)

Define Auth/OIDC specific errors used within handlers, especially for redirect mapping.

Functions

func SendError

func SendError(c *fiber.Ctx, status int, err interface{}) error

SendError is a helper function to easily send a JSON error response with the given HTTP status code and error message. It uses the GeneralErrorType by default.

func SendErrorWithType

func SendErrorWithType(c *fiber.Ctx, status int, err interface{}, errorType models.ErrorType) error

SendErrorWithType is a helper function to easily send a JSON error response with the given HTTP status code, error message, and a specific application error type.

func SendSuccess

func SendSuccess(c *fiber.Ctx, status int, data interface{}) error

SendSuccess is a helper function to easily send a successful JSON response with the given HTTP status code and data payload.

Types

type Response

type Response struct {
	Status    string      `json:"status"` // "success" or "error"
	Data      interface{} `json:"data,omitempty"`
	Message   string      `json:"message,omitempty"`
	ErrorType string      `json:"error_type,omitempty"` // Application-specific error type code.
}

Response defines the standard JSON structure for API responses.

func NewErrorResponse

func NewErrorResponse(err interface{}, errorType models.ErrorType) Response

NewErrorResponse creates a standard error response structure. It accepts various error types and maps them to a consistent JSON format.

func NewSuccessResponse

func NewSuccessResponse(data interface{}) Response

NewSuccessResponse creates a standard success response structure.

type Server

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

Server represents the core HTTP server, encapsulating the Fiber app instance and necessary dependencies like database connections and configuration.

func New

func New(opts ServerOptions) *Server

New creates, configures, and returns a new Server instance. It initializes the Fiber application, sets up middleware, injects dependencies, and registers all application routes.

func (*Server) Shutdown

func (s *Server) Shutdown(ctx context.Context) error

Shutdown gracefully shuts down the Fiber server within the given context timeout.

func (*Server) Start

func (s *Server) Start() error

Start binds the server to the configured host and port and begins listening.

type ServerOptions

type ServerOptions struct {
	Config       *config.Config
	SQLite       *sqlite.DB
	ClickHouse   *clickhouse.Manager
	OIDCProvider *auth.OIDCProvider // OIDC provider for authentication flows.
	FS           http.FileSystem    // Filesystem for serving static assets (frontend).
	Logger       *slog.Logger
	BuildInfo    string
}

ServerOptions holds the dependencies required to create a new Server instance. This structure reflects the refactored approach using direct dependencies instead of services.

Jump to

Keyboard shortcuts

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