router_anonym.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. // package router_anonym -- реализация HTTP-роутера с анонимным хранилищем
  2. package router_anonym
  3. import (
  4. "fmt"
  5. "time"
  6. "git.p78su.freemyip.com/svi/gostore/internal/serv_http/router_anonym/anonym_put"
  7. "git.p78su.freemyip.com/svi/gostore/internal/serv_http/router_anonym/anonym_read"
  8. "git.p78su.freemyip.com/svi/gostore/pkg/types"
  9. "github.com/gofiber/fiber/v2"
  10. )
  11. // RouterAnonym -- реализация HTTP-роутера с анонимным хранилищем
  12. type RouterAnonym struct {
  13. *anonym_put.AnonymPut
  14. *anonym_read.AnonymRead
  15. serv types.IService
  16. servHttp types.IServHttp
  17. router fiber.Router
  18. }
  19. // NewRouterAnonym -- возвращает новый HTTP-роутер с анонимным хранилищем
  20. func NewRouterAnonym(servHttp types.IServHttp) (*RouterAnonym, error) {
  21. if servHttp == nil {
  22. return nil, fmt.Errorf("NewRouterAnonym(): IServHttp==nil")
  23. }
  24. serv := servHttp.Service()
  25. sf := &RouterAnonym{
  26. serv: serv,
  27. servHttp: servHttp,
  28. router: servHttp.FiberApp().Group("/anonym"),
  29. }
  30. sf.router.Get("/", sf.get)
  31. var err error
  32. sf.AnonymPut, err = anonym_put.NewAnonymPut(servHttp, sf.router)
  33. if err != nil {
  34. return nil, fmt.Errorf("NewRouterAnonym(): in create AnonymPut, err=\n\t%w", err)
  35. }
  36. sf.AnonymRead, err = anonym_read.NewAnonymRead(servHttp, sf.router)
  37. if err != nil {
  38. return nil, fmt.Errorf("NewRouterAnonym(): in create AnonymRead, err=\n\t%w", err)
  39. }
  40. sf.router.Post("/del", sf.del)
  41. sf.router.Post("/find", sf.find)
  42. sf.router.Post("/time", sf.postTime)
  43. sf.router.Get("/time", sf.getTime)
  44. return sf, nil
  45. }
  46. // Возвращает страницу анонимнго раздела
  47. func (sf *RouterAnonym) get(c *fiber.Ctx) error {
  48. return c.Render("anonym_put", fiber.Map{})
  49. }
  50. // Удаляет значение из анонимного хранилища
  51. func (sf *RouterAnonym) del(c *fiber.Ctx) error {
  52. return nil
  53. }
  54. // Находит значение в анонимном хранилище
  55. func (sf *RouterAnonym) find(c *fiber.Ctx) error {
  56. return nil
  57. }
  58. // Возвращает страницу отображения времени по запросу
  59. func (sf *RouterAnonym) getTime(c *fiber.Ctx) error {
  60. return c.Render("time", fiber.Map{})
  61. }
  62. // Возвращает время по запросу
  63. func (sf *RouterAnonym) postTime(ctx *fiber.Ctx) error {
  64. ctx.Response().Header.Add("Cache-Control", "no-cache") // Cache-Control: no-cache
  65. return ctx.SendString(time.Now().Local().Format("2006-01-02 15:04:05.000 MST -07"))
  66. }