Fixed nil logger pointer in rest endpoints

Closes #153
This commit is contained in:
2024-05-24 13:59:03 +02:00
parent e0e923822c
commit f2389a6e6a
5 changed files with 31 additions and 16 deletions

15
server/rest/common.go Normal file
View File

@@ -0,0 +1,15 @@
package rest
import (
"database/sql"
"log/slog"
"github.com/marcopeocchi/yt-dlp-web-ui/server/internal"
)
type ContainerArgs struct {
DB *sql.DB
MDB *internal.MemoryDB
MQ *internal.MessageQueue
Logger *slog.Logger
}

View File

@@ -1,24 +1,21 @@
package rest package rest
import ( import (
"database/sql"
"github.com/go-chi/chi/v5" "github.com/go-chi/chi/v5"
"github.com/marcopeocchi/yt-dlp-web-ui/server/config" "github.com/marcopeocchi/yt-dlp-web-ui/server/config"
"github.com/marcopeocchi/yt-dlp-web-ui/server/internal"
middlewares "github.com/marcopeocchi/yt-dlp-web-ui/server/middleware" middlewares "github.com/marcopeocchi/yt-dlp-web-ui/server/middleware"
) )
func Container(db *sql.DB, mdb *internal.MemoryDB, mq *internal.MessageQueue) *Handler { func Container(args *ContainerArgs) *Handler {
var ( var (
service = ProvideService(db, mdb, mq) service = ProvideService(args)
handler = ProvideHandler(service) handler = ProvideHandler(service)
) )
return handler return handler
} }
func ApplyRouter(db *sql.DB, mdb *internal.MemoryDB, mq *internal.MessageQueue) func(chi.Router) { func ApplyRouter(args *ContainerArgs) func(chi.Router) {
h := Container(db, mdb, mq) h := Container(args)
return func(r chi.Router) { return func(r chi.Router) {
if config.Instance().RequireAuth { if config.Instance().RequireAuth {

View File

@@ -22,7 +22,7 @@ func (h *Handler) Exec() http.HandlerFunc {
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
req := internal.DownloadRequest{} var req internal.DownloadRequest
if err := json.NewDecoder(r.Body).Decode(&req); err != nil { if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)

View File

@@ -1,10 +1,7 @@
package rest package rest
import ( import (
"database/sql"
"sync" "sync"
"github.com/marcopeocchi/yt-dlp-web-ui/server/internal"
) )
var ( var (
@@ -15,12 +12,13 @@ var (
handlerOnce sync.Once handlerOnce sync.Once
) )
func ProvideService(db *sql.DB, mdb *internal.MemoryDB, mq *internal.MessageQueue) *Service { func ProvideService(args *ContainerArgs) *Service {
serviceOnce.Do(func() { serviceOnce.Do(func() {
service = &Service{ service = &Service{
mdb: mdb, mdb: args.MDB,
db: db, db: args.DB,
mq: mq, mq: args.MQ,
logger: args.Logger,
} }
}) })
return service return service

View File

@@ -178,7 +178,12 @@ func newServer(c serverConfig) *http.Server {
r.Route("/rpc", ytdlpRPC.ApplyRouter()) r.Route("/rpc", ytdlpRPC.ApplyRouter())
// REST API handlers // REST API handlers
r.Route("/api/v1", rest.ApplyRouter(c.db, c.mdb, c.mq)) r.Route("/api/v1", rest.ApplyRouter(&rest.ContainerArgs{
DB: c.db,
MDB: c.mdb,
MQ: c.mq,
Logger: c.logger,
}))
// Logging // Logging
r.Route("/log", logging.ApplyRouter()) r.Route("/log", logging.ApplyRouter())