feat: Add API

feat: Add DB-backed time provider
This commit is contained in:
2023-03-04 23:08:48 +01:00
parent 415a6c8337
commit d1f67fbdb4
12 changed files with 8839 additions and 13 deletions
+8 -3
View File
@@ -2,13 +2,14 @@ package api
import (
"errors"
"fmt"
"net/http"
"time"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/cache"
"github.com/gofiber/fiber/v2/middleware/cors"
"github.com/gofiber/fiber/v2/middleware/favicon"
"github.com/gofiber/fiber/v2/middleware/logger"
recover "github.com/gofiber/fiber/v2/middleware/recover"
"prayertimes/pkg/prayer"
@@ -40,14 +41,16 @@ func New(services Services) *fiber.App {
})
app.Use(
favicon.New(),
recover.New(recover.Config{
EnableStackTrace: true,
}),
favicon.New(),
logger.New(),
cors.New(),
)
app.Get("/diyanet/prayertimes", cache.New(), func(ctx *fiber.Ctx) error {
cacheHeader := fmt.Sprintf("max-age=%0f", (time.Hour * 24).Seconds())
app.Get("/diyanet/prayertimes", func(ctx *fiber.Ctx) error {
locationID := ctx.Query("location_id")
times, err := services.PrayerTimesProvider.Get(ctx.Context(), locationID)
@@ -55,6 +58,8 @@ func New(services Services) *fiber.App {
return err
}
ctx.Response().Header.Add(fiber.HeaderCacheControl, cacheHeader)
return ctx.JSON(times)
})