base

package
v0.0.0-...-2f30d10 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultApiPrefix = "/api"
View Source
const EmptyUUID = "00000000-0000-0000-0000-000000000000"

Variables

View Source
var (
	RetCodeMessage = map[RetCode]string{
		RetCodeRetOk:              "Success",
		RetCodeParamsError:        "Params error: %s",
		RetCodeRecordNotExists:    "Record not exists.",
		RetCodeSysError:           "System error: %s",
		RetCodeAdminInitedError:   "System init error: admin is %s",
		RetCodeMethodNotSupported: "Method %s not supported",

		RetCodeCreateErr: "Create err: %s",
		RetCodeUpdateErr: "Update err: %s",
		RetCodeDeleteErr: "Delete err: %s",
		RetCodeImportErr: "Import err: %s",
		RetCodeExportErr: "Export err: %s",

		RetCodeQueryErr: "Query err: %s",

		RetCodeUnauthorized: "Login error, username or password error.",
		RetCodeForbidden:    "forbidden: %s",
	}
)

Functions

This section is empty.

Types

type BaseRepo

type BaseRepo[T any] struct {
	DB                     *gorm.DB `wire:"auto"`
	DefaultProcessDB       func(db *gorm.DB) *gorm.DB
	DefaultFindProcessDB   func(db *gorm.DB) *gorm.DB
	DefaultCreateProcessDB func(db *gorm.DB) *gorm.DB
	DefaultUpdateProcessDB func(db *gorm.DB) *gorm.DB
	FindOmitColumns        []string
	CreateOmitColumns      []string
	UpdateOmitColumns      []string
	DBStatement            *gorm.Statement
}

func (*BaseRepo[T]) CheckProcessDB

func (br *BaseRepo[T]) CheckProcessDB(processDB func(*gorm.DB) *gorm.DB) func(*gorm.DB) *gorm.DB

func (*BaseRepo[T]) Count

func (br *BaseRepo[T]) Count(processDB func(*gorm.DB) *gorm.DB) (int, error)

func (*BaseRepo[T]) Create

func (br *BaseRepo[T]) Create(entity *T) (*T, error)

func (*BaseRepo[T]) DeleteById

func (br *BaseRepo[T]) DeleteById(id any) error

func (*BaseRepo[T]) DeleteByIdWithDB

func (br *BaseRepo[T]) DeleteByIdWithDB(id any, processDB func(*gorm.DB) *gorm.DB) error

func (*BaseRepo[T]) DeleteByIds

func (br *BaseRepo[T]) DeleteByIds(id []any) error

func (*BaseRepo[T]) DeleteByIdsWithDB

func (br *BaseRepo[T]) DeleteByIdsWithDB(ids []any, processDB func(*gorm.DB) *gorm.DB) error

func (*BaseRepo[T]) FindAll

func (br *BaseRepo[T]) FindAll(processDB func(*gorm.DB) *gorm.DB) ([]*T, error)

func (*BaseRepo[T]) FindById

func (br *BaseRepo[T]) FindById(id any) (*T, error)

func (*BaseRepo[T]) FindByIdWithDB

func (br *BaseRepo[T]) FindByIdWithDB(id any, processDB func(*gorm.DB) *gorm.DB) (*T, error)

func (*BaseRepo[T]) FindWithDB

func (br *BaseRepo[T]) FindWithDB(processDB func(*gorm.DB) *gorm.DB) (*T, error)

func (*BaseRepo[T]) IncrementCounterField

func (br *BaseRepo[T]) IncrementCounterField(fieldName string, delta int, processDB func(*gorm.DB) *gorm.DB) error

func (*BaseRepo[T]) IncrementCounterFieldByIds

func (br *BaseRepo[T]) IncrementCounterFieldByIds(ids []any, fieldName string, delta int) error

func (*BaseRepo[T]) Init

func (br *BaseRepo[T]) Init()

func (*BaseRepo[T]) Save

func (br *BaseRepo[T]) Save(entity *T) (*T, error)

func (*BaseRepo[T]) SaveAll

func (br *BaseRepo[T]) SaveAll(entities []*T) ([]*T, error)

func (*BaseRepo[T]) SaveAllWithDB

func (br *BaseRepo[T]) SaveAllWithDB(entities []*T, processDB func(*gorm.DB) *gorm.DB) ([]*T, error)

func (*BaseRepo[T]) SaveWithDB

func (br *BaseRepo[T]) SaveWithDB(entity *T, processDB func(*gorm.DB) *gorm.DB) (*T, error)

func (*BaseRepo[T]) Update

func (br *BaseRepo[T]) Update(entity *T) (*T, error)

func (*BaseRepo[T]) UpdateById

func (br *BaseRepo[T]) UpdateById(id any, column string, value interface{}) error

func (*BaseRepo[T]) UpdateWithDB

func (br *BaseRepo[T]) UpdateWithDB(column string, value interface{}, processDB func(*gorm.DB) *gorm.DB) error

func (*BaseRepo[T]) UpdatesWithDB

func (br *BaseRepo[T]) UpdatesWithDB(entity *T, processDB func(*gorm.DB) *gorm.DB) error

type BaseRest

type BaseRest[T any] struct {
	Self Rest[T]        `wire:"self"`
	Repo CrudRepoInf[T] `wire:"auto"`

	RestName string
	// contains filtered or unexported fields
}

func (*BaseRest[T]) AfterCreate

func (br *BaseRest[T]) AfterCreate(*T) error

func (*BaseRest[T]) AfterDelete

func (br *BaseRest[T]) AfterDelete([]string) error

func (*BaseRest[T]) AfterEdit

func (br *BaseRest[T]) AfterEdit(*T) error

func (*BaseRest[T]) AfterFind

func (br *BaseRest[T]) AfterFind(*T) error

func (*BaseRest[T]) BeforeCreate

func (br *BaseRest[T]) BeforeCreate(*T) error

func (*BaseRest[T]) BeforeDelete

func (br *BaseRest[T]) BeforeDelete([]string) error

func (*BaseRest[T]) BeforeEdit

func (br *BaseRest[T]) BeforeEdit(*T) error

func (*BaseRest[T]) Create

func (br *BaseRest[T]) Create(c *fiber.Ctx) error

func (*BaseRest[T]) Delete

func (br *BaseRest[T]) Delete(c *fiber.Ctx) error

func (*BaseRest[T]) Edit

func (br *BaseRest[T]) Edit(c *fiber.Ctx) error

func (*BaseRest[T]) Find

func (br *BaseRest[T]) Find(c *fiber.Ctx) error

func (*BaseRest[T]) InitNeedAuth

func (br *BaseRest[T]) InitNeedAuth(app *fiber.App)

func (*BaseRest[T]) InitUnAuth

func (br *BaseRest[T]) InitUnAuth(*fiber.App)

func (*BaseRest[T]) JwtTokenToUser

func (br *BaseRest[T]) JwtTokenToUser(c *fiber.Ctx) *User

func (*BaseRest[T]) JwtUserToToken

func (br *BaseRest[T]) JwtUserToToken(user *User, exp time.Time) (string, error)

func (*BaseRest[T]) List

func (br *BaseRest[T]) List(c *fiber.Ctx) error

func (*BaseRest[T]) ListWithQuery

func (br *BaseRest[T]) ListWithQuery(c *fiber.Ctx, queryParams QueryCondition) (err error)

func (*BaseRest[T]) RouterUrl

func (br *BaseRest[T]) RouterUrl(subPath string) string

func (*BaseRest[T]) Unsupported

func (br *BaseRest[T]) Unsupported(c *fiber.Ctx, methodName string) error

type CrudRepoInf

type CrudRepoInf[T any] interface {
	Count(processDB func(*gorm.DB) *gorm.DB) (int, error)

	Create(entity *T) (*T, error)
	Update(entity *T) (*T, error)
	Save(entity *T) (*T, error)
	SaveAll(entities []*T) ([]*T, error)

	FindById(id any) (*T, error)
	FindAll(processDB func(*gorm.DB) *gorm.DB) ([]*T, error)

	DeleteById(id any) error
	DeleteByIds(ids []any) error
}

type IdInf

type IdInf interface {
	SetId(id any) error
}

type PageParams

