work

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jan 25, 2026 License: AGPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var GlobalRouter = &Router{}

Functions

func GetCache

func GetCache(key string) (value.Value, bool)

func GetDB

func GetDB() *sql.DB

func InitDB

func InitDB(cfg security.DBConfig) error

InitDB khởi tạo kết nối Database toàn cục dựa trên cấu hình bảo mật

func SetCache

func SetCache(key string, val value.Value, ttl time.Duration)

Types

type CacheItem

type CacheItem struct {
	Value     value.Value
	ExpiresAt time.Time
}

type DBQuery

type DBQuery struct {
	// contains filtered or unexported fields
}

func NewDBQuery

func NewDBQuery() *DBQuery

func (*DBQuery) All

func (q *DBQuery) All() value.Value

func (*DBQuery) Avg

func (q *DBQuery) Avg(column string) value.Value

func (*DBQuery) Find

func (q *DBQuery) Find(idOrFn any) value.Value

func (*DBQuery) First

func (q *DBQuery) First() value.Value

func (*DBQuery) From

func (q *DBQuery) From(table string) *DBQuery

func (*DBQuery) Get

func (q *DBQuery) Get() value.Value

func (*DBQuery) Group

func (q *DBQuery) Group(columns ...string) *DBQuery

func (*DBQuery) Having

func (q *DBQuery) Having(args ...value.Value) *DBQuery

func (*DBQuery) In

func (q *DBQuery) In(columnOrFn any, vals ...any) *DBQuery

func (*DBQuery) Insert

func (q *DBQuery) Insert(data value.Value) *DBQuery

func (*DBQuery) Join

func (q *DBQuery) Join(tableOrFn any, args ...value.Value) *DBQuery

func (*DBQuery) Last

func (q *DBQuery) Last() value.Value

func (*DBQuery) LeftJoin

func (q *DBQuery) LeftJoin(tableOrFn any, args ...value.Value) *DBQuery

func (*DBQuery) Like

func (q *DBQuery) Like(columnOrFn any, pattern ...string) *DBQuery

func (*DBQuery) Limit

func (q *DBQuery) Limit(n float64) *DBQuery

func (*DBQuery) Max

func (q *DBQuery) Max(column string) value.Value

func (*DBQuery) Min

func (q *DBQuery) Min(column string) value.Value

func (*DBQuery) NotNull

func (q *DBQuery) NotNull(column string) *DBQuery

func (*DBQuery) Null

func (q *DBQuery) Null(column string) *DBQuery

func (*DBQuery) Offset

func (q *DBQuery) Offset(n float64) *DBQuery

func (*DBQuery) On

func (q *DBQuery) On(args ...value.Value) *DBQuery

func (*DBQuery) One

func (q *DBQuery) One() value.Value

func (*DBQuery) Or

func (q *DBQuery) Or(args ...value.Value) *DBQuery

func (*DBQuery) OrderBy

func (q *DBQuery) OrderBy(column string, direction ...string) *DBQuery

func (*DBQuery) Select

func (q *DBQuery) Select(fields ...string) *DBQuery

func (*DBQuery) SetExecutor

func (q *DBQuery) SetExecutor(e LambdaExecutor)

func (*DBQuery) Skip

func (q *DBQuery) Skip(n float64) *DBQuery

func (*DBQuery) String

func (q *DBQuery) String() string

func (*DBQuery) Sum

func (q *DBQuery) Sum(column string) value.Value

func (*DBQuery) Table

func (q *DBQuery) Table(table string) *DBQuery

func (*DBQuery) Take

func (q *DBQuery) Take(args ...value.Value) value.Value

func (*DBQuery) Where

func (q *DBQuery) Where(args ...value.Value) *DBQuery

type HTTPClient

type HTTPClient struct {
	// contains filtered or unexported fields
}

func NewHTTPClient

func NewHTTPClient(t *Task) *HTTPClient

func (*HTTPClient) Get

func (c *HTTPClient) Get(url string) value.Value

func (*HTTPClient) Post

func (c *HTTPClient) Post(url string, body value.Value) value.Value

type LambdaExecutor

type LambdaExecutor interface {
	ExecuteLambda(fn *value.ScriptFunction, args []value.Value) value.Value
}

type Route

type Route struct {
	Method string
	Path   string
	Fn     *value.ScriptFunction
	Work   *Work // Exec context
}

type Router

type Router struct {
	Mu     sync.RWMutex
	Routes []Route
}

func (*Router) Clear

func (r *Router) Clear()

func (*Router) Get

func (r *Router) Get(path string, fn value.Value) *Router

func (*Router) Post

func (r *Router) Post(path string, fn value.Value) *Router

type SQLProxyHandler

type SQLProxyHandler struct {
	TableName string
	Column    string
	Operator  string
	Value     value.Value
}

SQLProxyHandler implements value.ProxyHandler to capture SQL conditions

func (*SQLProxyHandler) OnCompare

func (h *SQLProxyHandler) OnCompare(op string, other value.Value) value.Value

func (*SQLProxyHandler) OnGet

func (h *SQLProxyHandler) OnGet(key string) value.Value

func (*SQLProxyHandler) OnInvoke

func (h *SQLProxyHandler) OnInvoke(method string, args ...value.Value) value.Value

type StaticRoute

type StaticRoute struct {
	Method  string
	Path    string
	Handler *value.ScriptFunction
}

StaticRoute đại diện cho một rule điều hướng tĩnh

type Task

type Task struct {
	Work    *Work
	Request *http.Request
	Writer  http.ResponseWriter

	Params map[string]value.Value // URL Path params like :id

	Response value.Value
	ResType  string
	Config   map[string]string
}

Task đại diện cho một phiên thực thi (Mutable Context)

func (*Task) DB

func (t *Task) DB() *DBQuery

func (*Task) GetBody

func (t *Task) GetBody() value.Value

func (*Task) GetParams

func (t *Task) GetParams() value.Value

func (*Task) GetQuery

func (t *Task) GetQuery() value.Value

func (*Task) HTML

func (t *Task) HTML(template value.Value, data ...value.Value)

func (*Task) HTTP

func (t *Task) HTTP() *HTTPClient

func (*Task) JSON

func (t *Task) JSON(val value.Value)

func (*Task) Log

func (t *Task) Log(args ...value.Value)

func (*Task) Now

func (t *Task) Now() value.Value

func (*Task) Payload

func (t *Task) Payload() value.Value

func (*Task) Print

func (t *Task) Print(args ...value.Value)

func (*Task) Reset

func (t *Task) Reset(w *Work)

func (*Task) SetBody

func (t *Task) SetBody(v value.Value)

func (*Task) SetQuery

func (t *Task) SetQuery(v value.Value)

func (*Task) SetRequest

func (t *Task) SetRequest(r *http.Request, w http.ResponseWriter)

type Work

type Work struct {
	Name       string
	Routes     []*StaticRoute
	Retries    int
	TimeoutDur time.Duration
	Ver        string
	Bytecode   *compiler.Bytecode
}

Work là Blueprint (Bản thiết kế) - IMMUTABLE

func NewWork

func NewWork(name string) *Work

func (*Work) Cache

func (w *Work) Cache(duration any) *Work

func (*Work) Delete

func (w *Work) Delete(args ...value.Value) *Work

func (*Work) Get

func (w *Work) Get(args ...value.Value) *Work

func (*Work) Handle

func (w *Work) Handle(fn value.Value) *Work

func (*Work) LoadFromConfig

func (w *Work) LoadFromConfig(data map[string]any)

func (*Work) Post

func (w *Work) Post(args ...value.Value) *Work

func (*Work) Put

func (w *Work) Put(args ...value.Value) *Work

func (*Work) Retry

func (w *Work) Retry(times int, _ string) *Work

func (*Work) Router

func (w *Work) Router(args ...value.Value) *Work

func (*Work) Version

func (w *Work) Version(v string) *Work

Jump to

Keyboard shortcuts

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