63 lines
2.4 KiB
PHP
63 lines
2.4 KiB
PHP
<?php
|
|
require_once __DIR__ . '/config.php';
|
|
require_once __DIR__ . '/../vendor/autoload.php';
|
|
require_once __DIR__ . '/../includes/WhopApi.php';
|
|
|
|
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/../');
|
|
$dotenv->load();
|
|
|
|
$whopApiKey = getenv('WHOP_API_KEY');
|
|
$whopAppId = getenv('NEXT_PUBLIC_WHOP_APP_ID');
|
|
|
|
if (!$whopApiKey || !$whopAppId) {
|
|
die("Error: Whop API Key or App ID not set in .env file.\n");
|
|
}
|
|
|
|
$whopApi = new WhopApi($whopApiKey, $whopAppId);
|
|
|
|
|
|
try {
|
|
$pdo = db();
|
|
|
|
$pdo->exec("CREATE TABLE IF NOT EXISTS members (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(255) NOT NULL,
|
|
email VARCHAR(255) NOT NULL UNIQUE,
|
|
joined_at DATETIME NOT NULL,
|
|
status VARCHAR(50) NOT NULL DEFAULT 'active'
|
|
);");
|
|
|
|
// Fetch members from Whop API
|
|
$whopMembers = $whopApi->getMembers();
|
|
|
|
if ($whopMembers === false) {
|
|
die("Failed to fetch members from Whop API. Check error logs.\n");
|
|
}
|
|
|
|
if (isset($whopMembers['data']) && is_array($whopMembers['data'])) {
|
|
foreach ($whopMembers['data'] as $member) {
|
|
$name = $member['name'] ?? ('Member ' . $member['id']);
|
|
$email = $member['email'] ?? ($member['id'] . '@whop.local'); // Placeholder if no email
|
|
$joined_at = $member['created_at'] ?? date('Y-m-d H:i:s');
|
|
$status = $member['status'] ?? 'active';
|
|
|
|
// Check if member already exists
|
|
$stmt = $pdo->prepare("SELECT COUNT(*) FROM members WHERE email = ?");
|
|
$stmt->execute([$email]);
|
|
if ($stmt->fetchColumn() > 0) {
|
|
// Update existing member
|
|
$stmt = $pdo->prepare("UPDATE members SET name = ?, joined_at = ?, status = ? WHERE email = ?");
|
|
$stmt->execute([$name, $joined_at, $status, $email]);
|
|
} else {
|
|
// Insert new member
|
|
$stmt = $pdo->prepare("INSERT INTO members (name, email, joined_at, status) VALUES (?, ?, ?, ?)");
|
|
$stmt->execute([$name, $email, $joined_at, $status]);
|
|
}
|
|
}
|
|
echo "Members synced from Whop API.\n";
|
|
} else {
|
|
echo "No members found in Whop API response or unexpected format.\n";
|
|
}
|
|
|
|
echo "Database setup complete. `members` table created and populated.\n";
|