common

package
v2.41.1 Latest Latest
Warning

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

Go to latest
Published: May 23, 2026 License: CC0-1.0 Imports: 8 Imported by: 0

Documentation

Index

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

View Source
var (
	ErrStructNotCompatible = errors.New("struct is not compatible")
	ErrIdParamIsRequired   = errors.New("parameter ID is required")
	ErrIdMustNumeric       = errors.New("ID must be defined as number")
	ErrPatch               = errors.New("error patch")
)

Functions

func GetBuffer added in v2.41.0

func GetBuffer(data []byte) *bytes.Buffer

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

func GetRequestID(ctx context.Context) string

GetRequestID retrieves the request ID from the context.

func GetRequestIDFromHeader added in v2.41.0

func GetRequestIDFromHeader(r interface{ Header() map[string][]string }) string

GetRequestIDFromHeader retrieves the request ID from the HTTP header. This avoids context.Value chain traversal entirely.

func PutBuffer added in v2.41.0

func PutBuffer(b *bytes.Buffer)

PutBuffer returns the buffer to the pool after resetting it.

func WithRequestID added in v2.41.0

func WithRequestID(ctx context.Context, requestID string) context.Context

WithRequestID stores the request ID in the context using a typed key.

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 ReadHandler interface {
	GetList(w http.ResponseWriter, r *http.Request) *response.JSON
	GetDetailById(w http.ResponseWriter, r *http.Request) *response.JSON
}

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 RepoCRUD

type RepoCRUD interface {
	ReadRepo
	WriteRepo
}

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 WriteHandler interface {
	Insert(w http.ResponseWriter, r *http.Request) *response.JSON
	Update(w http.ResponseWriter, r *http.Request) *response.JSON
	Delete(w http.ResponseWriter, r *http.Request) *response.JSON
}

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)
}

Jump to

Keyboard shortcuts

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