#!/usr/bin/env bash
clear
# ====== CONFIG (edit here once) ======
DOMAIN="domain.com"
API_KEY="YOUR_API_KEY"
SECRET_API_KEY="YOUR_SECRET_API_KEY"
TTL="600"
TYPE="A"

API_BASE="https://api.porkbun.com/api/json/v3/dns"

echo "====== Porkbun DNS Manager ======"
echo "Domain: $DOMAIN"
echo ""

echo "Choose an action:"
echo "1) Update subdomain IP"
echo "2) Create new subdomain"
echo ""

read -p "Enter choice (1 or 2): " ACTION

case $ACTION in

# Update existing record
1)
    read -p "Enter subdomain to update: " SUBDOMAIN
    read -p "Enter new IP address: " IP

    echo ""
    echo "Updating ${SUBDOMAIN}.${DOMAIN} -> ${IP}"
    read -p "Proceed? (y/n): " CONFIRM
    [[ "$CONFIRM" != "y" ]] && echo "Cancelled." && exit 1

    RESPONSE=$(curl -s -X POST \
    "$API_BASE/editByNameType/${DOMAIN}/${TYPE}/${SUBDOMAIN}" \
    -H "Content-Type: application/json" \
    -d "{
        \"secretapikey\": \"${SECRET_API_KEY}\",
        \"apikey\": \"${API_KEY}\",
        \"content\": \"${IP}\",
        \"ttl\": \"${TTL}\"
    }")

    echo ""
    echo "API Response:"
    echo "$RESPONSE"
    ;;

# Create new subdomain
2)
    read -p "Enter new subdomain name: " SUBDOMAIN
    read -p "Enter IP address: " IP

    echo ""
    echo "Creating ${SUBDOMAIN}.${DOMAIN} -> ${IP}"

    RESPONSE=$(curl -s -X POST \
    "$API_BASE/create/${DOMAIN}" \
    -H "Content-Type: application/json" \
    -d "{
        \"secretapikey\": \"${SECRET_API_KEY}\",
        \"apikey\": \"${API_KEY}\",
        \"name\": \"${SUBDOMAIN}\",
        \"type\": \"${TYPE}\",
        \"content\": \"${IP}\",
        \"ttl\": \"${TTL}\"
    }")

    echo ""
    echo "API Response:"
    echo "$RESPONSE"
    ;;

*)
    echo "Invalid choice."
    exit 1
    ;;
esac
