// package router_anonym -- реализация HTTP-роутера с анонимным хранилищем package router_anonym import ( "fmt" "time" "git.p78su.freemyip.com/svi/gostore/internal/serv_http/router_anonym/anonym_put" "git.p78su.freemyip.com/svi/gostore/internal/serv_http/router_anonym/anonym_read" "git.p78su.freemyip.com/svi/gostore/pkg/types" "github.com/gofiber/fiber/v2" ) // RouterAnonym -- реализация HTTP-роутера с анонимным хранилищем type RouterAnonym struct { *anonym_put.AnonymPut *anonym_read.AnonymRead serv types.IService servHttp types.IServHttp router fiber.Router } // NewRouterAnonym -- возвращает новый HTTP-роутер с анонимным хранилищем func NewRouterAnonym(servHttp types.IServHttp) (*RouterAnonym, error) { if servHttp == nil { return nil, fmt.Errorf("NewRouterAnonym(): IServHttp==nil") } serv := servHttp.Service() sf := &RouterAnonym{ serv: serv, servHttp: servHttp, router: servHttp.FiberApp().Group("/anonym"), } sf.router.Get("/", sf.get) var err error sf.AnonymPut, err = anonym_put.NewAnonymPut(servHttp, sf.router) if err != nil { return nil, fmt.Errorf("NewRouterAnonym(): in create AnonymPut, err=\n\t%w", err) } sf.AnonymRead, err = anonym_read.NewAnonymRead(servHttp, sf.router) if err != nil { return nil, fmt.Errorf("NewRouterAnonym(): in create AnonymRead, err=\n\t%w", err) } sf.router.Post("/del", sf.del) sf.router.Post("/find", sf.find) sf.router.Post("/time", sf.postTime) sf.router.Get("/time", sf.getTime) return sf, nil } // Возвращает страницу анонимнго раздела func (sf *RouterAnonym) get(c *fiber.Ctx) error { return c.Render("anonym_put", fiber.Map{}) } // Удаляет значение из анонимного хранилища func (sf *RouterAnonym) del(c *fiber.Ctx) error { return nil } // Находит значение в анонимном хранилище func (sf *RouterAnonym) find(c *fiber.Ctx) error { return nil } // Возвращает страницу отображения времени по запросу func (sf *RouterAnonym) getTime(c *fiber.Ctx) error { return c.Render("time", fiber.Map{}) } // Возвращает время по запросу func (sf *RouterAnonym) postTime(ctx *fiber.Ctx) error { ctx.Response().Header.Add("Cache-Control", "no-cache") // Cache-Control: no-cache return ctx.SendString(time.Now().Local().Format("2006-01-02 15:04:05.000 MST -07")) }