@@ 1,320 0,0 @@
-#!/bin/bash
-
-protocol="http"
-domain="blog.eddiebarraco.docker"
-api_prefix_url="$protocol://$domain/api"
-
-ensure_token() {
- if [ -z "$TOKEN" ]
- then
- echo "Please, hydrate TOKEN"
- echo 'export USERNAME=XXX'
- echo 'eval $('$0' token get $USERNAME) # then type your password'
- exit 1
- fi
-}
-
-send_request()
-{
- url="$1"
- method="$2"
- post_data="$3"
-
- echo $(curl -s -X "$method" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d "$post_data" "$url")
-}
-
-send_rest_get_request()
-{
- target="$1"
- id="$2"
- query_parameters="$3"
-
- url="$api_prefix_url/$target/$id"
-
- if [ ! -z "$query_parameters" ]
- then
- url="$url?$query_parameters"
- fi
-
- send_request "$url" "GET"
-}
-
-send_rest_index_request()
-{
- target="$1"
- query_parameters="$2"
-
- url="$api_prefix_url/$target"
- if [ ! -z "$query_parameters" ]
- then
- url="$url?$query_parameters"
- fi
-
- send_request "$url" "GET"
-}
-
-send_rest_post_request()
-{
- target="$1"
- post_data="$2"
-
- url="$api_prefix_url/$target"
-
- send_request "$url" "POST" "$post_data"
-}
-
-send_rest_put_request()
-{
- target="$1"
- id="$2"
- put_data="$3"
-
- url="$api_prefix_url/$target/$id"
-
- send_request "$url" "PUT" "$put_data"
-}
-
-cmd_token_get_usage() {
- echo "$0 token get user-name"
- echo " password is read from stdin"
-}
-
-cmd_token_usage() {
- cmd_token_get_usage
-}
-
-cmd_token() {
- case "$1" in
- get) shift; cmd_token_get "$@";;
- *) cmd_token_usage ;;
- esac
-}
-
-cmd_token_get() {
- username="$1"
- if [ -z "$username" ]
- then
- cmd_token_get_usage
- exit 1
- fi
-
- read -s password
-
- url="$api_prefix_url/login_check"
- post_data="{\"username\": \"$username\", \"password\": \"$password\"}"
-
- token=$(send_request "$url" "POST" "$post_data" | jq -r .token)
- echo "export TOKEN=$token"
-}
-
-cmd_tag_post_usage() {
- echo "$0 tag post tag-label"
-}
-
-cmd_tag_put_usage() {
- echo "$0 tag put tag-id tag-label"
-}
-
-cmd_tag_get_usage() {
- echo "$0 tag get tag-id"
-}
-
-cmd_tag_list_usage() {
- echo "$0 tag list"
-}
-
-cmd_tag_find_usage() {
- echo "$0 tag find label=toot"
- echo "$0 tag find \"label[]=foo&label[]=bar\""
-}
-
-cmd_tag_usage() {
- cmd_tag_list_usage
- cmd_tag_find_usage
- cmd_tag_get_usage
- cmd_tag_post_usage
- cmd_tag_put_usage
-}
-
-cmd_tag() {
- ensure_token
- case "$1" in
- post) shift; cmd_tag_post "$@";;
- put) shift; cmd_tag_put "$@";;
- get) shift; cmd_tag_get "$@";;
- list) shift; cmd_tag_list "$@";;
- find) shift; cmd_tag_find "$@";;
- *) cmd_tag_usage ;;
- esac
-}
-
-cmd_tag_list() {
- echo $(send_rest_index_request "tags") | jq .
-}
-
-cmd_tag_find() {
- search="$1"
-
- if [ -z "$search" ]
- then
- cmd_tag_find_usage
- exit 1
- fi
-
- echo $(send_rest_index_request "tags" "$search") | jq .
-}
-
-cmd_tag_get() {
- id="$1"
-
- if [ -z "$id" ]
- then
- cmd_tag_get_usage
- exit 1
- fi
-
- echo $(send_rest_get_request "tags" "$id") | jq .
-}
-
-cmd_tag_post() {
- label="$1"
-
- if [ -z "$label" ]
- then
- cmd_tag_post_usage
- exit 1
- fi
-
- post_data="{\"label\": \"$label\"}"
-
- echo $(send_rest_post_request "tags" "$post_data") | jq .
-}
-
-cmd_tag_put() {
- id="$1"
- label="$2"
-
- if [ -z "$id" ] || [ -z "$label" ]
- then
- cmd_tag_put_usage
- exit 1
- fi
-
- put_data="{\"label\": \"$label\"}"
-
- echo $(send_rest_put_request "tags" "$id" "$put_data") | jq .
-}
-
-cmd_article_post_usage() {
- echo "$0 article post article-title article-teasing article-content"
-}
-
-cmd_article_put_usage() {
- echo "$0 article put article-title"
-}
-
-cmd_article_get_usage() {
- echo "$0 article get article-id"
-}
-
-cmd_article_list_usage() {
- echo "$0 article list"
-}
-
-cmd_article_find_usage() {
- echo "$0 article find tags.label=toot"
- echo "$0 article find \"tags.label[]=foo&tags.label[]=bar\""
-}
-
-cmd_article_usage() {
- cmd_article_list_usage
- cmd_article_find_usage
- cmd_article_get_usage
- cmd_article_post_usage
- cmd_article_put_usage
-}
-
-cmd_article() {
- ensure_token
- case "$1" in
- post) shift; cmd_article_post "$@";;
- put) shift; cmd_article_put "$@";;
- get) shift; cmd_article_get "$@";;
- list) shift; cmd_article_list "$@";;
- find) shift; cmd_article_find "$@";;
- *) cmd_article_usage ;;
- esac
-}
-
-cmd_article_list() {
- echo $(send_rest_index_request "articles") | jq .
-}
-
-cmd_article_find() {
- search="$1"
-
- if [ -z "$search" ]
- then
- cmd_article_find_usage
- exit 1
- fi
-
- echo $(send_rest_index_request "articles" "$search") | jq .
-}
-
-cmd_article_get() {
- id="$1"
-
- if [ -z "$id" ]
- then
- cmd_article_get_usage
- exit 1
- fi
-
- echo $(send_rest_get_request "articles" "$id") | jq .
-}
-
-cmd_article_post() {
- title="$1"
- teasing="$2"
- content="$3"
-
- if [ -z "$title" ] || [ -z "$teasing" ] || [ -z "$content" ]
- then
- cmd_article_post_usage
- exit 1
- fi
-
- post_data="{\"title\": \"$title\", \"teasing\": \"$teasing\", \"content\": \"$content\"}"
-
- echo $(send_rest_post_request "articles" "$post_data") | jq .
-}
-
-cmd_article_put() {
- id="$1"
- title="$2"
-
- if [ -z "$id" ] || [ -z "$title" ]
- then
- cmd_article_put_usage
- exit 1
- fi
-
- put_data="{\"title\": \"$title\"}"
-
- echo $(send_rest_put_request "articles" "$id" "$put_data") | jq .
-}
-
-cmd_global_usage() {
- echo "Usage:"
- cmd_tag_usage
- cmd_article_usage
- cmd_token_usage
-}
-
-case "$1" in
- tag) shift; cmd_tag "$@";;
- article) shift; cmd_article "$@";;
- token) shift; cmd_token "$@";;
- *) cmd_global_usage ;;
-esac