diff --git a/internal/api/routes.go b/internal/api/routes.go index 46c875b..84141ae 100644 --- a/internal/api/routes.go +++ b/internal/api/routes.go @@ -17,12 +17,12 @@ func AppRouter(app *fiber.App) { // # userinfo app.Get("/user", middleware.AuthMiddleware, controllers.GetUserInfo) - app.Put("/update-user", middleware.AuthMiddleware, controllers.UpdateUser) app.Post("/user/update-password", middleware.AuthMiddleware, controllers.UpdatePassword) + app.Put("/update-user", middleware.AuthMiddleware, controllers.UpdateUser) // # user set pin - app.Post("/user/set-pin", middleware.AuthMiddleware, controllers.CreatePin) app.Get("/user/get-pin", middleware.AuthMiddleware, controllers.GetPin) + app.Post("/user/set-pin", middleware.AuthMiddleware, controllers.CreatePin) app.Put("/user/update-pin", middleware.AuthMiddleware, controllers.UpdatePin) // # address routing @@ -33,9 +33,9 @@ func AppRouter(app *fiber.App) { app.Delete("/address/:id", middleware.AuthMiddleware, controllers.DeleteAddress) // # article - app.Post("/articles", middleware.AuthMiddleware, controllers.CreateArticle) app.Get("/articles", middleware.AuthMiddleware, controllers.GetArticles) app.Get("/articles/:id", middleware.AuthMiddleware, controllers.GetArticleByID) + app.Post("/articles", middleware.AuthMiddleware, controllers.CreateArticle) app.Put("/articles/:id", middleware.AuthMiddleware, controllers.UpdateArticle) app.Delete("/articles/:id", middleware.AuthMiddleware, controllers.DeleteArticle) @@ -46,4 +46,6 @@ func AppRouter(app *fiber.App) { app.Post("/addtrash-categorydetail", controllers.CreateTrashDetail) app.Put("/updatetrash-category/:id", controllers.UpdateTrashCategory) app.Put("/updatetrash-detail/:id", controllers.UpdateTrashDetail) + app.Delete("/deletetrash-category/:id", controllers.DeleteTrashCategory) + app.Delete("/deletetrash-detail/:id", controllers.DeleteTrashDetail) } diff --git a/internal/controllers/trashtype.go b/internal/controllers/trashtype.go index c9f1a6d..6f98f64 100644 --- a/internal/controllers/trashtype.go +++ b/internal/controllers/trashtype.go @@ -250,4 +250,44 @@ func UpdateTrashDetail(c *fiber.Ctx) error { "Trash detail updated successfully", response, )) -} \ No newline at end of file +} + +func DeleteTrashCategory(c *fiber.Ctx) error { + id := c.Params("id") + + err := services.DeleteTrashCategory(id) + if err != nil { + + return c.Status(fiber.StatusInternalServerError).JSON(utils.FormatResponse( + fiber.StatusInternalServerError, + "Failed to delete trash category", + nil, + )) + } + + return c.Status(fiber.StatusOK).JSON(utils.FormatResponse( + fiber.StatusOK, + "Trash category deleted successfully", + nil, + )) +} + +func DeleteTrashDetail(c *fiber.Ctx) error { + id := c.Params("id") + + err := services.DeleteTrashDetail(id) + if err != nil { + + return c.Status(fiber.StatusInternalServerError).JSON(utils.FormatResponse( + fiber.StatusInternalServerError, + "Failed to delete trash detail", + nil, + )) + } + + return c.Status(fiber.StatusOK).JSON(utils.FormatResponse( + fiber.StatusOK, + "Trash detail deleted successfully", + nil, + )) +} diff --git a/internal/repositories/trashtype.go b/internal/repositories/trashtype.go index 781f48d..d57b5f6 100644 --- a/internal/repositories/trashtype.go +++ b/internal/repositories/trashtype.go @@ -57,3 +57,25 @@ func UpdateTrashDetail(detail *domain.TrashDetail) error { } return nil } + +func DeleteTrashCategory(id string) error { + + if err := config.DB.Where("category_id = ?", id).Delete(&domain.TrashDetail{}).Error; err != nil { + return err + } + + if err := config.DB.Where("id = ?", id).Delete(&domain.TrashCategory{}).Error; err != nil { + return err + } + + return nil +} + +func DeleteTrashDetail(id string) error { + + if err := config.DB.Where("id = ?", id).Delete(&domain.TrashDetail{}).Error; err != nil { + return err + } + + return nil +} diff --git a/internal/services/trashtype.go b/internal/services/trashtype.go index d3c6b90..c8b74d7 100644 --- a/internal/services/trashtype.go +++ b/internal/services/trashtype.go @@ -65,3 +65,21 @@ func UpdateTrashDetail(id, description string, price int) (domain.TrashDetail, e return detail, nil } + +func DeleteTrashCategory(id string) error { + + err := repositories.DeleteTrashCategory(id) + if err != nil { + return err + } + return nil +} + +func DeleteTrashDetail(id string) error { + + err := repositories.DeleteTrashDetail(id) + if err != nil { + return err + } + return nil +}