infoalloggi-monorepo/apps/backend/queries/videos.go
2026-05-19 18:42:34 +02:00

65 lines
1.9 KiB
Go

package queries
import (
models "backend/gen/postgres/postgres/public/model"
. "backend/gen/postgres/postgres/public/table"
"backend/typesdefs"
"fmt"
"log"
. "github.com/go-jet/jet/v2/postgres"
)
func SetVideosToDB(pool *[]typesdefs.UploadedMedia) error {
if len(*pool) == 0 {
log.Println("No new videos to save to DB.")
return nil
}
var to_insert []models.VideosRefs
for _, data := range *pool {
to_insert = append(to_insert, models.VideosRefs{
Codice: data.Codice,
Ordine: int32(data.Order),
Video: data.MediaId,
Thumb: data.ThumbId,
OgURL: data.OGUrl,
})
}
stmt := VideosRefs.INSERT(VideosRefs.AllColumns).MODELS(to_insert).ON_CONFLICT(VideosRefs.Codice, VideosRefs.Ordine).DO_UPDATE(SET(VideosRefs.Video.SET(VideosRefs.EXCLUDED.Video), VideosRefs.Thumb.SET(VideosRefs.EXCLUDED.Thumb)))
_, err := stmt.Exec(postgres)
if err != nil {
return fmt.Errorf("failed to insert video refs: %w", err)
}
return nil
}
func GetVideosFromDB() ([]models.VideosRefs, error) {
var videos []models.VideosRefs
stmt := VideosRefs.SELECT(VideosRefs.AllColumns).FROM(VideosRefs).ORDER_BY(VideosRefs.Ordine.ASC())
err := stmt.Query(postgres, &videos)
if err != nil {
return nil, fmt.Errorf("failed to get videos: %w", err)
}
return videos, nil
}
func GetCodiceVideosFromDB(codice string) ([]models.VideosRefs, error) {
var videos []models.VideosRefs
stmt := VideosRefs.SELECT(VideosRefs.AllColumns).FROM(VideosRefs).WHERE(VideosRefs.Codice.EQ(Text(codice))).ORDER_BY(VideosRefs.Ordine.ASC())
err := stmt.Query(postgres, &videos)
if err != nil {
return nil, fmt.Errorf("failed to get videos: %w", err)
}
return videos, nil
}
func ClearVideosRefsByCodice(codice string) error {
stmt := VideosRefs.DELETE().WHERE(VideosRefs.Codice.EQ(Text(codice)))
_, err := stmt.Exec(postgres)
if err != nil {
return fmt.Errorf("failed to clear videos refs by codice: %w", err)
}
return nil
}