Documentation
¶
Index ¶
- Constants
- Variables
- func GetBuffer(data []byte) *bytes.Buffer
- func GetRequestID(ctx context.Context) string
- func GetRequestIDFromHeader(r interface{ ... }) string
- func PutBuffer(b *bytes.Buffer)
- func WithRequestID(ctx context.Context, requestID string) context.Context
- type CUDReturn
- type GetReturn
- type HandlerCRUD
- type ReadHandler
- type ReadRepo
- type RepoCRUD
- type UsecaseCRUD
- type WriteHandler
- type WriteRepo
Constants ¶
View Source
const ( RequestIdContextKey = "requestId" ErrInvalidTokenMessage = "invalid token" ErrInvalidTokenCode = "INVALID_TOKEN" HeaderSecret = "secret" EnvServiceSecret = "SERVICE_SECRET" EnvJWTSigningKey = "JWT_SIGNING_KEY" )
View Source
const RequestIDHeader = "X-Request-Id"
RequestIDHeader is the HTTP header used to pass the request ID.
Variables ¶
Functions ¶
func GetBuffer ¶ added in v2.41.0
GetBuffer returns a *bytes.Buffer from the pool, writes the provided data into it, and resets its state.
func GetRequestID ¶ added in v2.41.0
GetRequestID retrieves the request ID from the context.
func GetRequestIDFromHeader ¶ added in v2.41.0
GetRequestIDFromHeader retrieves the request ID from the HTTP header. This avoids context.Value chain traversal entirely.
Types ¶
type CUDReturn ¶ added in v2.41.0
type CUDReturn func(ctx context.Context) (*database.CUDResponse, error)
type GetReturn ¶ added in v2.41.0
type GetReturn func(ctx context.Context) (*database.SelectResponse, error)
type HandlerCRUD ¶
type HandlerCRUD interface {
ReadHandler
WriteHandler
}
type ReadHandler ¶
type ReadRepo ¶
type ReadRepo interface {
GetList(ctx context.Context, opts *database.QueryOpts) error
GetDetail(ctx context.Context, opts *database.QueryOpts) error
GetDetailById(ctx context.Context, resultStruct interface{}, id interface{}, optionalTableName ...string) error
Count(ctx context.Context, reqData *database.TableRequest, tableName ...string) (totalData, totalFiltered int, err error)
}
type UsecaseCRUD ¶
type UsecaseCRUD interface {
GetList(ctx context.Context, requestData interface{}) (*database.SelectResponse, error)
GetDetailById(ctx context.Context, id interface{}) (*database.SelectResponse, error)
Insert(ctx context.Context, data interface{}) (*database.CUDResponse, error)
Update(ctx context.Context, data interface{}) (*database.CUDResponse, error)
Delete(ctx context.Context, id interface{}) (*database.CUDResponse, error)
}
type WriteHandler ¶
type WriteRepo ¶
type WriteRepo interface {
Insert(ctx context.Context, data interface{}, trx ...*sqlx.Tx) (*database.CUDResponse, error)
BulkInsert(ctx context.Context, data interface{}, trx ...*sqlx.Tx) (*database.CUDResponse, error)
BulkUpdate(ctx context.Context, data interface{}, condition map[string][]interface{}, trx ...*sqlx.Tx) (*database.CUDResponse, error)
Update(ctx context.Context, data interface{}, condition map[string]interface{}, trx ...*sqlx.Tx) (*database.CUDResponse, error)
Upsert(ctx context.Context, data interface{}, condition map[string]interface{}, opts ...interface{}) (*database.CUDResponse, error)
UpdateById(ctx context.Context, data interface{}, id interface{}, trx ...*sqlx.Tx) (*database.CUDResponse, error)
Delete(ctx context.Context, condition map[string]interface{}, trx ...*sqlx.Tx) (*database.CUDResponse, error)
DeleteById(ctx context.Context, id interface{}, trx ...*sqlx.Tx) (*database.CUDResponse, error)
}
Click to show internal directories.
Click to hide internal directories.