mirror of
https://github.com/zoriya/tide.git
synced 2026-08-15 18:43:19 +00:00
30 lines
570 B
Go
30 lines
570 B
Go
package controllers
|
|
|
|
import (
|
|
models "tide/api/models"
|
|
services "tide/api/services"
|
|
)
|
|
|
|
type Controller struct {
|
|
Database *services.Database
|
|
Aria2 *services.Aria2
|
|
}
|
|
|
|
func NewController(db *services.Database, aria2 *services.Aria2) *Controller {
|
|
c := new(Controller)
|
|
c.Database = db
|
|
c.Aria2 = aria2
|
|
return c
|
|
}
|
|
|
|
func (c *Controller) NewItem(newItem models.NewItem) (*models.Item, error) {
|
|
item, err := c.Aria2.AddItem(newItem.Uri)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if newItem.Path != nil {
|
|
item.Path = *newItem.Path
|
|
}
|
|
return c.Database.AddItem(item)
|
|
}
|