--no-align --command="${1}"
}
+insert_into() {
+ query_db "\
+ WITH new_id AS (
+ INSERT INTO ${1} (name)
+ VALUES ('${2}')
+ ON CONFLICT DO NOTHING
+ RETURNING id
+ )
+ SELECT *
+ FROM new_id
+ UNION
+ SELECT id
+ FROM ${1}
+ WHERE name='${2}'"
+}
+
echo "HTTP/1.1 200 OK"
echo "Content-Type: text/html"
echo "
case ${RECORD_TYPE} in
category)
category=$(get_query_param category)
-
- query_db "\
- INSERT INTO categories (name)
- VALUES ('${category}')"
-
- id=$(query_db "\
- SELECT id
- FROM categories
- WHERE name='${category}'")
-
+ id=$(insert_into "categories" "${category}")
echo "Recorded new category '${category}' (id=${id})."
;;
exercise)
exercise=$(get_query_param exercise)
-
- query_db "\
- INSERT INTO exercises (name)
- VALUES ('${exercise}')"
-
- id=$(query_db "\
- SELECT id
- FROM exercises
- WHERE name='${exercise}'")
-
+ id=$(insert_into "exercises" "${exercise}")
echo "Recorded new exercise '${exercise}' (id=${id})."
;;
exercise_category)
;;
gym)
gym=$(get_query_param gym)
-
- query_db "\
- INSERT INTO gyms (name)
- VALUES ('${gym}')"
-
- id=$(query_db "\
- SELECT id
- FROM gyms
- WHERE name='${gym}'")
-
+ id=$(insert_into "gyms" "${gym}")
echo "Recorded new gym '${gym}' (id=${id})."
;;
workout)