github.com/navikt/knorten@v0.0.0-20240419132333-1333f46ed8b6/pkg/api/user.go (about)

     1  package api
     2  
     3  import (
     4  	"net/http"
     5  
     6  	"github.com/navikt/knorten/pkg/api/middlewares"
     7  
     8  	"github.com/gin-contrib/sessions"
     9  	"github.com/gin-gonic/gin"
    10  )
    11  
    12  func (c *client) setupUserRoutes() {
    13  	c.router.GET("/oversikt", func(ctx *gin.Context) {
    14  		session := sessions.Default(ctx)
    15  
    16  		user, err := getUser(ctx)
    17  		if err != nil {
    18  			session.AddFlash(err.Error())
    19  			err := session.Save()
    20  			if err != nil {
    21  				c.log.WithError(err).Error("problem saving session")
    22  				ctx.Redirect(http.StatusSeeOther, "/")
    23  				return
    24  			}
    25  
    26  			ctx.Redirect(http.StatusSeeOther, "/")
    27  			return
    28  		}
    29  
    30  		flashes := session.Flashes()
    31  		err = session.Save()
    32  		if err != nil {
    33  			c.log.WithError(err).Error("problem saving session")
    34  			return
    35  		}
    36  
    37  		services, err := c.repo.ServicesForUser(ctx, user.Email)
    38  		ctx.HTML(http.StatusOK, "oversikt/index", gin.H{
    39  			"errors":     err,
    40  			"flashes":    flashes,
    41  			"user":       services,
    42  			"gcpProject": c.gcpProject,
    43  			"gcpZone":    c.gcpZone,
    44  			"loggedIn":   ctx.GetBool(middlewares.LoggedInKey),
    45  			"isAdmin":    ctx.GetBool(middlewares.AdminKey),
    46  		})
    47  	})
    48  }