feat: make secure request API
This commit is contained in:
parent
a7ffe420f9
commit
ea96066f55
|
@ -7,6 +7,9 @@ import (
|
|||
)
|
||||
|
||||
func AppRouter(app *fiber.App) {
|
||||
// # API Secure
|
||||
app.Use(middleware.APIKeyMiddleware)
|
||||
|
||||
// # role
|
||||
app.Get("/listrole", controllers.GetAllUserRoles)
|
||||
app.Get("/listrole/:id", controllers.GetUserRoleByID)
|
||||
|
@ -51,7 +54,8 @@ func AppRouter(app *fiber.App) {
|
|||
|
||||
// # banner
|
||||
app.Get("/banners", controllers.GetBanners)
|
||||
app.Get("/banners/:id", controllers.GetBannerByID)
|
||||
app.Post("/addbanners", controllers.CreateBanner)
|
||||
app.Put("/updatebanners/:id", controllers.UpdateBanner)
|
||||
app.Get("/banner/:id", controllers.GetBannerByID)
|
||||
app.Post("/addbanner", controllers.CreateBanner)
|
||||
app.Put("/updatebanner/:id", controllers.UpdateBanner)
|
||||
app.Delete("/deletebanner/:id", controllers.DeleteBanner)
|
||||
}
|
||||
|
|
|
@ -176,3 +176,31 @@ func UpdateBanner(c *fiber.Ctx) error {
|
|||
},
|
||||
))
|
||||
}
|
||||
|
||||
func DeleteBanner(c *fiber.Ctx) error {
|
||||
id := c.Params("id")
|
||||
|
||||
err := services.DeleteBanner(id)
|
||||
if err != nil {
|
||||
|
||||
if err.Error() == "banner not found" {
|
||||
return c.Status(fiber.StatusNotFound).JSON(utils.FormatResponse(
|
||||
fiber.StatusNotFound,
|
||||
"Banner not found",
|
||||
nil,
|
||||
))
|
||||
}
|
||||
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(utils.FormatResponse(
|
||||
fiber.StatusInternalServerError,
|
||||
"Failed to delete banner",
|
||||
nil,
|
||||
))
|
||||
}
|
||||
|
||||
return c.Status(fiber.StatusOK).JSON(utils.FormatResponse(
|
||||
fiber.StatusOK,
|
||||
"Banner deleted successfully",
|
||||
nil,
|
||||
))
|
||||
}
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
package middleware
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/pahmiudahgede/senggoldong/utils"
|
||||
)
|
||||
|
||||
func APIKeyMiddleware(c *fiber.Ctx) error {
|
||||
|
||||
apiKey := c.Get("x-api-key")
|
||||
|
||||
expectedAPIKey := os.Getenv("API_KEY")
|
||||
|
||||
if apiKey != expectedAPIKey {
|
||||
|
||||
response := utils.FormatResponse(
|
||||
fiber.StatusUnauthorized,
|
||||
"Invalid API Key",
|
||||
nil,
|
||||
)
|
||||
|
||||
return c.Status(fiber.StatusUnauthorized).JSON(response)
|
||||
}
|
||||
|
||||
return c.Next()
|
||||
}
|
|
@ -35,4 +35,11 @@ func UpdateBanner(banner *domain.Banner) error {
|
|||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeleteBanner(id string) error {
|
||||
if err := config.DB.Where("id = ?", id).Delete(&domain.Banner{}).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
|
@ -49,3 +49,16 @@ func UpdateBanner(id, bannerName, bannerImage string) (domain.Banner, error) {
|
|||
|
||||
return banner, nil
|
||||
}
|
||||
|
||||
func DeleteBanner(id string) error {
|
||||
|
||||
_, err := repositories.GetBannerByID(id)
|
||||
if err != nil {
|
||||
return errors.New("banner not found")
|
||||
}
|
||||
|
||||
if err := repositories.DeleteBanner(id); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue