2022-09-06 20:57:41 -06:00
|
|
|
#!/bin/bash
|
|
|
|
# FILE: wgapi:back/api/dashboard/index.cgi
|
|
|
|
# DESCRIPTION: Recieves incoming dashboard API requests
|
|
|
|
# USAGE: serve
|
|
|
|
# ERRORS:
|
|
|
|
# 3: Bad usage
|
|
|
|
# 4: Missing vars vile
|
|
|
|
|
|
|
|
CONFIG_FILE='/etc/wgapi/config'
|
|
|
|
[ -f "${CONFIG_FILE}" ] || exit 4
|
|
|
|
source "${CONFIG_FILE}"
|
|
|
|
|
|
|
|
case "${REQUEST_METHOD}" in
|
|
|
|
|
|
|
|
# List peers
|
2022-09-13 10:32:32 -06:00
|
|
|
'GET') "${LIB_DIR}/peer_list" "${HTTP_X_REAL_IP}";;
|
2022-09-06 20:57:41 -06:00
|
|
|
|
|
|
|
# Add peer
|
2022-09-13 10:32:32 -06:00
|
|
|
'POST') "${LIB_DIR}/peer_add" "${HTTP_X_REAL_IP}" "${QUERY_STRING}";;
|
2022-09-06 20:57:41 -06:00
|
|
|
|
|
|
|
# Delete peer
|
2022-09-13 10:32:32 -06:00
|
|
|
'DELETE') "${LIB_DIR}/peer_del" "${HTTP_X_REAL_IP}" "${QUERY_STRING}";;
|
2022-09-06 20:57:41 -06:00
|
|
|
|
2022-09-13 11:33:13 -06:00
|
|
|
# Needed for CORS preflight
|
|
|
|
'OPTIONS') "${LIB_DIR}/http_res" 200;;
|
|
|
|
|
2022-09-06 20:57:41 -06:00
|
|
|
# Bad request
|
2022-09-08 14:39:59 -06:00
|
|
|
*) printf 'Invalid HTTP verb' | "${LIB_DIR}/http_res" 405;;
|
2022-09-06 20:57:41 -06:00
|
|
|
|
2022-09-13 10:18:34 -06:00
|
|
|
esac && exit 0
|