mirror of
https://github.com/zoriya/tide.git
synced 2026-05-29 09:01:57 +00:00
Setup postgresql
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
models "tide/api/models"
|
||||
|
||||
"github.com/siku2/arigo"
|
||||
)
|
||||
|
||||
type Service interface {
|
||||
AddItem(item string)
|
||||
List() []models.Item
|
||||
}
|
||||
|
||||
type Aria2 struct {
|
||||
client *arigo.Client
|
||||
token string
|
||||
}
|
||||
|
||||
func NewAria2() (*Aria2, error) {
|
||||
p := new(Aria2)
|
||||
p.token = os.Getenv("RPC_SECRET")
|
||||
c, err := arigo.Dial(fmt.Sprintf("ws://%v/jsonrpc", os.Getenv("ARIA_URI")), p.token)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
p.client = &c
|
||||
return p, nil
|
||||
}
|
||||
|
||||
func (x *Aria2) AddItem(item string) {
|
||||
x.client.AddURI([]string{item}, nil)
|
||||
}
|
||||
|
||||
func (x *Aria2) List() []models.Item {
|
||||
return make([]models.Item, 0)
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"os"
|
||||
"tide/api/models"
|
||||
|
||||
_ "github.com/lib/pq"
|
||||
)
|
||||
|
||||
type Database struct {
|
||||
Connection *sql.DB
|
||||
}
|
||||
|
||||
func NewDatabase() (*Database, error) {
|
||||
d := new(Database)
|
||||
con := fmt.Sprintf(
|
||||
"postgresql://%v:%v@%v:%v/%v",
|
||||
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)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
d.Connection = db
|
||||
return d, nil
|
||||
}
|
||||
|
||||
func (d *Database) AddItem(item *models.Item) (*models.Item, error) {
|
||||
_, err := d.Connection.Exec("INSERT INTO items (id) VALUES (?)", item.Id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return item, nil
|
||||
}
|
||||
Reference in New Issue
Block a user