2023-03-31 02:36:20 -03:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
#
|
2023-04-05 00:50:05 -04:00
|
|
|
# API Calls - curl
|
2023-03-31 02:36:20 -03:00
|
|
|
|
|
|
|
API_URL='http://127.0.0.1:8000'
|
|
|
|
USER="$(read -p 'Username: ' && echo ${REPLY})"
|
|
|
|
printf 'Password: '
|
|
|
|
PASS="$(read -s ; echo ${REPLY})"
|
|
|
|
TOKEN=''
|
|
|
|
|
|
|
|
while :; do
|
2023-04-05 00:50:05 -04:00
|
|
|
printf '\n\nLlamadas a API en %s\n' "${API_URL}"
|
2023-03-31 02:36:20 -03:00
|
|
|
read -p 'URL ok? (Y/n/q)'
|
|
|
|
case "${REPLY}" in
|
|
|
|
[yY]|[sS]|[Ss][Ii]|[Yy][Ee][Ss]|'')
|
|
|
|
break
|
|
|
|
;;
|
|
|
|
[Nn]|[Nn][Oo])
|
|
|
|
API_URL="$(read -p 'URL: ' && echo ${REPLY})"
|
|
|
|
echo
|
|
|
|
;;
|
|
|
|
|
|
|
|
[Qq])
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
printf '\nOpción inválida [%s]\n' "${REPLY}"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
TOKEN="$(curl -sX POST -F "username=${USER}" -F "password=${PASS}" \
|
|
|
|
"${API_URL}/api-token-auth/" | jq -r .'[]')"
|
2023-04-05 00:50:05 -04:00
|
|
|
ITEM_ID="$(curl -sX GET -H "Authorization: Token ${TOKEN}" "${API_URL}/item/" |
|
2023-03-31 02:36:20 -03:00
|
|
|
jq -r '.data[-1].id')"
|
2023-04-05 00:50:05 -04:00
|
|
|
ORDER_ID="$(curl -sX GET -H "Authorization: Token ${TOKEN}" "${API_URL}/order/" |
|
2023-03-31 02:36:20 -03:00
|
|
|
jq -r '.data[-1].id')"
|
|
|
|
|
|
|
|
separator(){
|
2023-04-05 00:50:05 -04:00
|
|
|
echo && printf '┄%.0s' {1..85} && echo
|
2023-03-31 02:36:20 -03:00
|
|
|
}
|
|
|
|
|
|
|
|
api_get_token(){
|
|
|
|
separator && printf '%s\n' "${1}"
|
|
|
|
printf 'curl -X POST -F "username=%s" -F "password=%s" "%s/api-token-auth/"\n' \
|
2023-04-05 00:50:05 -04:00
|
|
|
"${USER}" "XXXXXXXX"
|
2023-03-31 02:36:20 -03:00
|
|
|
curl -sX POST -F "username=${USER}" -F "password=${PASS}" \
|
|
|
|
"${API_URL}/api-token-auth/" | jq
|
|
|
|
}
|
|
|
|
|
|
|
|
api_item_call(){
|
|
|
|
separator
|
|
|
|
printf '%s\n' "${1}"
|
|
|
|
printf 'curl -X GET -H "Authorization: Token %s"\n\t\t\b"%s/%s"\n' "${TOKEN}" \
|
|
|
|
"${API_URL}" "${2}"
|
|
|
|
curl -sX GET -H "Authorization: Token ${TOKEN}" "${API_URL}/${2}" | jq
|
|
|
|
}
|
|
|
|
|
|
|
|
api_order_call(){
|
|
|
|
separator
|
|
|
|
printf '%s\n' "${1}"
|
|
|
|
printf 'curl -X POST -H "Content-Type: application/json" \ \n'
|
|
|
|
printf ' -H "Authorization: Token %s" \ \n' "${TOKEN}"
|
|
|
|
printf ' -d "{"item": "%s", "quantity": "%s"} \ \n' "${3}" "${4}"
|
|
|
|
printf ' %s/order/\n' "${API_URL}"
|
|
|
|
curl -sX POST -H 'Content-Type: application/json' \
|
2023-04-05 00:50:05 -04:00
|
|
|
-H "Authorization: Token ${TOKEN}" \
|
|
|
|
-d "{\"item\": \"${ITEM_ID}\", \"quantity\": \"${4}\"}" \
|
|
|
|
"${API_URL}/${2}" | jq
|
2023-03-31 02:36:20 -03:00
|
|
|
}
|
|
|
|
|
|
|
|
api_getorder_call(){
|
|
|
|
separator
|
|
|
|
printf '%s\n' "${1}"
|
|
|
|
printf 'curl -X GET -H "Authorization: Token %s"\n %s/%s' \
|
|
|
|
"${TOKEN}" "${API_URL}" "${2}"
|
|
|
|
curl -sX GET -H "Authorization: Token ${TOKEN}" "${API_URL}/${2}" | jq
|
|
|
|
}
|
|
|
|
|
|
|
|
api_contact_call(){
|
|
|
|
separator
|
|
|
|
printf '%s\n' "${1}"
|
|
|
|
printf 'curl -X POST -H "Content-type: application/json" \ \n'
|
|
|
|
printf ' -d "{"name": "%s", "message": "%s", "email":"%s"}"\n' \
|
|
|
|
"${2}" "${3}" "${4}"
|
|
|
|
printf ' %s/contact/\n' "${API_URL}"
|
|
|
|
curl -sX POST -H "Content-type: application/json" \
|
|
|
|
-d "{\"name\": \"${2}\", \"message\": \"${3}\", \"email\":\"${4}\"}" \
|
|
|
|
"${API_URL}/contact/" | jq
|
|
|
|
}
|
|
|
|
|
|
|
|
api_get_token "1) Devuelve el token"
|
|
|
|
api_item_call "2) Devuelve todos los items" "item/"
|
2023-04-05 00:50:05 -04:00
|
|
|
api_item_call "3) Devuelve el primer item" "item/${ITEM_ID}/"
|
|
|
|
api_order_call "4) Realiza un pedido" "order/" "${ITEM_ID}" 1
|
2023-03-31 02:36:20 -03:00
|
|
|
api_getorder_call "5) Devuelve todas las ordenes" "order/"
|
2023-04-05 00:50:05 -04:00
|
|
|
api_getorder_call "6) Devuelve la primera orden" "order/${ORDER_ID}/"
|
2023-03-31 02:36:20 -03:00
|
|
|
api_contact_call "7) Crea un contacto" "DevFzn" "test contacto" "devfzn@mail.com"
|
|
|
|
|
|
|
|
exit 0
|