package server import ( "log" "music-server/internal/backend" "net/http" "github.com/labstack/echo/v4" ) type SyncHandler struct { } func NewSyncHandler() *SyncHandler { return &SyncHandler{} } func (s *SyncHandler) SyncProgress(ctx echo.Context) error { if backend.Syncing { log.Println("Getting progress") response := backend.SyncProgress() return ctx.JSON(http.StatusOK, response) } log.Println("Getting result") response := backend.SyncResult() return ctx.JSON(http.StatusOK, response) } func (s *SyncHandler) SyncGamesNewOnlyChanges(ctx echo.Context) error { if backend.Syncing { log.Println("Syncing is in progress") return ctx.JSON(http.StatusLocked, "Syncing is in progress") } log.Println("Start syncing games") go backend.SyncGamesNewOnlyChanges() return ctx.JSON(http.StatusOK, "Start syncing games") } func (s *SyncHandler) SyncGamesNewFull(ctx echo.Context) error { if backend.Syncing { log.Println("Syncing is in progress") return ctx.JSON(http.StatusLocked, "Syncing is in progress") } log.Println("Start syncing games full") go backend.SyncGamesNewFull() return ctx.JSON(http.StatusOK, "Start syncing games full") } func (s *SyncHandler) ResetGames(ctx echo.Context) error { if backend.Syncing { log.Println("Syncing is in progress") return ctx.JSON(http.StatusLocked, "Syncing is in progress") } backend.ResetDB() return ctx.JSON(http.StatusOK, "Games and songs are deleted from the database") }