package routers import ( "git.kocoder.xyz/kocoded/vt/model" "git.kocoder.xyz/kocoded/vt/query" "git.kocoder.xyz/kocoded/vt/utils" "github.com/gofiber/fiber/v2" ) type ansprechpartnerRouter struct { utils.Application } func RegisterAnsprechpartnerRouter(group fiber.Router, appCtx utils.Application) { router := &ansprechpartnerRouter{Application: appCtx} group.Post("/new", router.createAnsprechpartner) group.Get("/all", router.getAllAnsprechpartners) group.Get("/:id", router.getAnsprechpartner) group.Get("/:id/firmen", router.getAnsprechpartnerFirmen) group.Put("/:id", router.updateAnsprechpartner) group.Delete("/:id", router.deleteAnsprechpartner) } func (r *ansprechpartnerRouter) createAnsprechpartner(c *fiber.Ctx) error { ansprechpartner := new(model.Ansprechpartner) if err := c.BodyParser(ansprechpartner); err != nil { return err } ap := query.Ansprechpartner if err := ap.Omit(ap.UpdatedAt, ap.DeletedAt).Create(ansprechpartner); err != nil { return err } return c.SendString("Hello") } func (r *ansprechpartnerRouter) getAllAnsprechpartners(c *fiber.Ctx) error { aps, err := query.Ansprechpartner.Find() if err != nil { return err } err = c.JSON(aps) if err != nil { return err } return nil } func (r *ansprechpartnerRouter) getAnsprechpartner(c *fiber.Ctx) error { id, err := c.ParamsInt("id") if err != nil { return err } ap, err := query.Ansprechpartner.Where(query.Ansprechpartner.ID.Eq(uint(id))).First() if err != nil { return err } return c.JSON(ap) } func (r *ansprechpartnerRouter) getAnsprechpartnerFirmen(c *fiber.Ctx) error { id, err := c.ParamsInt("id") if err != nil { return err } ap, err := query.Ansprechpartner.Where(query.Ansprechpartner.ID.Eq(uint(id))).First() if err != nil { return err } firmen, err := query.Ansprechpartner.Firmen.Model(ap).Find() if err != nil { return err } ap.Firmen = firmen return c.JSON(ap) } func (r *ansprechpartnerRouter) updateAnsprechpartner(c *fiber.Ctx) error { ansprechpartner := new(model.Ansprechpartner) id, err := c.ParamsInt("id") if err != nil { return err } if err = c.BodyParser(ansprechpartner); err != nil { return err } ap := query.Ansprechpartner res, err := ap.Where(ap.ID.Eq(uint(id))).Omit(ap.ID, ap.CreatedAt, ap.UpdatedAt, ap.DeletedAt).Updates(ansprechpartner) if err != nil { return err } return c.JSON(res) } func (r *ansprechpartnerRouter) deleteAnsprechpartner(c *fiber.Ctx) error { id, err := c.ParamsInt("id") if err != nil { return err } res, err := query.Ansprechpartner.Where(query.Ansprechpartner.ID.Value(uint(id))).Delete() if err != nil { return err } return c.JSON(res) }