add backend tpl

This commit is contained in:
Rogee
2024-11-28 23:18:11 +08:00
parent 77e962b668
commit f7d95418a2
86 changed files with 3229 additions and 135 deletions

View File

@@ -0,0 +1,8 @@
package consts
// Format
//
// // swagger:enum CacheKey
// // ENUM(
// // VerifyCode = "code:__CHANNEL__:%s",
// // )

13
backend/common/dao.go Executable file
View File

@@ -0,0 +1,13 @@
package common
func WrapLike(v string) string {
return "%" + v + "%"
}
func WrapLikeLeft(v string) string {
return "%" + v
}
func WrapLikeRight(v string) string {
return "%" + v
}

View File

@@ -0,0 +1,71 @@
package common
import (
"strings"
"github.com/samber/lo"
)
type SortQueryFilter struct {
Asc *string `json:"asc" form:"asc"`
Desc *string `json:"desc" form:"desc"`
}
func (s *SortQueryFilter) AscFields() []string {
if s.Asc == nil {
return nil
}
return strings.Split(*s.Asc, ",")
}
func (s *SortQueryFilter) DescFields() []string {
if s.Desc == nil {
return nil
}
return strings.Split(*s.Desc, ",")
}
func (s *SortQueryFilter) DescID() *SortQueryFilter {
if s.Desc == nil {
s.Desc = lo.ToPtr("id")
}
items := s.DescFields()
if lo.Contains(items, "id") {
return s
}
items = append(items, "id")
s.Desc = lo.ToPtr(strings.Join(items, ","))
return s
}
type PageDataResponse struct {
PageQueryFilter `json:",inline"`
Total int64 `json:"total"`
Items interface{} `json:"items"`
}
type PageQueryFilter struct {
Page int `json:"page" form:"page"`
Limit int `json:"limit" form:"limit"`
}
func (filter *PageQueryFilter) Offset() int {
return (filter.Page - 1) * filter.Limit
}
func (filter *PageQueryFilter) Format() *PageQueryFilter {
if filter.Page <= 0 {
filter.Page = 1
}
if filter.Limit <= 0 {
filter.Limit = 10
}
if filter.Limit > 50 {
filter.Limit = 50
}
return filter
}

20
backend/common/jwt.go Executable file
View File

@@ -0,0 +1,20 @@
package common
import (
"github.com/atom-providers/jwt"
"github.com/gofiber/fiber/v2"
)
func GetJwtToken(ctx *fiber.Ctx) (string, error) {
headers, ok := ctx.GetReqHeaders()[jwt.HttpHeader]
if !ok {
return "", ctx.SendStatus(fiber.StatusUnauthorized)
}
if len(headers) == 0 {
return "", ctx.SendStatus(fiber.StatusUnauthorized)
}
token := headers[0]
token = token[len(jwt.TokenPrefix):]
return token, nil
}