All checks were successful
Build / build (push) Successful in 2m35s
#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
57 lines
1.4 KiB
Go
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")
|
|
}
|