#!/bin/bash

# Extract curl commands from logs
# Usage: ./extract_curl_from_logs.sh [request_id]

CURL_LOG_FILE="logs/curl_commands.log"
APP_LOG_FILE="logs/app.log"
REQUEST_ID=$1

if [ -z "$REQUEST_ID" ]; then
    echo "Usage: ./extract_curl_from_logs.sh <request_id>"
    echo ""
    echo "Example: ./extract_curl_from_logs.sh 550e8400-e29b-41d4-a716-446655440000"
    echo ""

    if [ -f "$CURL_LOG_FILE" ]; then
        echo "Recent request IDs from curl log:"
        grep "Request ID:" "$CURL_LOG_FILE" | tail -5 | sed 's/Request ID:/  -/g'
    else
        echo "Recent request IDs from app log:"
        grep -o '"request_id":"[^"]*"' "$APP_LOG_FILE" | tail -5 | sed 's/"request_id":"/  - /g' | sed 's/"//g'
    fi
    exit 1
fi

echo "Searching for curl command for request ID: $REQUEST_ID"
echo ""

# First try to extract from dedicated curl log file
if [ -f "$CURL_LOG_FILE" ]; then
    # Find the section with the matching request ID
    CURL_CMD=$(awk "
        /Request ID: $REQUEST_ID/ {
            found=1
            next
        }
        found && /^curl / {
            cmd=\$0
            getline
            while (\$0 !~ /^==/ && \$0 !~ /^$/) {
                cmd=cmd\" \"\$0
                getline
            }
            print cmd
            exit
        }
    " "$CURL_LOG_FILE")
fi

# Fallback to app.log if not found in curl log
if [ -z "$CURL_CMD" ]; then
    CURL_CMD=$(grep "$REQUEST_ID" "$APP_LOG_FILE" | grep "CREATE_MENU_CURL_COMMAND" | grep -o '"curl_command":"[^"]*"' | sed 's/"curl_command":"//g' | sed 's/"$//g' | sed 's/\\n/\n/g' | sed "s/\\\\'/'/g")
fi

if [ -z "$CURL_CMD" ]; then
    echo "No curl command found for request ID: $REQUEST_ID"
    echo ""
    echo "Available request IDs:"
    if [ -f "$CURL_LOG_FILE" ]; then
        grep "Request ID:" "$CURL_LOG_FILE" | tail -10 | sed 's/Request ID:/  -/g'
    else
        grep -o '"request_id":"[^"]*"' "$APP_LOG_FILE" | sort -u | tail -10 | sed 's/"request_id":"/  - /g' | sed 's/"//g'
    fi
    exit 1
fi

echo "Found curl command:"
echo "=================================================================================="
echo "$CURL_CMD"
echo "=================================================================================="
echo ""
echo "Saved to: curl_command_${REQUEST_ID}.sh"

# Save to file
echo "#!/bin/bash" > "curl_command_${REQUEST_ID}.sh"
echo "" >> "curl_command_${REQUEST_ID}.sh"
echo "# Extracted curl command for request ID: $REQUEST_ID" >> "curl_command_${REQUEST_ID}.sh"
echo "$CURL_CMD" >> "curl_command_${REQUEST_ID}.sh"

chmod +x "curl_command_${REQUEST_ID}.sh"

echo ""
echo "You can now run: ./curl_command_${REQUEST_ID}.sh"
