Files
MusicServer/internal/server/syncHandler.go
Sebastian 806e88adeb
All checks were successful
Build / build (push) Successful in 2m35s
#1 - Created request to check newest version of the app
#2 - Added request to download the newest version of the app
#3 - Added request to check progress during sync
#4 - Now blocking all request while sync is in progress
#5 - Implemented ants for thread pooling
#6 - Changed the sync request to now only start the sync
2025-08-23 11:36:03 +02:00

57 lines
1.4 KiB
Go

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")
}