49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
package model
|
|
|
|
import "fmt"
|
|
|
|
func (m *Model) GetItemTorrents(itemId int64) ([]*Torrent, error) {
|
|
rows, err := m.db.Queryx("SELECT * FROM torrents WHERE item_id = ?", itemId)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("couldn't query db: %v", err)
|
|
}
|
|
|
|
torrents := []*Torrent{}
|
|
for rows.Next() {
|
|
torrent := &Torrent{}
|
|
if err := rows.StructScan(&torrent); err != nil {
|
|
continue
|
|
}
|
|
torrents = append(torrents, torrent)
|
|
}
|
|
|
|
return torrents, nil
|
|
}
|
|
|
|
func (m *Model) GetTorrentById(torrentId int64) (*Torrent, error) {
|
|
torrent := new(Torrent)
|
|
|
|
row := m.db.QueryRowx("SELECT * FROM torrents WHERE id = ?", torrentId)
|
|
if err := row.StructScan(torrent); err != nil {
|
|
return torrent, fmt.Errorf("couldn't query torrent: %v", err)
|
|
}
|
|
|
|
return torrent, nil
|
|
}
|
|
|
|
func (m *Model) GetTorrentByGuidAndItemId(guid string, itemId int64) (*Torrent, error) {
|
|
torrent := new(Torrent)
|
|
|
|
row := m.db.QueryRowx("SELECT * FROM torrents WHERE guid = ? AND item_id = ?", guid, itemId)
|
|
if err := row.StructScan(torrent); err != nil {
|
|
return nil, fmt.Errorf("torrent not found: %v", err)
|
|
}
|
|
|
|
return torrent, nil
|
|
}
|
|
|
|
func (m *Model) DeleteTorrentById(torrentId int64) error {
|
|
_, err := m.db.Exec("DELETE FROM torrents WHERE id = ?", torrentId)
|
|
return err
|
|
}
|