Documentation
¶
Index ¶
- Constants
- Variables
- func CtxLoggerMidleware(log *zap.Logger) gin.HandlerFunc
- func GetLogger(ctx context.Context) *zap.Logger
- func GetRole(ctx context.Context) domain.AccountRole
- func GetUID(ctx context.Context) int
- func GetUserOp(ctx context.Context) perm.ResId
- func GetValidator() *validator.Validate
- func RegisterGinLogger(ctx *gin.Context, log *zap.Logger)
- func RegisterLogger(ctx context.Context, log *zap.Logger) context.Context
- func RequiredAuthMiddware() gin.HandlerFunc
- func SetupRouter(router *gin.Engine, jwt *JwtHandler, account *AccountController, ...)
- func SetupValidation(validator *validator.Validate)
- func ValidateEnum(fl validator.FieldLevel) bool
- type Account
- type AccountController
- type AccountCreateRequest
- type AccountLoginRequest
- type AuthClaims
- type AuthToken
- type JwtHandler
- type LoginResult
- type Post
- type PostController
- type PostCreateRequest
- type PostListRequest
- type Site
- type SiteController
- type WebConfig
Constants ¶
View Source
const LOGGER_KEY = "APP_WIDE_LOGGER"
Variables ¶
View Source
var Module = fx.Module("web", fx.Provide( GetValidator, func(config WebConfig, log *zap.Logger) *JwtHandler { return NewJwtHandler(config.GetJwtSecret(), log) }, NewPostController, NewAccountController, NewSiteController, ), fx.Invoke( SetupValidation, SetupRouter, ))
Functions ¶
func CtxLoggerMidleware ¶
func CtxLoggerMidleware(log *zap.Logger) gin.HandlerFunc
func GetValidator ¶
func RequiredAuthMiddware ¶
func RequiredAuthMiddware() gin.HandlerFunc
func SetupRouter ¶
func SetupRouter(router *gin.Engine, jwt *JwtHandler, account *AccountController, site *SiteController, post *PostController)
func SetupValidation ¶
func ValidateEnum ¶
func ValidateEnum(fl validator.FieldLevel) bool
Types ¶
type AccountController ¶
type AccountController struct {
// contains filtered or unexported fields
}
func NewAccountController ¶
func NewAccountController(usecase *usecase.Account, log *zap.Logger, perm *perm.Perm, jwt *JwtHandler) *AccountController
func (*AccountController) HandleGet ¶
func (c *AccountController) HandleGet(ctx *gin.Context)
func (*AccountController) HandleList ¶
func (c *AccountController) HandleList(ctx *gin.Context)
func (*AccountController) HandleLogin ¶
func (c *AccountController) HandleLogin(ctx *gin.Context)
create account
func (*AccountController) HandlePost ¶
func (c *AccountController) HandlePost(ctx *gin.Context)
create account
type AccountCreateRequest ¶
type AccountCreateRequest struct {
Email string `json:"email" binding:"required"`
Username string `json:"username" binding:"required"`
Role domain.AccountRole `json:"role" binding:"enum"`
Password string `json:"password" binding:"required"`
}
type AccountLoginRequest ¶
type AuthClaims ¶
type AuthClaims struct {
jwt.RegisteredClaims
Role string
}
type JwtHandler ¶
type JwtHandler struct {
// contains filtered or unexported fields
}
func NewJwtHandler ¶
func NewJwtHandler(secret string, log *zap.Logger) *JwtHandler
func (*JwtHandler) Parse ¶
func (j *JwtHandler) Parse(tokenStr string) (*jwt.Token, *AuthClaims, error)
func (*JwtHandler) ParseMiddleware ¶
func (j *JwtHandler) ParseMiddleware() gin.HandlerFunc
type LoginResult ¶
type LoginResult struct {
Token string `json:"token"`
}
type PostController ¶
type PostController struct {
// contains filtered or unexported fields
}
func NewPostController ¶
func NewPostController(usecase *usecase.Post, log *zap.SugaredLogger) *PostController
func (*PostController) HandleDelete ¶
func (c *PostController) HandleDelete(ctx *gin.Context)
func (*PostController) HandleGet ¶
func (c *PostController) HandleGet(ctx *gin.Context)
func (*PostController) HandleList ¶
func (c *PostController) HandleList(ctx *gin.Context)
func (*PostController) HandlePost ¶
func (c *PostController) HandlePost(ctx *gin.Context)
type PostCreateRequest ¶
type PostListRequest ¶
type SiteController ¶
type SiteController struct {
// contains filtered or unexported fields
}
func NewSiteController ¶
func (*SiteController) HandleList ¶
func (c *SiteController) HandleList(ctx *gin.Context)
Click to show internal directories.
Click to hide internal directories.