1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package web
- import (
- "fmt"
- "log"
- "net/http"
- "time"
- "github.com/gin-contrib/sessions"
- "github.com/gin-gonic/gin"
- "code.osinet.fr/fgm/sqs_demo/back/services/redriver"
- )
- func makeQueueHandler(rd redriver.Redriver) gin.HandlerFunc {
- return func(c *gin.Context) {
- ctx := c.Request.Context()
- qName := c.Param("name")
- sess := sessions.Default(c)
- flashes := sess.Flashes()
- sess.Clear()
- sess.AddFlash(fmt.Sprintf("Previous info acquired at: %v", time.Now()))
- sess.Save()
- qi, err := rd.GetQueueInfo(ctx, qName)
- if err != nil {
- log.Printf("failed getting info for queue %q: %v", qName, err)
- c.JSON(http.StatusInternalServerError, nil)
- return
- }
- items, err := rd.GetQueueItems(ctx, qName)
- if err != nil {
- log.Printf("failed getting items for queue %q: %v", qName, err)
- c.JSON(http.StatusInternalServerError, nil)
- return
- }
- c.HTML(http.StatusOK, "", map[string]any{
- "flashes": flashes,
- "info": qi,
- "items": items,
- })
- }
- }
|