package sqlite import ( "time" "git.phc.dm.unipi.it/phc/website/database" "git.phc.dm.unipi.it/phc/website/util" "github.com/jmoiron/sqlx" ) type sqliteDBDispense struct{ *sqlx.DB } var _ database.DBDispense = sqliteDBDispense{} func (d sqliteDBDispense) Create(template database.Dispensa) (string, error) { template.Id = "dispensa/" + util.GenerateRandomString(8) template.CreatedAt = time.Now().Format(time.RFC3339) if _, err := d.DB.NamedExec(` INSERT INTO dispense(id, created_at, owner_id, title, description) VALUES (:id, :created_at, :owner_id, :title, :description) `, &template); err != nil { return "", err } return template.Id, nil } func (d sqliteDBDispense) Get(id string) (database.Dispensa, error) { var dispensa database.Dispensa if err := d.DB.Get(&dispensa, `SELECT * FROM dispense WHERE id = ?`, id); err != nil { return database.Dispensa{}, err } return dispensa, nil } func (d sqliteDBDispense) All() ([]database.Dispensa, error) { var dispense []database.Dispensa if err := d.DB.Select(&dispense, `SELECT * FROM dispense`); err != nil { return nil, err } return dispense, nil } func (d sqliteDBDispense) Update(dispensa database.Dispensa) error { if _, err := d.DB.NamedExec(` UPDATE dispense SET owner_id = :owner_id title = :title, description = :description WHERE id = :id `, &dispensa); err != nil { return err } return nil } func (d sqliteDBDispense) Delete(id string) error { panic("TODO: Not implemented") }