DEVELOPMENT ENVIRONMENT

~liljamo/emerwen-web

ref: cb21a041ada3070c6dca5418e703cfd6af0ae3b8 emerwen-web/internal/handlers/context.go -rw-r--r-- 733 bytes
cb21a041Jonni Liljamo feat: initial 4 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
 * Copyright (C) 2024 Jonni Liljamo <jonni@liljamo.com>
 *
 * This file is licensed under GPL-3.0-or-later, see NOTICE and LICENSE for
 * more information.
 */

package handlers

import (
	"context"

	"git.src.quest/~liljamo/emerwen-web/internal/consts"
	"github.com/gin-gonic/gin"
)

// BaseContext constructs a new context with values that are needed for every
// page.
func BaseContext(c *gin.Context) context.Context {
	var ctx context.Context
	if loggedIn, ok := c.Value(consts.KeyLoggedIn).(bool); ok {
		ctx = context.WithValue(c.Request.Context(), consts.KeyLoggedIn, loggedIn)
	}
	if userName, ok := c.Value(consts.KeyUserName).(string); ok {
		ctx = context.WithValue(ctx, consts.KeyUserName, userName)
	}
	return ctx
}