#!/bin/bash

set -e
source /usr/share/mediawiki-shell/common
source /usr/share/mediawiki-shell/wiki-config

true "$0: INFO: Logging out of $WIKI_API... Requesting CSRF token..."

rm -f "${TMPFOLDER}/logout-token.json"

curl_run \
   $curl_opts \
   --cookie "$cookie_jar" \
   --cookie-jar "$cookie_jar" \
   --header "Content-Type: application/json" \
   --header "Accept-Language: en-GB" \
   --output "${TMPFOLDER}/logout-token.json" \
   --request "POST" \
   "${WIKI_API}?action=query&meta=tokens&type=csrf&format=json"

true "$0: INFO: Token received."

csrf_token=$(cat "${TMPFOLDER}/logout-token.json" | jq --raw-output '.query.tokens.csrftoken')

curl_run \
   $curl_opts \
   --cookie "$cookie_jar" \
   --cookie-jar "$cookie_jar" \
   --header "Accept-Language: en-GB" \
   --data-urlencode "token=${csrf_token}" \
   --output "${TMPFOLDER}/logout.json" \
   --request "POST" \
   "${WIKI_API}?action=logout&format=json"

if [ $(cat "${TMPFOLDER}/logout.json") = "{}" ] ; then
   true "$0: INFO: OK, logged out."
   exit 0
fi

cat "${TMPFOLDER}/logout.json" | jq >&2
echo "$0: ERROR: Logout failed!" >&2
exit 1
