Add: update tag info
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package database
|
||||
|
||||
import "errors"
|
||||
|
||||
func (database *Database) InsertTag(tag string, description string) (*Tag, error) {
|
||||
result, err := database.stmt.insertTag.Exec(tag, description)
|
||||
if err != nil {
|
||||
@@ -38,3 +40,18 @@ func (database *Database) GetTags() ([]Tag, error) {
|
||||
}
|
||||
return tags, nil
|
||||
}
|
||||
|
||||
func (database *Database) UpdateTag(tag *Tag) (*Tag, error) {
|
||||
result, err := database.stmt.updateTag.Exec(tag.Name, tag.Description, tag.ID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
rowsAffected, err := result.RowsAffected()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if rowsAffected == 0 {
|
||||
return nil, errors.New("No rows affected")
|
||||
}
|
||||
return database.GetTag(tag.ID)
|
||||
}
|
||||
|
||||
@@ -176,6 +176,8 @@ var getTagQuery = `SELECT id, name, description FROM tags WHERE id = ? LIMIT 1;`
|
||||
|
||||
var getTagsQuery = `SELECT id, name, description FROM tags;`
|
||||
|
||||
var updateTagQuery = `UPDATE tags SET name = ?, description = ? WHERE id = ?;`
|
||||
|
||||
type Stmt struct {
|
||||
initFilesTable *sql.Stmt
|
||||
initFoldersTable *sql.Stmt
|
||||
@@ -211,6 +213,7 @@ type Stmt struct {
|
||||
insertTag *sql.Stmt
|
||||
getTag *sql.Stmt
|
||||
getTags *sql.Stmt
|
||||
updateTag *sql.Stmt
|
||||
}
|
||||
|
||||
func NewPreparedStatement(sqlConn *sql.DB) (*Stmt, error) {
|
||||
@@ -485,5 +488,11 @@ func NewPreparedStatement(sqlConn *sql.DB) (*Stmt, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// init updateTag
|
||||
stmt.updateTag, err = sqlConn.Prepare(updateTagQuery)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return stmt, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user