forked from phc/website
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.6 KiB
Go
67 lines
1.6 KiB
Go
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 sqliteDBFileApprovals struct{ *sqlx.DB }
|
|
|
|
func (f sqliteDBFileApprovals) Create(template database.FileApproval) (string, error) {
|
|
template.Id = util.GenerateRandomString(8)
|
|
template.CreatedAt = time.Now().Format(time.RFC3339)
|
|
|
|
if _, err := f.DB.NamedExec(`
|
|
INSERT INTO
|
|
file_approvals(id, created_at, owner_id, upload_id, status)
|
|
VALUES
|
|
(:id, :created_at, :owner_id, :upload_id, :status)
|
|
`, &template); err != nil {
|
|
return "", err
|
|
}
|
|
|
|
return template.Id, nil
|
|
}
|
|
|
|
func (f sqliteDBFileApprovals) Get(id string) (database.FileApproval, error) {
|
|
var fileApproval database.FileApproval
|
|
if err := f.DB.Get(&fileApproval, `SELECT * FROM file_approvals WHERE id = ?`, id); err != nil {
|
|
return database.FileApproval{}, err
|
|
}
|
|
|
|
return fileApproval, nil
|
|
}
|
|
|
|
func (f sqliteDBFileApprovals) All() ([]database.FileApproval, error) {
|
|
var fileApprovals []database.FileApproval
|
|
if err := f.DB.Select(&fileApprovals, `SELECT * FROM file_approvals`); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return fileApprovals, nil
|
|
}
|
|
|
|
func (f sqliteDBFileApprovals) Update(fileApproval database.FileApproval) error {
|
|
if _, err := f.DB.NamedExec(`
|
|
UPDATE
|
|
file_approvals
|
|
SET
|
|
owner_id = :owner_id,
|
|
upload_id = :upload_id,
|
|
status = :status
|
|
WHERE
|
|
id = :id
|
|
`, &fileApproval); err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (f sqliteDBFileApprovals) Delete(id string) error {
|
|
panic("not implemented") // TODO: Implement
|
|
}
|