Feature: Complete Admin UI Overhaul, Content Factory Showcase Mode, and Site Management
This commit is contained in:
51
backend/scripts/ensure_test_site.ts
Normal file
51
backend/scripts/ensure_test_site.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
|
||||
import { createDirectus, rest, staticToken, authentication, login, readItems, createItem } from '@directus/sdk';
|
||||
import * as dotenv from 'dotenv';
|
||||
import * as path from 'path';
|
||||
|
||||
// Load Env
|
||||
dotenv.config({ path: path.resolve(process.cwd(), 'backend', 'credentials.env') });
|
||||
|
||||
async function ensureSite() {
|
||||
const url = process.env.DIRECTUS_PUBLIC_URL || '';
|
||||
const email = process.env.DIRECTUS_ADMIN_EMAIL || '';
|
||||
const password = process.env.DIRECTUS_ADMIN_PASSWORD || '';
|
||||
|
||||
if (!url || !email || !password) {
|
||||
console.error("Missing credentials in env");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log(`Connecting to ${url}...`);
|
||||
const client = createDirectus(url).with(authentication()).with(rest());
|
||||
|
||||
try {
|
||||
await client.login(email, password);
|
||||
console.log("Authenticated.");
|
||||
|
||||
const existing = await client.request(readItems('sites' as any, {
|
||||
filter: {
|
||||
url: { _eq: 'https://la.chrisamaya.work' }
|
||||
}
|
||||
}));
|
||||
|
||||
if (existing.length > 0) {
|
||||
console.log("✅ Site 'la.chrisamaya.work' already exists. ID:", existing[0].id);
|
||||
} else {
|
||||
console.log("Creating new site 'la.chrisamaya.work'...");
|
||||
const newSite = await client.request(createItem('sites', {
|
||||
name: 'Chris Amaya LA',
|
||||
url: 'https://la.chrisamaya.work',
|
||||
site_type: 'wordpress',
|
||||
status: 'active',
|
||||
allowed_niches: ['High-End Agency Owner', 'Real Estate Power Player']
|
||||
} as any));
|
||||
console.log("✅ Created site. ID:", newSite.id);
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
console.error("Error:", error);
|
||||
}
|
||||
}
|
||||
|
||||
ensureSite();
|
||||
Reference in New Issue
Block a user