github.com/nais/knorten@v0.0.0-20240104110906-55926958e361/pkg/api/user.go (about)

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