Files
list_app/models/mediaModel.go
T
2026-07-30 00:30:27 +02:00

93 lines
2.1 KiB
Go

package models
import (
"database/sql"
"log"
"list_app/db"
)
type Table string
const (
Movies Table = "movies"
Series Table = "series"
Games Table = "games"
)
type Media struct {
ID int `json:"id"`
Code string `json:"code"`
Title string `json:"title"`
Released string `json:"released"`
WebImg string `json:"webImg"`
Poster string `json:"poster"`
Year string `json:"year"`
}
func Save(table Table, code, title, released, webImg, poster, year string) int64 {
sql := "INSERT INTO " + string(table) + " (code, title, released, webImg, poster, year) VALUES (?,?,?,?,?,?)"
result, err := db.Pool.Exec(sql, code, title, released, webImg, poster, year)
if err != nil {
log.Println(err)
return 0
}
changes, _ := result.RowsAffected()
return changes
}
func UpdateWebImg(table Table, code, webImg string) int64 {
sql := "UPDATE " + string(table) + " SET webImg = ? WHERE code = ?;"
result, err := db.Pool.Exec(sql, webImg, code)
if err != nil {
log.Println(err)
return 0
}
changes, _ := result.RowsAffected()
return changes
}
func FindOneAndDelete(table Table, code string) int64 {
result, err := db.Pool.Exec("DELETE FROM "+string(table)+" WHERE code = ?;", code)
if err != nil {
log.Println(err)
return 0
}
changes, _ := result.RowsAffected()
return changes
}
func FindOne(table Table, code string) []Media {
rows, err := db.Pool.Query("SELECT id, code, title, released, webImg, poster, year FROM "+string(table)+" WHERE code = ?;", code)
if err != nil {
log.Println(err)
return []Media{}
}
return scanMedia(rows)
}
func Find(table Table) []Media {
rows, err := db.Pool.Query("SELECT id, code, title, released, webImg, poster, year FROM " + string(table) + ";")
if err != nil {
log.Println(err)
return []Media{}
}
return scanMedia(rows)
}
func scanMedia(rows *sql.Rows) []Media {
defer rows.Close()
result := []Media{}
for rows.Next() {
var m Media
if err := rows.Scan(&m.ID, &m.Code, &m.Title, &m.Released, &m.WebImg, &m.Poster, &m.Year); err != nil {
log.Println(err)
continue
}
result = append(result, m)
}
return result
}