#16 deletiion capabillity
All checks were successful
Build Docker Image / Explore-Gitea-Actions (push) Successful in 1m18s
All checks were successful
Build Docker Image / Explore-Gitea-Actions (push) Successful in 1m18s
This commit is contained in:
@@ -41,5 +41,6 @@ func getRouter(db *sql.DB) *http.ServeMux {
|
||||
var router = http.NewServeMux()
|
||||
router.HandleFunc("POST /workout", workout.NewWorkout(db))
|
||||
router.HandleFunc("GET /workout", workout.GetWorkouts(db))
|
||||
router.HandleFunc("DELETE /workout", workout.DeleteWorkout(db))
|
||||
return router
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ func GetWorkouts(db *sql.DB) http.HandlerFunc {
|
||||
token := r.Context().Value(middleware.TOKEN_KEY).(*auth.Token)
|
||||
var userId = token.UID
|
||||
|
||||
rows, err := db.Query("SELECT date, type, sets, reps FROM workout WHERE user_id = ?", userId)
|
||||
rows, err := db.Query("SELECT rowid, date, type, sets, reps FROM workout WHERE user_id = ?", userId)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
@@ -66,18 +66,20 @@ func GetWorkouts(db *sql.DB) http.HandlerFunc {
|
||||
|
||||
var workouts = make([]map[string]interface{}, 0)
|
||||
for rows.Next() {
|
||||
var id int
|
||||
var date string
|
||||
var workoutType string
|
||||
var sets int
|
||||
var reps int
|
||||
|
||||
err = rows.Scan(&date, &workoutType, &sets, &reps)
|
||||
err = rows.Scan(&id, &date, &workoutType, &sets, &reps)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
workout := map[string]interface{}{
|
||||
"id": id,
|
||||
"date": date,
|
||||
"type": workoutType,
|
||||
"sets": sets,
|
||||
@@ -89,3 +91,22 @@ func GetWorkouts(db *sql.DB) http.HandlerFunc {
|
||||
utils.WriteJSON(w, workouts)
|
||||
}
|
||||
}
|
||||
|
||||
func DeleteWorkout(db *sql.DB) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
token := r.Context().Value(middleware.TOKEN_KEY).(*auth.Token)
|
||||
var userId = token.UID
|
||||
|
||||
rowId := r.FormValue("id")
|
||||
if rowId == "" {
|
||||
http.Error(w, "Missing required fields", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
_, err := db.Exec("DELETE FROM workout WHERE user_id = ? AND rowid = ?", userId, rowId)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user