From 27d09e02a75e586d67c590fe3abaafa20b356511 Mon Sep 17 00:00:00 2001 From: Pavel Date: Thu, 25 Jul 2024 18:47:03 +0300 Subject: [PATCH] prepare for update method --- .../controller/tariff_internal/controller.go | 23 ++++++++++++++++++- internal/repository/tariff/tariff.go | 5 ++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/internal/controller/tariff_internal/controller.go b/internal/controller/tariff_internal/controller.go index d3329ea..f42b607 100644 --- a/internal/controller/tariff_internal/controller.go +++ b/internal/controller/tariff_internal/controller.go @@ -113,7 +113,28 @@ func (t *TariffInternal) Delete(ctx *fiber.Ctx) error { } func (t *TariffInternal) Update(ctx *fiber.Ctx) error { - return nil + var req models.Tariff + if err := ctx.BodyParser(&req); err != nil { + return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "Invalid request payload"}) + } + + id := ctx.Params("id") + objID, err := primitive.ObjectIDFromHex(id) + if err != nil { + return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "no valid object tariff id"}) + } + + result, err := t.repo.Update(ctx.Context(), objID, req) + if err != nil { + switch { + case errors.Is(err, our_errors.ErrNotFound): + return ctx.Status(fiber.StatusNotFound).JSON(fiber.Map{"error": "Tariff not found"}) + default: + return ctx.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()}) + } + } + + return ctx.Status(fiber.StatusOK).JSON(result) } func (t *TariffInternal) Restore(ctx *fiber.Ctx) error { diff --git a/internal/repository/tariff/tariff.go b/internal/repository/tariff/tariff.go index 3f9c077..116d70c 100644 --- a/internal/repository/tariff/tariff.go +++ b/internal/repository/tariff/tariff.go @@ -118,3 +118,8 @@ func (t *Tariff) SoftDelete(ctx context.Context, tariffID primitive.ObjectID) (m return tariff, nil } + +func (t *Tariff) Update(ctx context.Context, tariffID primitive.ObjectID, req models.Tariff) (models.Tariff, error) { + var tariff models.Tariff + return tariff, nil +}