diff --git a/server.go b/server.go index 2f365cf..9c69319 100644 --- a/server.go +++ b/server.go @@ -16,6 +16,7 @@ import ( "github.com/gofiber/fiber/v2/middleware/logger" "github.com/h2non/bimg" "github.com/joho/godotenv" + "gorm.io/gorm" ) func main() { @@ -109,6 +110,28 @@ func main() { }) }) + app.Patch("/api/location/increment/:locationUri", func(c *fiber.Ctx) error { + uri := c.Params("locationUri") + if len(uri) == 0 { + return c.SendStatus(fiber.StatusBadRequest) + } + + var konuluKonum models.KonuluKonum + rows := db.Where("URI = ?", uri).First(&konuluKonum) + if rows.Error != nil { + return c.SendStatus(fiber.StatusNotFound) + } + + rows = db.Model(&konuluKonum).Where("uri = ?", uri).UpdateColumn("unlocked_counter", gorm.Expr("unlocked_counter + 1")) + if rows.Error != nil { + c.SendStatus(fiber.StatusInternalServerError) + } + + return c.JSON(fiber.Map{ + "counter": konuluKonum.ID, + }) + }) + app.Listen(":3000") }