type PageParams struct {
	Page      int `json:"page"`
	Size      int `json:"size"`
	TotalPage int `json:"totalPage"`
	Total     int `json:"total"`
}

PageParams

page: 从1开始表示第一页
	如果page等于0,返回第一页;如果page等于1,还是返回第一页
	如果page小于0,则不进行分页
size: 表示分页大小

func (*PageParams) CheckDefault

func (pp *PageParams) CheckDefault()

func (*PageParams) QueryCondition

func (pp *PageParams) QueryCondition(db *gorm.DB) *gorm.DB

type PageRet

type PageRet[T any] struct {
	Items []T         `json:"items"`
	Page  *PageParams `json:"page"`
}

type QueryCondition

type QueryCondition interface {
	QueryCondition(db *gorm.DB) *gorm.DB
}

type Rest

type Rest[T any] interface {
	InitNeedAuth(app *fiber.App)
	InitUnAuth(app *fiber.App)

	List(c *fiber.Ctx) error

	Find(c *fiber.Ctx) error
	AfterFind(m *T) error

	Create(c *fiber.Ctx) error
	BeforeCreate(m *T) error
	AfterCreate(m *T) error

	Edit(c *fiber.Ctx) error
	BeforeEdit(m *T) error
	AfterEdit(m *T) error

	Delete(c *fiber.Ctx) error
	BeforeDelete(ids []string) error
	AfterDelete(ids []string) error
}

type Ret

type Ret[T any] struct {
	Code    RetCode `json:"code"`
	Message string  `json:"message"`
	Data    T       `json:"data,omitempty"`
}

func NewRet

func NewRet[T any](code RetCode, data T, messageParams ...interface{}) *Ret[T]

func RetErr

func RetErr(code RetCode, messageParams ...interface{}) *Ret[any]

func RetOk

func RetOk[T any](data T) *Ret[T]

func RetOkPage

func RetOkPage[T any](data []T, page *PageParams) *Ret[*PageRet[T]]

type RetCode

type RetCode int
const (
	RetCodeRetOk              RetCode = 0 // OK
	RetCodeParamsError        RetCode = 1
	RetCodeRecordNotExists    RetCode = 2
	RetCodeSysError           RetCode = 3
	RetCodeAdminInitedError   RetCode = 4
	RetCodeMethodNotSupported RetCode = 5

	RetCodeCreateErr RetCode = 10
	RetCodeUpdateErr RetCode = 11
	RetCodeDeleteErr RetCode = 12
	RetCodeImportErr RetCode = 13
	RetCodeExportErr RetCode = 14

	RetCodeQueryErr RetCode = 20

	RetCodeUnauthorized RetCode = 401
	RetCodeForbidden    RetCode = 403
)

type UUIDBase

type UUIDBase struct {
	Id        *uuid.UUID `json:"id" gorm:"type:char(36);primary_key"`
	CreatedAt time.Time  `json:"createdAt" gorm:"type:datetime(3);"`
	UpdatedAt time.Time  `json:"updatedAt" gorm:"type:datetime(3);"`
}

func (*UUIDBase) BeforeCreate

func (ub *UUIDBase) BeforeCreate(*gorm.DB) error

func (*UUIDBase) SetId

func (ub *UUIDBase) SetId(id any) (err error)

type User

type User struct {
	UUIDBase
	Username string `json:"username" gorm:"uniqueIndex;column:username;type:varchar(32);"`
	Password string `json:"password,omitempty" gorm:"column:password;type:varchar(128);"`
	Valid    bool   `json:"valid" gorm:"index;column:valid;"`
	IsAdmin  bool   `json:"isAdmin" gorm:"column:is_admin"`
}

func (*User) AfterCreate

func (u *User) AfterCreate(*gorm.DB) error

func (*User) AfterUpdate

func (u *User) AfterUpdate(*gorm.DB) error

func (*User) BeforeCreate

func (u *User) BeforeCreate(db *gorm.DB) error

BeforeCreate only use to create non admin user

func (*User) SetHashPassword

func (u *User) SetHashPassword(password string) error

func (*User) TableName

func (*User) TableName() string

Jump to

Keyboard shortcuts

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