Implement POST task (#28)

Closes #21

Reviewed-on: #28
This commit was merged in pull request #28.
This commit is contained in:
2025-05-09 11:27:31 +02:00
parent 0668228139
commit ec635ba8ff
6 changed files with 282 additions and 131 deletions

View File

@@ -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
}