* test logging * test impl for logging * implemented "live logging", restyle templates dropdown * moved extract audio to downloadDialog, fixed labels * code refactoring * buffering logs
35 lines
719 B
Go
35 lines
719 B
Go
package rpc
|
|
|
|
import (
|
|
"log/slog"
|
|
|
|
"github.com/go-chi/chi/v5"
|
|
"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"
|
|
)
|
|
|
|
// Dependency injection container.
|
|
func Container(
|
|
db *internal.MemoryDB,
|
|
mq *internal.MessageQueue,
|
|
logger *slog.Logger,
|
|
) *Service {
|
|
return &Service{
|
|
db: db,
|
|
mq: mq,
|
|
logger: logger,
|
|
}
|
|
}
|
|
|
|
// RPC service must be registered before applying this router!
|
|
func ApplyRouter() func(chi.Router) {
|
|
return func(r chi.Router) {
|
|
if config.Instance().RequireAuth {
|
|
r.Use(middlewares.Authenticated)
|
|
}
|
|
r.Get("/ws", WebSocket)
|
|
r.Post("/http", Post)
|
|
}
|
|
}
|