librapi/main.go
2025-01-03 16:18:39 +01:00

45 lines
905 B
Go

package main
import (
"context"
"librapi/server"
"librapi/services"
"os"
"os/signal"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"librapi/handlers/home"
"librapi/handlers/login"
"librapi/handlers/upload"
)
func initLogger() {
zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
log.Logger = log.With().Caller().Logger().Output(zerolog.ConsoleWriter{Out: os.Stderr})
}
func main() {
initLogger()
ctx, fnCancel := signal.NotifyContext(context.Background(), os.Kill, os.Interrupt)
defer fnCancel()
auth := services.NewAuthentication(ctx)
bs := services.NewBookStore(services.GetEnv().GetDir())
srv := server.NewServer(
ctx,
services.GetEnv().GetPort(),
server.NewHandler(home.URL, home.Handler()),
server.NewHandler(upload.URL, upload.Handler(auth, bs)),
server.NewHandler(login.URL, login.Handler(auth)),
)
srv.Serve()
<-srv.Done()
<-auth.Done()
<-bs.Done()
}