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 }