#!/bin/bash

# API base URL
API_BASE_URL="http://localhost:8080/api/v1"

# Login credentials
USERNAME="boxuser"
PASSWORD="boxuser"

# Function to make an authenticated request
function authenticated_request() {
  local method=$1
  local endpoint=$2
  local data=$3

  # Get a new JWT token
  TOKEN=$(curl -s -X POST -H "Content-Type: application/json" \
    -d "{\"username\":\"$USERNAME\", \"password\":\"$PASSWORD\"}" \
    "$API_BASE_URL/login" | jq -r '.token')

  # Make the authenticated request
  curl -s -X $method -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d "$data" \
    "$API_BASE_URL$endpoint"
}

# Get all boxes
response=$(authenticated_request "GET" "/boxes" "")

# Check if the request was successful
if [[ $? -eq 0 ]]; then
  # Pretty print the boxes using jq
  echo "$response" | jq .
else
  echo "Error: Failed to get boxes."
fi
