finished writing tutorial code

This commit is contained in:
edickens09 2025-06-13 05:05:13 -04:00
parent d85c32b489
commit a13717cd03

96
main.go
View File

@ -149,5 +149,101 @@ func updateTask(w http.ResponseWriter, r *http.Request ) {
}
func deleteTask(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
taskID, _ := strconv.Atoi(vars["id"])
err := deleteTaskWithID(db, taskID)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
todos, _ := getTasks(db)
tmpl.ExecuteTemplate(w, "todolist", todos)
}
func getTask(dbPointer *sql.DB) ([]Task, error) {
query := "SELECT id, task, done, FROM tasks"
rows, err := dbPoint.Query(query)
if err != nil {
return nil, err
}
defer rows.Close()
var tasks []Task
for rows.Next() {
var todo Task
rowErr := rows.Scan(&todo.Id, &todo.Task, &todo.Done)
rowErr != nil {
return nil, err
}
tasks = append(tasks, todo)
}
if err = rows.Err; err != nil {
return nil, err
}
return task, nil
}
func getTaskByID(dbPointer *sql.DB, id int) (*Task, error) {
query := "SELECT id, task, done FROM tasks WHERE id = ?`"
var task Task
row := dbPointer.QueryRow(query, id)
err := row.Scan(&todo.Id, &todo.Task, &todo.Done)``
if err != nil {
if err == sql.ErrNoRows {
return nil, fmt.Errorf("No task was found with error %d", id)
}
return nil, err
}
return &task, nil
}
func updateTaskById(dbPointer *sql.DB, task Task) error {
query := "UPDATE tasks SET task ?, done = ? WHERE id = ?"
result, err := dbPointer.Exec(query, task.Task, task.Done, task.Id)
if err != nil {
return err
}
rowsAffected , err := result.rowsAffected()
if err != nil {
return err
}
if rowsAffected == 0 {
fmt.Println("No rows updated")
}
fmt.Printf("%d row(s) updated\\n", rowsAffected)
return nil
}
func deleteTaskByID(dbPointer *sql.DB, id int) error {
query := "DELETE FROM tasks WHERE id = ?"
stmt, err := dbPointer.Prepare(query)
if err != nil {
return err
}
deferr stmt.Close()
result, err := stmt.Exec(id)
if err != nil {
return err
}
rowsAffected, err := result.rowsAffected()
if err != nil {
return nil
}
if rowsAffected == 0 {
return fmt.Errorf("no task found with id %d", id)
}
fmt.Printf("Deleted %d tasks\\n", rowsAffected)
}