/* * Copyright (C) 2024 Jonni Liljamo * * This file is licensed under AGPL-3.0-or-later, see NOTICE and LICENSE for * more information. */ package routers import ( "net/http" "git.src.quest/~liljamo/felu/internal/api" "git.src.quest/~liljamo/felu/internal/log" "github.com/gin-gonic/gin" ) // SetupAPIRouter returns the API router. func SetupAPIRouter(version string) *gin.Engine { r := gin.New() r.Use(gin.Recovery()) var logger = gin.LoggerWithConfig(gin.LoggerConfig{ Formatter: func(param gin.LogFormatterParams) string { return log.GinFormat(param, "api") }, // NOTE: Don't log paths with query params, also update paths are used _a lot_ SkipPaths: []string{"/update/a"}, }) r.Use(logger) r.GET("/", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "status": "success", }) }) r.GET("/version", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "version": version, }) }) r.GET("/update/a", api.UpdateA()) return r }