Create a basic addItem

This commit is contained in:
2023-09-17 16:27:40 +02:00
parent f53e4f82f4
commit 3f1b4a9a5b
6 changed files with 148 additions and 30 deletions
+9 -2
View File
@@ -29,8 +29,15 @@ func NewAria2() (*Aria2, error) {
return p, nil
}
func (x *Aria2) AddItem(item string) {
x.client.AddURI([]string{item}, nil)
func (x *Aria2) AddItem(uri string) (*models.Item, error) {
id, err := x.client.AddURI([]string{uri}, nil)
if err != nil {
return nil, err
}
item := new(models.Item)
item.Id = id.GID
// TODO: Download other datas
return item, nil
}
func (x *Aria2) List() []models.Item {
+31 -3
View File
@@ -4,8 +4,12 @@ import (
"database/sql"
"fmt"
"os"
"tide/api/models"
"github.com/golang-migrate/migrate/v4"
"github.com/golang-migrate/migrate/v4/database/postgres"
_ "github.com/golang-migrate/migrate/v4/source/file"
_ "github.com/lib/pq"
)
@@ -16,14 +20,14 @@ type Database struct {
func NewDatabase() (*Database, error) {
d := new(Database)
con := fmt.Sprintf(
"postgresql://%v:%v@%v:%v/%v",
"postgresql://%v:%v@%v:%v/%v?sslmode=disable",
os.Getenv("POSTGRES_USER"),
os.Getenv("POSTGRES_PASSWORD"),
os.Getenv("POSTGRES_SERVER"),
os.Getenv("POSTGRES_PORT"),
os.Getenv("POSTGRES_DB"),
)
db, err := sql.Open("posgres", con)
db, err := sql.Open("postgres", con)
if err != nil {
return nil, err
}
@@ -31,8 +35,32 @@ func NewDatabase() (*Database, error) {
return d, nil
}
func (db *Database) Migrate() error {
driver, err := postgres.WithInstance(db.Connection, &postgres.Config{})
if err != nil {
return err
}
m, err := migrate.NewWithDatabaseInstance(
"file:///app/migrations",
"postgres",
driver,
)
if err != nil {
return err
}
m.Up()
return nil
}
func (d *Database) AddItem(item *models.Item) (*models.Item, error) {
_, err := d.Connection.Exec("INSERT INTO items (id) VALUES (?)", item.Id)
_, err := d.Connection.Exec(
"INSERT INTO items (id, name, path, size, files) VALUES (?, ?, ?, ?, ?)",
item.Id,
item.Name,
item.Path,
item.Size,
item.Files,
)
if err != nil {
return nil, err
}