Implement POST task (#28)
Closes #21 Reviewed-on: #28
This commit was merged in pull request #28.
This commit is contained in:
@@ -150,3 +150,35 @@ func (db *Db) DeleteGoal(userId int, goalId int) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (db *Db) CreateTask(task *CreateTaskRequest) (int, error) {
|
||||
tx, err := db.db.Begin()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
defer tx.Rollback()
|
||||
|
||||
// Insert the new task
|
||||
err = tx.Query("insert into tasks (name, reward, assigned) values (?, ?, ?)").
|
||||
Bind(task.Name, task.Reward, task.Assigned).
|
||||
Exec()
|
||||
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
// Get the last inserted ID
|
||||
var lastId int
|
||||
err = tx.Query("select last_insert_rowid()").ScanSingle(&lastId)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
// Commit the transaction
|
||||
err = tx.Commit()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return lastId, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user