Files
siren/scripts/insert_api_key.sh

33 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# Ensure required environment variables are set
if [[ -z "$DATABASE_HOST" || -z "$DATABASE_PORT" || -z "$DATABASE_USER" || -z "$DATABASE_PASSWORD" || -z "$DATABASE_NAME" ]]; then
echo "Error: One or more required environment variables are not set."
echo "Required variables: DATABASE_HOST, DATABASE_PORT, DATABASE_USER, DATABASE_PASSWORD, DATABASE_NAME"
exit 1
fi
# SQL query to check if the key already exists
CHECK_QUERY="SELECT COUNT(*) FROM api_keys WHERE key = '$DEFAULT_API_KEY';"
# Check if the `key` exists in the database
EXISTING_KEY_COUNT=$(PGPASSWORD="$DATABASE_PASSWORD" psql -h "$DATABASE_HOST" -p "$DATABASE_PORT" -U "$DATABASE_USER" -d "$DATABASE_NAME" -t -c "$CHECK_QUERY" | xargs)
if [[ $EXISTING_KEY_COUNT -gt 0 ]]; then
echo "The key '$DEFAULT_API_KEY' already exists in the 'api_keys' table. No action taken."
exit 0
fi
# Run the SQL query
SQL_QUERY="INSERT INTO api_keys (key, user_id, user_name, access_mask, created_at) VALUES (
'$DEFAULT_API_KEY',
$DEFAULT_SERVER,
'$DEFAULT_USER',
0,
now()
);"
# Execute the query using psql
PGPASSWORD="$DATABASE_PASSWORD" psql -h "$DATABASE_HOST" -p "$DATABASE_PORT" -U "$DATABASE_USER" -d "$DATABASE_NAME" -c "$SQL_QUERY"
echo "Insert completed successfully!"