fix: rendering index page after login
This commit is contained in:
parent
942091c5d8
commit
cdd31e186a
|
@ -11,19 +11,9 @@ import (
|
||||||
"sunshine.industries/some-automoderation/sessions"
|
"sunshine.industries/some-automoderation/sessions"
|
||||||
)
|
)
|
||||||
|
|
||||||
func indexPageRoute(
|
func renderIndexPage(session sessions.SessionData, w http.ResponseWriter) {
|
||||||
templateFs *embed.FS,
|
|
||||||
sessionSM sessions.SessionManagement,
|
|
||||||
roomsM rooms.RoomManager,
|
|
||||||
) http.HandlerFunc {
|
|
||||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
||||||
var baseFile = "templates/base.gohtml"
|
var baseFile = "templates/base.gohtml"
|
||||||
var templFile = "templates/index.gohtml"
|
var templFile = "templates/index.gohtml"
|
||||||
session, found := getContextSession(r.Context())
|
|
||||||
if !found {
|
|
||||||
log.Printf("/ session not found, should be impossible")
|
|
||||||
// TODO return error i guess
|
|
||||||
}
|
|
||||||
type MainData struct {
|
type MainData struct {
|
||||||
SessionStringToken string
|
SessionStringToken string
|
||||||
SomeString string
|
SomeString string
|
||||||
|
@ -48,5 +38,20 @@ func indexPageRoute(
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("my error in executing template, huh\n %s", err)
|
log.Printf("my error in executing template, huh\n %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func indexPageRoute(
|
||||||
|
templateFs *embed.FS,
|
||||||
|
sessionSM sessions.SessionManagement,
|
||||||
|
roomsM rooms.RoomManager,
|
||||||
|
) http.HandlerFunc {
|
||||||
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
session, found := getContextSession(r.Context())
|
||||||
|
if !found {
|
||||||
|
log.Printf("/ session not found, should be impossible")
|
||||||
|
// TODO return error i guess
|
||||||
|
}
|
||||||
|
renderIndexPage(session, w)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -143,26 +143,21 @@ func createRoomHandler(templateFs *embed.FS,
|
||||||
log.Printf("what am i to do? error saving room %s", err)
|
log.Printf("what am i to do? error saving room %s", err)
|
||||||
// todo return error notice somehow
|
// todo return error notice somehow
|
||||||
}
|
}
|
||||||
newSessionId, err := sessionSM.Save(r.Context(), newRoom.Name, person.Id)
|
newSession, err := sessionSM.Save(r.Context(), newRoom.Name, person.Id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("what am i to do? error saving session %s", err)
|
log.Printf("what am i to do? error saving session %s", err)
|
||||||
// todo return error notice somehow
|
// todo return error notice somehow
|
||||||
}
|
}
|
||||||
http.SetCookie(w, &http.Cookie{
|
http.SetCookie(w, &http.Cookie{
|
||||||
Name: authCookieName,
|
Name: authCookieName,
|
||||||
Value: fmt.Sprint(newSessionId),
|
Value: fmt.Sprint(newSession.SessionId),
|
||||||
Secure: true,
|
Secure: true,
|
||||||
HttpOnly: true,
|
HttpOnly: true,
|
||||||
Path: "/",
|
Path: "/",
|
||||||
})
|
})
|
||||||
var templFile = "templates/index.gohtml"
|
|
||||||
tmpl := template.Must(template.ParseFS(templateFs, templFile))
|
|
||||||
w.Header().Add("HX-Retarget", "body")
|
w.Header().Add("HX-Retarget", "body")
|
||||||
w.Header().Add("HX-Push-Url", "/")
|
w.Header().Add("HX-Push-Url", "/")
|
||||||
err = tmpl.Execute(w, nil)
|
renderIndexPage(newSession, w)
|
||||||
if err != nil {
|
|
||||||
log.Printf("my error in executing template, huh\n %s", err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ type SessionData struct {
|
||||||
|
|
||||||
type SessionManagement interface {
|
type SessionManagement interface {
|
||||||
Get(sessionId int) SessionData
|
Get(sessionId int) SessionData
|
||||||
Save(ctx context.Context, roomName string, personId rooms.PersonId) (int, error)
|
Save(ctx context.Context, roomName string, personId rooms.PersonId) (SessionData, error)
|
||||||
Remove(ctx context.Context, sessionId int) error
|
Remove(ctx context.Context, sessionId int) error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ func (redisSM RedisSM) Get(sessionId int) SessionData {
|
||||||
log.Printf("> successfully found %d %+v", sessionId, foundSession)
|
log.Printf("> successfully found %d %+v", sessionId, foundSession)
|
||||||
return foundSession
|
return foundSession
|
||||||
}
|
}
|
||||||
func (redisSM RedisSM) Save(ctx context.Context, roomName string, personId rooms.PersonId) (int, error) {
|
func (redisSM RedisSM) Save(ctx context.Context, roomName string, personId rooms.PersonId) (SessionData, error) {
|
||||||
randId := rand.Int()
|
randId := rand.Int()
|
||||||
newSession := SessionData{
|
newSession := SessionData{
|
||||||
SessionId: randId,
|
SessionId: randId,
|
||||||
|
@ -57,9 +57,9 @@ func (redisSM RedisSM) Save(ctx context.Context, roomName string, personId rooms
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("> error! saving session %+v %s", newSession, err)
|
log.Printf("> error! saving session %+v %s", newSession, err)
|
||||||
return 0, fmt.Errorf("error saving new session: %+v with %s", newSession, err)
|
return SessionData{}, fmt.Errorf("error saving new session: %+v with %s", newSession, err)
|
||||||
}
|
}
|
||||||
return randId, nil
|
return newSession, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (redisSM RedisSM) Remove(ctx context.Context, sessionId int) error {
|
func (redisSM RedisSM) Remove(ctx context.Context, sessionId int) error {
|
||||||
|
@ -73,9 +73,9 @@ func (d DummySM) Get(sessionId int) SessionData {
|
||||||
log.Printf("get dummy session by %d", sessionId)
|
log.Printf("get dummy session by %d", sessionId)
|
||||||
return SessionData{}
|
return SessionData{}
|
||||||
}
|
}
|
||||||
func (d DummySM) Save(ctx context.Context, roomName string, personId rooms.PersonId) (int, error) {
|
func (d DummySM) Save(ctx context.Context, roomName string, personId rooms.PersonId) (SessionData, error) {
|
||||||
log.Printf("save dummy session with %s %d", roomName, personId)
|
log.Printf("save dummy session with %s %d", roomName, personId)
|
||||||
return 1, nil
|
return SessionData{}, nil
|
||||||
}
|
}
|
||||||
func (d DummySM) Remove(ctx context.Context, sessionId int) error {
|
func (d DummySM) Remove(ctx context.Context, sessionId int) error {
|
||||||
log.Printf("deleting session %d", sessionId)
|
log.Printf("deleting session %d", sessionId)
|
||||||
|
|
Loading…
Reference in New Issue