2024-06-02 11:57:14 +00:00
|
|
|
package context
|
|
|
|
|
2024-06-02 13:08:38 +00:00
|
|
|
import (
|
|
|
|
"git.supernets.org/perp/gopay/internal/config"
|
2024-06-03 11:22:08 +00:00
|
|
|
"git.supernets.org/perp/gopay/internal/database"
|
2024-06-02 13:08:38 +00:00
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
)
|
2024-06-02 11:57:14 +00:00
|
|
|
|
|
|
|
type Context struct {
|
2024-06-02 13:08:38 +00:00
|
|
|
*gin.Context
|
2024-06-06 18:16:30 +00:00
|
|
|
Config *config.Config
|
|
|
|
Database *database.Database
|
2024-06-02 11:57:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Return a new Context
|
2024-06-06 18:16:30 +00:00
|
|
|
func New(db *database.Database, cfg *config.Config) *Context {
|
2024-06-03 11:22:08 +00:00
|
|
|
return &Context{
|
2024-06-06 18:16:30 +00:00
|
|
|
Database: db,
|
|
|
|
Config: cfg,
|
2024-06-03 11:22:08 +00:00
|
|
|
}
|
2024-06-02 13:08:38 +00:00
|
|
|
}
|
|
|
|
|
2024-06-06 18:16:30 +00:00
|
|
|
// Register a new context
|
|
|
|
func (ctx *Context) Register(handler func(ctx *Context)) func(*gin.Context) {
|
2024-06-02 21:09:04 +00:00
|
|
|
return func(gctx *gin.Context) {
|
|
|
|
context := Context{
|
2024-06-06 18:16:30 +00:00
|
|
|
Context: gctx,
|
|
|
|
Config: ctx.Config,
|
|
|
|
Database: ctx.Database,
|
2024-06-02 21:09:04 +00:00
|
|
|
}
|
|
|
|
handler(&context)
|
2024-06-02 13:08:38 +00:00
|
|
|
}
|
2024-06-02 11:57:14 +00:00
|
|
|
}
|