#!/bin/sh
tokendir="/etc/apitokens/"
test -d "${tokendir}" || exit 1
token="$(printenv REQUEST_URI | head -c 4096 | grep / | rev | cut -d/ -f3 | rev | tr -dc "0-9a-f")"
test -n "${token}" || exit 2
tokensymlink="${tokendir}/${token}"
test -d "${tokensymlink}" || exit 3
draftdir="${tokensymlink}/api"
test -d "${draftdir}" || mkdir -m 700 -p "${draftdir}"
test -d "${draftdir}" || exit 4
draftfile="$(printenv REQUEST_URI | head -c 4096 | grep / | rev | cut -d/ -f2 | rev | tr -dc "0-9")"
test -n "${draftfile}" || exit 5
umask 027
printenv REQUEST_URI | head -c 4096 | grep / | rev | cut -d/ -f1 | rev | tr -dc "0-9a-f" | xxd -ps -r | tee -a "${draftdir}/${draftfile}" > /dev/null || exit 1
echo "HTTP/1.1 200 Ok"
echo "Content-type: text/plain\n"
echo "ok"
exit 0
