mirror of
https://github.com/Theodor-Springmann-Stiftung/musenalm.git
synced 2025-10-29 09:15:33 +00:00
request type
This commit is contained in:
@@ -10,7 +10,6 @@ import (
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/Theodor-Springmann-Stiftung/musenalm/dbmodels"
|
||||
"github.com/Theodor-Springmann-Stiftung/musenalm/helpers/functions"
|
||||
"github.com/pocketbase/pocketbase/core"
|
||||
"golang.org/x/net/websocket"
|
||||
@@ -257,7 +256,8 @@ func (e *Engine) RenderToString(request *core.RequestEvent, ld map[string]any, p
|
||||
ld = make(map[string]any)
|
||||
}
|
||||
|
||||
ld["page"] = requestData(request)
|
||||
r := NewRequest(request)
|
||||
ld["request"] = r.Data()
|
||||
|
||||
var builder strings.Builder
|
||||
err := e.Render(&builder, path, ld, layout...)
|
||||
@@ -287,7 +287,8 @@ func (e *Engine) Response404(request *core.RequestEvent, err error, data map[str
|
||||
data["Error"] = err.Error()
|
||||
}
|
||||
|
||||
data["page"] = requestData(request)
|
||||
r := NewRequest(request)
|
||||
data["request"] = r.Data()
|
||||
|
||||
err2 := e.Render(&sb, "/errors/404/", data)
|
||||
if err2 != nil {
|
||||
@@ -308,7 +309,8 @@ func (e *Engine) Response500(request *core.RequestEvent, err error, data map[str
|
||||
data["Error"] = err.Error()
|
||||
}
|
||||
|
||||
data["page"] = requestData(request)
|
||||
r := NewRequest(request)
|
||||
data["request"] = r.Data()
|
||||
|
||||
err2 := e.Render(&sb, "/errors/500/", data)
|
||||
if err != nil {
|
||||
@@ -323,7 +325,8 @@ func (e *Engine) Response200(request *core.RequestEvent, path string, ld map[str
|
||||
ld = make(map[string]any)
|
||||
}
|
||||
|
||||
ld["page"] = requestData(request)
|
||||
r := NewRequest(request)
|
||||
ld["request"] = r.Data()
|
||||
|
||||
var builder strings.Builder
|
||||
err := e.Render(&builder, path, ld, layout...)
|
||||
@@ -341,36 +344,3 @@ func (e *Engine) Response200(request *core.RequestEvent, path string, ld map[str
|
||||
|
||||
return request.HTML(http.StatusOK, tstring)
|
||||
}
|
||||
|
||||
func requestData(request *core.RequestEvent) map[string]any {
|
||||
data := make(map[string]any)
|
||||
data["Path"] = request.Request.URL.Path
|
||||
data["FullPath"] = GetRequestPathWithQuery(request.Request)
|
||||
data["Query"] = request.Request.URL.Query()
|
||||
data["Method"] = request.Request.Method
|
||||
data["Host"] = request.Request.Host
|
||||
|
||||
if user := request.Get("user"); user != nil {
|
||||
u, ok := user.(*dbmodels.FixedUser)
|
||||
if ok {
|
||||
data["User"] = u
|
||||
}
|
||||
}
|
||||
|
||||
if session := request.Get("session"); session != nil {
|
||||
u, ok := session.(*dbmodels.FixedSession)
|
||||
if ok {
|
||||
data["Session"] = u
|
||||
}
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
func GetRequestPathWithQuery(r *http.Request) string {
|
||||
path := r.URL.EscapedPath()
|
||||
if r.URL.RawQuery != "" {
|
||||
return path + "?" + r.URL.RawQuery
|
||||
}
|
||||
return path
|
||||
}
|
||||
|
||||
60
templating/request.go
Normal file
60
templating/request.go
Normal file
@@ -0,0 +1,60 @@
|
||||
package templating
|
||||
|
||||
import (
|
||||
"github.com/Theodor-Springmann-Stiftung/musenalm/dbmodels"
|
||||
"github.com/pocketbase/pocketbase/core"
|
||||
)
|
||||
|
||||
type Request struct {
|
||||
*core.RequestEvent
|
||||
}
|
||||
|
||||
func NewRequest(e *core.RequestEvent) *Request {
|
||||
return &Request{
|
||||
RequestEvent: e,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *Request) FullURL() string {
|
||||
path := r.Request.URL.EscapedPath()
|
||||
if r.Request.URL.RawQuery != "" {
|
||||
return path + "?" + r.Request.URL.RawQuery
|
||||
}
|
||||
return path
|
||||
}
|
||||
|
||||
func (r *Request) Data() map[string]any {
|
||||
data := make(map[string]any)
|
||||
data["path"] = r.Request.URL.Path
|
||||
data["query"] = r.Request.URL.RawQuery
|
||||
data["fullpath"] = r.FullURL()
|
||||
data["method"] = r.Request.Method
|
||||
data["user"] = r.User()
|
||||
data["session"] = r.Session()
|
||||
data["access_token"] = r.AccessToken()
|
||||
return data
|
||||
}
|
||||
|
||||
func (r *Request) User() *dbmodels.FixedUser {
|
||||
if user := r.Get("user"); user != nil {
|
||||
u, _ := user.(*dbmodels.FixedUser)
|
||||
return u
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *Request) Session() *dbmodels.FixedSession {
|
||||
if session := r.Get("session"); session != nil {
|
||||
s, _ := session.(*dbmodels.FixedSession)
|
||||
return s
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *Request) AccessToken() *dbmodels.FixedAccessToken {
|
||||
if token := r.Get("access_token"); token != nil {
|
||||
t, _ := token.(*dbmodels.FixedAccessToken)
|
||||
return t
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user