58 lines
1.2 KiB
Go
Raw Normal View History

2025-01-19 12:04:25 +00:00
package authContext
import (
"context"
2025-01-25 19:49:57 +00:00
"github.com/1f349/lavender/auth/login-process"
2025-01-19 12:04:25 +00:00
"github.com/1f349/lavender/database"
"net/http"
)
2025-01-25 19:49:57 +00:00
func NewTemplateContext(req *http.Request, user *database.User) *BaseTemplateContext {
2025-01-19 12:04:25 +00:00
return &BaseTemplateContext{
req: req,
user: user,
}
}
type TemplateContext interface {
Context() context.Context
Request() *http.Request
User() *database.User
Render(data any)
}
2025-01-25 19:49:57 +00:00
type FormContext interface {
Context() context.Context
Request() *http.Request
User() *database.User
SetUser(user *database.User)
Render(data any)
UpdateSession(data login_process.LoginProcessData)
}
type ButtonContext interface {
Context() context.Context
Request() *http.Request
Render(data any)
}
var _ TemplateContext = &BaseTemplateContext{}
2025-01-19 12:04:25 +00:00
type BaseTemplateContext struct {
req *http.Request
user *database.User
data any
}
2025-01-25 19:49:57 +00:00
func (t *BaseTemplateContext) Context() context.Context { return t.req.Context() }
2025-01-19 12:04:25 +00:00
2025-01-25 19:49:57 +00:00
func (t *BaseTemplateContext) Request() *http.Request { return t.req }
2025-01-19 12:04:25 +00:00
2025-01-25 19:49:57 +00:00
func (t *BaseTemplateContext) User() *database.User { return t.user }
2025-01-19 12:04:25 +00:00
2025-01-25 19:49:57 +00:00
func (t *BaseTemplateContext) Render(data any) { t.data = data }
2025-01-19 12:04:25 +00:00
func (t *BaseTemplateContext) Data() any {
return t.data
}