// Package openapi provides primitives to interact with the openapi HTTP API. // // Code generated by github.com/deepmap/oapi-codegen version v1.16.3 DO NOT EDIT. package openapi import ( "github.com/gofiber/fiber/v2" ) const ( BearerAuthScopes = "bearerAuth.Scopes" ) // Error defines model for Error. type Error struct { Code *string `json:"code,omitempty"` Message *string `json:"message,omitempty"` } // LoginRequest defines model for LoginRequest. type LoginRequest struct { Password string `json:"password"` Username string `json:"username"` } // RefreshRequest defines model for RefreshRequest. type RefreshRequest struct { RefreshToken string `json:"refreshToken"` } // RevokeRequest defines model for RevokeRequest. type RevokeRequest struct { RefreshToken string `json:"refreshToken"` } // TokenResponse defines model for TokenResponse. type TokenResponse struct { AccessToken *string `json:"accessToken,omitempty"` // ExpiresIn Seconds until access token expiration ExpiresIn *int `json:"expiresIn,omitempty"` RefreshToken *string `json:"refreshToken,omitempty"` } // UserProfile defines model for UserProfile. type UserProfile struct { Email *string `json:"email,omitempty"` Id *string `json:"id,omitempty"` Username *string `json:"username,omitempty"` } // BadRequest defines model for BadRequest. type BadRequest = Error // Unauthorized defines model for Unauthorized. type Unauthorized = Error // PostAuthLoginJSONRequestBody defines body for PostAuthLogin for application/json ContentType. type PostAuthLoginJSONRequestBody = LoginRequest // PostAuthLogoutJSONRequestBody defines body for PostAuthLogout for application/json ContentType. type PostAuthLogoutJSONRequestBody = RevokeRequest // PostAuthRefreshJSONRequestBody defines body for PostAuthRefresh for application/json ContentType. type PostAuthRefreshJSONRequestBody = RefreshRequest // ServerInterface represents all server handlers. type ServerInterface interface { // Obtain access and refresh tokens // (POST /auth/login) PostAuthLogin(c *fiber.Ctx) error // Revoke refresh token / logout // (POST /auth/logout) PostAuthLogout(c *fiber.Ctx) error // Get current authenticated user // (GET /auth/me) GetAuthMe(c *fiber.Ctx) error // Refresh access token using a refresh token // (POST /auth/refresh) PostAuthRefresh(c *fiber.Ctx) error } // ServerInterfaceWrapper converts contexts to parameters. type ServerInterfaceWrapper struct { Handler ServerInterface } type MiddlewareFunc fiber.Handler // PostAuthLogin operation middleware func (siw *ServerInterfaceWrapper) PostAuthLogin(c *fiber.Ctx) error { return siw.Handler.PostAuthLogin(c) } // PostAuthLogout operation middleware func (siw *ServerInterfaceWrapper) PostAuthLogout(c *fiber.Ctx) error { c.Context().SetUserValue(BearerAuthScopes, []string{}) return siw.Handler.PostAuthLogout(c) } // GetAuthMe operation middleware func (siw *ServerInterfaceWrapper) GetAuthMe(c *fiber.Ctx) error { c.Context().SetUserValue(BearerAuthScopes, []string{}) return siw.Handler.GetAuthMe(c) } // PostAuthRefresh operation middleware func (siw *ServerInterfaceWrapper) PostAuthRefresh(c *fiber.Ctx) error { return siw.Handler.PostAuthRefresh(c) } // FiberServerOptions provides options for the Fiber server. type FiberServerOptions struct { BaseURL string Middlewares []MiddlewareFunc } // RegisterHandlers creates http.Handler with routing matching OpenAPI spec. func RegisterHandlers(router fiber.Router, si ServerInterface) { RegisterHandlersWithOptions(router, si, FiberServerOptions{}) } // RegisterHandlersWithOptions creates http.Handler with additional options func RegisterHandlersWithOptions(router fiber.Router, si ServerInterface, options FiberServerOptions) { wrapper := ServerInterfaceWrapper{ Handler: si, } for _, m := range options.Middlewares { router.Use(m) } router.Post(options.BaseURL+"/auth/login", wrapper.PostAuthLogin) router.Post(options.BaseURL+"/auth/logout", wrapper.PostAuthLogout) router.Get(options.BaseURL+"/auth/me", wrapper.GetAuthMe) router.Post(options.BaseURL+"/auth/refresh", wrapper.PostAuthRefresh) }