Documentation
¶
Index ¶
- Constants
- func BcryptCheck(password, hash string) bool
- func BcryptHash(password string) string
- func CloneDB(db *gorm.DB) *gorm.DB
- func UseAppState(router *RouterGroup)
- type AppHandler
- type AppState
- type AppStateView
- type Claim
- type Context
- func (c *Context) BindUserClaim(dest any) error
- func (c *Context) Error(err string)
- func (c *Context) Errorf(err string, args ...any)
- func (c *Context) Fail(message string)
- func (c *Context) FailWithData(message string, data any)
- func (c *Context) Failf(message string, args ...any)
- func (c *Context) File(filepath string, deleteAfterRespond bool)
- func (c *Context) FileAttachment(filepath string, filename string, deleteAfterRespond bool)
- func (c *Context) GetClaim() *Claim
- func (c *Context) GetData(key string, defaultVal any) any
- func (c *Context) GetRawData() ([]byte, error)
- func (c *Context) MustGetClaim() *Claim
- func (c *Context) ParamFloat32(key string, defaultValue float32) float32
- func (c *Context) ParamFloat64(key string, defaultValue float64) float64
- func (c *Context) ParamInt(key string, defaultValue int) int
- func (c *Context) QueryInt(key string, defaultValue int64) int64
- func (c *Context) RawMap() map[string]any
- func (c *Context) ShouldBind(obj any) map[string]any
- func (c *Context) ShouldBindForm(key string, dest any)
- func (c *Context) ShouldBindJSON(obj any) map[string]any
- func (c *Context) ShouldBindQuery(obj interface{})
- func (c *Context) Success()
- func (c *Context) SuccessWithData(data any)
- type CronTaskInfo
- type DB
- func (db *DB) Clone() *DB
- func (db *DB) Count() (int64, error)
- func (db *DB) Create(value ...any) error
- func (db *DB) CreateInBatches(value any, batchSize int) error
- func (db *DB) Delete(value interface{}, conds ...interface{}) error
- func (db *DB) Distinct(args ...interface{}) *DB
- func (db *DB) Exec(sql string, value ...any) error
- func (db *DB) Find(dest any, conds ...any) error
- func (db *DB) FindOrPaginate(dest any, pi int, ps int) (any, error)
- func (db *DB) First(dest any, conds ...any) error
- func (db *DB) FirstAndInit(dest any, attrs ...any) error
- func (db *DB) FirstOrCreate(dest any, attrs ...any) error
- func (db *DB) FirstOrInit(dest any, attrs ...any) error
- func (db *DB) Group(fields ...string) *DB
- func (db *DB) Joins(query string, args ...interface{}) *DB
- func (db *DB) Last(dest any, conds ...any) error
- func (db *DB) Limit(limit int) *DB
- func (db *DB) Model(value any) *DB
- func (db *DB) NewGroup(fields ...string) *DB
- func (db *DB) NewSelect(query interface{}, args ...interface{}) *DB
- func (db *DB) Offset(offset int) *DB
- func (db *DB) Omit(columns ...string) *DB
- func (db *DB) Or(query interface{}, args ...interface{}) *DB
- func (db *DB) Order(fields ...string) *DB
- func (db *DB) Paginate(dest any, pi int, ps int) (*Pagination[any], error)
- func (db *DB) PaginateScan(dest any, pi int, ps int) (*Pagination[any], error)
- func (db *DB) Panic() *DB
- func (db *DB) Preload(query string, args ...interface{}) *DB
- func (db *DB) Raw(sql string, values ...interface{}) *DB
- func (db *DB) RowsAffected() int64
- func (db *DB) Run(fc func(db *DB)) *DB
- func (db *DB) Save(value any, omitFK bool) error
- func (db *DB) Scan(dest any) error
- func (db *DB) ScanOrPaginate(dest any, pi int, ps int) (any, error)
- func (db *DB) Select(query interface{}, args ...interface{}) *DB
- func (db *DB) Sum(query string) (float64, error)
- func (db *DB) Table(name string) *DB
- func (db *DB) Transaction(fc func(tx *DB) error) error
- func (db *DB) Update(column string, value interface{}) error
- func (db *DB) UpdateOrCreate(dest any, conds map[string]any, data map[string]any) error
- func (db *DB) Updates(data any) error
- func (db *DB) Where(query any, args ...any) *DB
- type EventHandler
- type GinApp
- func (app *GinApp) BeforeRun(f EventHandler)
- func (app *GinApp) BindConfig(key string, dest any) error
- func (app *GinApp) GetConfig() *conf.AppConfig
- func (app *GinApp) Group(relativePath string, handlers ...HandlerFunc) *RouterGroup
- func (app *GinApp) InitEnv(env string) error
- func (app *GinApp) LogDirectory() string
- func (app *GinApp) MigrateDbModels()
- func (app *GinApp) OnError(f EventHandler)
- func (app *GinApp) RegisterCommand(command *cobra.Command)
- func (app *GinApp) RegisterModels(models ...any)
- func (app *GinApp) RegisterVariable(v Variable)
- func (app *GinApp) Run(addr string)
- func (app *GinApp) RunCommand(f func(cmdargs map[string]any))
- func (app *GinApp) RunFromCommand()
- func (app *GinApp) SetResource(resource embed.FS)
- func (app *GinApp) SetState(state AppState)
- func (app *GinApp) StaticDirectory() string
- func (app *GinApp) UseHandler(handler AppHandler)
- type GormColumn
- type HandlerFunc
- type HttpMethod
- type IAppTask
- type IRouteView
- type JWT
- type LogView
- type Model
- type Pagination
- type QuerySet
- func (qs *QuerySet[T]) Clone() *QuerySet[T]
- func (qs *QuerySet[T]) Conds(conds map[string]any) *QuerySet[T]
- func (qs *QuerySet[T]) Distinct(args ...interface{}) *QuerySet[T]
- func (qs *QuerySet[T]) FindAll() ([]T, error)
- func (qs *QuerySet[T]) FindOrPaginate2(pi int, ps int) (any, error)
- func (qs *QuerySet[T]) ForEach(callback func(record T) error) error
- func (qs *QuerySet[T]) GetFirst(conds ...any) (*T, error)
- func (qs *QuerySet[T]) Group(fields ...string) *QuerySet[T]
- func (qs *QuerySet[T]) Joins(query string, args ...interface{}) *QuerySet[T]
- func (qs *QuerySet[T]) Limit(limit int) *QuerySet[T]
- func (qs *QuerySet[T]) Offset(offset int) *QuerySet[T]
- func (qs *QuerySet[T]) Omit(columns ...string) *QuerySet[T]
- func (qs *QuerySet[T]) Or(query interface{}, args ...interface{}) *QuerySet[T]
- func (qs *QuerySet[T]) Order(fields ...string) *QuerySet[T]
- func (qs *QuerySet[T]) Paginate2(pi int, ps int) (*Pagination[[]T], error)
- func (qs *QuerySet[T]) Panic() *QuerySet[T]
- func (qs *QuerySet[T]) Preload(query string, args ...interface{}) *QuerySet[T]
- func (qs *QuerySet[T]) Raw(sql string, values ...interface{}) *QuerySet[T]
- func (qs *QuerySet[T]) Run(fc func(qs *QuerySet[T])) *QuerySet[T]
- func (qs *QuerySet[T]) Select(query interface{}, args ...interface{}) *QuerySet[T]
- func (qs *QuerySet[T]) Table(name string) *QuerySet[T]
- func (qs *QuerySet[T]) Where(query any, args ...any) *QuerySet[T]
- type Route
- type RouterGroup
- func (r *RouterGroup) AddViews(views ...IRouteView)
- func (r *RouterGroup) Config(relativePath string, fc func(*RouterGroup)) *RouterGroup
- func (r *RouterGroup) DELETE(relativePath string, handlers ...HandlerFunc) *Route
- func (r *RouterGroup) GET(relativePath string, handlers ...HandlerFunc) *Route
- func (r *RouterGroup) Group(relativePath string, handlers ...HandlerFunc) *RouterGroup
- func (r *RouterGroup) HEAD(relativePath string, handlers ...HandlerFunc) *Route
- func (r *RouterGroup) OPTIONS(relativePath string, handlers ...HandlerFunc) *Route
- func (r *RouterGroup) PATCH(relativePath string, handlers ...HandlerFunc) *Route
- func (r *RouterGroup) POST(relativePath string, handlers ...HandlerFunc) *Route
- func (r *RouterGroup) PUT(relativePath string, handlers ...HandlerFunc) *Route
- func (r *RouterGroup) UseMiddleware(middleware ...HandlerFunc) *RouterGroup
- type TaskHandler
- type TaskManager
- func (m *TaskManager) AddTask(task IAppTask) (IAppTask, error)
- func (m *TaskManager) PauseTask(task IAppTask)
- func (m *TaskManager) RegisterRoutes(router *RouterGroup)
- func (m *TaskManager) ResumeTask(task IAppTask)
- func (m *TaskManager) RunTask(task IAppTask) error
- func (m *TaskManager) StopTask(task IAppTask) error
- func (m *TaskManager) UpdateTask(task IAppTask)
- type TaskState
- type Variable
- type VariableFunc
- type VariableView
Constants ¶
View Source
const ( JoinTypeDB = 1 JoinTypeStr = 2 )
Variables ¶
This section is empty.
Functions ¶
func UseAppState ¶
func UseAppState(router *RouterGroup)
Types ¶
type AppHandler ¶
type AppStateView ¶
type AppStateView struct{}
func (*AppStateView) AddRoutes ¶
func (view *AppStateView) AddRoutes(router *RouterGroup)
func (*AppStateView) GetState ¶
func (view *AppStateView) GetState(c *Context)
func (*AppStateView) SetState ¶
func (view *AppStateView) SetState(c *Context)
func (*AppStateView) StartMaintain ¶
func (view *AppStateView) StartMaintain(c *Context)
func (*AppStateView) StopMaintain ¶
func (view *AppStateView) StopMaintain(c *Context)
type Context ¶
type Context struct {
*gin.Context
App *GinApp
Route *Route
// contains filtered or unexported fields
}
func (*Context) BindUserClaim ¶
func (*Context) FailWithData ¶
func (*Context) FileAttachment ¶
func (*Context) MustGetClaim ¶
func (*Context) ParamFloat32 ¶
func (*Context) ParamFloat64 ¶
func (*Context) ShouldBind ¶
根据请求方式处理数据绑定,一般用于GET和POST都支持的查询接口
func (*Context) ShouldBindForm ¶
func (*Context) ShouldBindJSON ¶
替代ShouldBindJSON,同时返回经过过滤的map数据
func (*Context) ShouldBindQuery ¶
func (c *Context) ShouldBindQuery(obj interface{})
func (*Context) SuccessWithData ¶
type CronTaskInfo ¶
type CronTaskInfo struct {
CronID cron.EntryID `json:"cron_id"`
Key string `json:"key"`
Name string `json:"name"`
CronExpression string `json:"cron_expression"`
Desc string `json:"desc"`
Enabled bool `json:"enabled"`
AllowPause bool `json:"allow_pause"`
AllowStop bool `json:"allow_stop,omitempty"`
State TaskState `json:"state"`
TimeStart *time.Time `json:"time_start,omitempty"`
TimeEnd *time.Time `json:"time_end,omitempty"`
TimeCost float64 `json:"time_cost,omitempty"` // 运行耗时
Error string `json:"error,omitempty"`
Traceback string `json:"traceback,omitempty"`
}
func (*CronTaskInfo) IsIdle ¶
func (info *CronTaskInfo) IsIdle() bool
type DB ¶
func (*DB) FindOrPaginate ¶
根据需要选择分页或者不分页,用于接口中分页或者不分页都要支持的情况
func (*DB) Joins ¶
加强版的Joins,支持Select字段追加,比如:
db.Joins("Project", DB.Select("id", "name"))
db.Joins("Project", DB.Select("fullname"))
相当于:db.Joins("Project", DB.Select("id", "name", "fullname"))
不至于使后写的冲掉前面的,有些逻辑场景下,查询但不需要Select字段,有些则需要, 但两个逻辑同时出现在一个复杂逻辑中, 就不允许相互冲掉
func (*DB) PaginateScan ¶
func (*DB) UpdateOrCreate ¶
type EventHandler ¶
type EventHandler func()
type GinApp ¶
type GinApp struct {
*gin.Engine
Directory string
DB *DB
Models []any
JWT *JWT
Tasks *TaskManager
Viper *viper.Viper
// contains filtered or unexported fields
}
func Application ¶
func Application(opts ...gin.OptionFunc) *GinApp
func (*GinApp) BeforeRun ¶
func (app *GinApp) BeforeRun(f EventHandler)
func (*GinApp) Group ¶
func (app *GinApp) Group(relativePath string, handlers ...HandlerFunc) *RouterGroup
func (*GinApp) LogDirectory ¶
func (*GinApp) OnError ¶
func (app *GinApp) OnError(f EventHandler)
func (*GinApp) RegisterVariable ¶
func (*GinApp) RunCommand ¶
func (*GinApp) SetResource ¶
func (*GinApp) StaticDirectory ¶
func (*GinApp) UseHandler ¶
func (app *GinApp) UseHandler(handler AppHandler)
type GormColumn ¶
type GormColumn struct {
IsPrimaryKey bool `json:"primary_key" form:"primary_key"`
Column string `json:"column" form:"column"` // 数据库字段名称
FieldName string `json:"field_name" form:"field_name"` // 字段名称
FieldType string `json:"field_type" form:"field_type"`
Size int `json:"size" form:"size"`
IsFKField bool `json:"is_fk_field"`
DefaultValue string `json:"default_value" form:"default_value"`
}
type HandlerFunc ¶
type HandlerFunc func(*Context)
func MiddlewareJWT ¶
func MiddlewareJWT(config *conf.AppConfig) HandlerFunc
type HttpMethod ¶
type HttpMethod string
const ( HttpGET HttpMethod = "GET" HttpPOST HttpMethod = "POST" HttpPUT HttpMethod = "PUT" HttpDELETE HttpMethod = "DELETE" HttpPATCH HttpMethod = "PATCH" HttpOPTIONS HttpMethod = "OPTIONS" HttpHEAD HttpMethod = "HEAD" )
type IAppTask ¶
type IAppTask interface {
GetInfo() *CronTaskInfo
UpdateInfo(info CronTaskInfo)
Run(handler *TaskHandler) error
}
type LogView ¶
type LogView struct{}
func (*LogView) RegisterRoutes ¶
func (view *LogView) RegisterRoutes(router *RouterGroup)
type Model ¶
type Model struct {
ID uint `gorm:"primarykey" json:"id"`
CreatedAt *time.Time `gorm:"not null;default:CURRENT_TIMESTAMP(3);comment:创建时间" json:"created_at,omitempty"`
UpdatedAt *time.Time `gorm:"default:NULL on update CURRENT_TIMESTAMP(3);comment:更新时间" json:"updated_at,omitempty"`
DeletedAt *time.Time `gorm:"index" json:"deleted_at,omitempty"`
}
基础模型
type Pagination ¶
type QuerySet ¶
DB的泛型版本
func (*QuerySet[T]) FindOrPaginate2 ¶
func (*QuerySet[T]) Paginate2 ¶
func (qs *QuerySet[T]) Paginate2(pi int, ps int) (*Pagination[[]T], error)
type Route ¶
func (*Route) IsMaintainAllow ¶
func (*Route) MaintainAllow ¶
func (r *Route) MaintainAllow()
type RouterGroup ¶
type RouterGroup struct {
*gin.RouterGroup
RelativePath string
App *GinApp
}
func (*RouterGroup) AddViews ¶
func (r *RouterGroup) AddViews(views ...IRouteView)
func (*RouterGroup) Config ¶
func (r *RouterGroup) Config(relativePath string, fc func(*RouterGroup)) *RouterGroup
func (*RouterGroup) DELETE ¶
func (r *RouterGroup) DELETE(relativePath string, handlers ...HandlerFunc) *Route
func (*RouterGroup) GET ¶
func (r *RouterGroup) GET(relativePath string, handlers ...HandlerFunc) *Route
func (*RouterGroup) Group ¶
func (r *RouterGroup) Group(relativePath string, handlers ...HandlerFunc) *RouterGroup
func (*RouterGroup) HEAD ¶
func (r *RouterGroup) HEAD(relativePath string, handlers ...HandlerFunc) *Route
func (*RouterGroup) OPTIONS ¶
func (r *RouterGroup) OPTIONS(relativePath string, handlers ...HandlerFunc) *Route
func (*RouterGroup) PATCH ¶
func (r *RouterGroup) PATCH(relativePath string, handlers ...HandlerFunc) *Route
func (*RouterGroup) POST ¶
func (r *RouterGroup) POST(relativePath string, handlers ...HandlerFunc) *Route
func (*RouterGroup) PUT ¶
func (r *RouterGroup) PUT(relativePath string, handlers ...HandlerFunc) *Route
func (*RouterGroup) UseMiddleware ¶
func (r *RouterGroup) UseMiddleware(middleware ...HandlerFunc) *RouterGroup
type TaskHandler ¶
type TaskHandler struct {
// contains filtered or unexported fields
}
func NewTaskHandler ¶
func NewTaskHandler() *TaskHandler
func (*TaskHandler) OnPause ¶
func (t *TaskHandler) OnPause(callback func())
func (*TaskHandler) OnResume ¶
func (t *TaskHandler) OnResume(callback func())
func (*TaskHandler) OnStop ¶
func (t *TaskHandler) OnStop(callback func())
func (*TaskHandler) Stop ¶
func (t *TaskHandler) Stop()
func (*TaskHandler) Wait ¶
func (t *TaskHandler) Wait()
type TaskManager ¶
func NewTaskManager ¶
func NewTaskManager() *TaskManager
func (*TaskManager) PauseTask ¶
func (m *TaskManager) PauseTask(task IAppTask)
func (*TaskManager) RegisterRoutes ¶
func (m *TaskManager) RegisterRoutes(router *RouterGroup)
func (*TaskManager) ResumeTask ¶
func (m *TaskManager) ResumeTask(task IAppTask)
func (*TaskManager) RunTask ¶
func (m *TaskManager) RunTask(task IAppTask) error
func (*TaskManager) StopTask ¶
func (m *TaskManager) StopTask(task IAppTask) error
func (*TaskManager) UpdateTask ¶
func (m *TaskManager) UpdateTask(task IAppTask)
type Variable ¶
type Variable struct {
Name string `json:"name"`
Key string `json:"key"`
Module string `json:"module"` // 适用场景
GetValue VariableFunc `json:"-"`
}
type VariableFunc ¶
type VariableView ¶
type VariableView struct{}
func (*VariableView) RegisterRoutes ¶
func (view *VariableView) RegisterRoutes(router *RouterGroup)
Source Files
¶
Click to show internal directories.
Click to hide internal directories.