github.com/navikt/knorten@v0.0.0-20240419132333-1333f46ed8b6/pkg/api/usergsm.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 "github.com/navikt/knorten/pkg/database/gensql" 9 ) 10 11 func (c *client) setupSecretRoutes() { 12 c.router.POST("/secret/new", func(ctx *gin.Context) { 13 err := c.createSecret(ctx) 14 if err != nil { 15 session := sessions.Default(ctx) 16 session.AddFlash(err.Error()) 17 err := session.Save() 18 if err != nil { 19 c.log.WithError(err).Error("problem saving session") 20 } 21 } 22 23 ctx.Redirect(http.StatusSeeOther, "/oversikt") 24 }) 25 26 c.router.POST("/secret/delete", func(ctx *gin.Context) { 27 err := c.deleteSecret(ctx) 28 if err != nil { 29 session := sessions.Default(ctx) 30 session.AddFlash(err.Error()) 31 err := session.Save() 32 if err != nil { 33 c.log.WithError(err).Error("problem saving session") 34 } 35 } 36 37 ctx.Redirect(http.StatusSeeOther, "/oversikt") 38 }) 39 } 40 41 func (c *client) createSecret(ctx *gin.Context) error { 42 user, err := getUser(ctx) 43 if err != nil { 44 return err 45 } 46 47 manager := gensql.UserGoogleSecretManager{ 48 Owner: user.Email, 49 Name: getNormalizedNameFromEmail(user.Email), 50 } 51 52 return c.repo.RegisterCreateUserGSMEvent(ctx, manager.Owner, manager) 53 } 54 55 func (c *client) deleteSecret(ctx *gin.Context) error { 56 user, err := getUser(ctx) 57 if err != nil { 58 return err 59 } 60 61 return c.repo.RegisterDeleteUserGSMEvent(ctx, user.Email) 62 }