directus
This commit is contained in:
@@ -1,22 +1,20 @@
|
||||
import { createDirectus, rest, authentication, readItems, readItem } from '@directus/sdk';
|
||||
import { createDirectus, rest, authentication, readItems } from '@directus/sdk';
|
||||
import { config } from './config';
|
||||
|
||||
const DIRECTUS_URL = process.env.DIRECTUS_URL || 'http://localhost:8055';
|
||||
const DIRECTUS_EMAIL = process.env.DIRECTUS_ADMIN_EMAIL;
|
||||
const DIRECTUS_PASSWORD = process.env.DIRECTUS_ADMIN_PASSWORD;
|
||||
const DIRECTUS_TOKEN = process.env.DIRECTUS_API_TOKEN;
|
||||
const { url, adminEmail, password, token, proxyPath } = config.directus;
|
||||
|
||||
const client = createDirectus(DIRECTUS_URL)
|
||||
const client = createDirectus(url)
|
||||
.with(rest())
|
||||
.with(authentication());
|
||||
|
||||
export async function ensureAuthenticated() {
|
||||
if (DIRECTUS_TOKEN) {
|
||||
client.setToken(DIRECTUS_TOKEN);
|
||||
if (token) {
|
||||
client.setToken(token);
|
||||
return;
|
||||
}
|
||||
if (DIRECTUS_EMAIL && DIRECTUS_PASSWORD) {
|
||||
if (adminEmail && password) {
|
||||
try {
|
||||
await client.login(DIRECTUS_EMAIL, DIRECTUS_PASSWORD);
|
||||
await client.login(adminEmail, password);
|
||||
} catch (e) {
|
||||
console.error("Failed to authenticate with Directus:", e);
|
||||
}
|
||||
@@ -41,7 +39,8 @@ function mapDirectusProduct(item: any, locale: string): any {
|
||||
voltageTables: translation.voltage_tables || []
|
||||
},
|
||||
locale: locale,
|
||||
data_sheet_url: item.data_sheet ? `${DIRECTUS_URL}/assets/${item.data_sheet}` : null,
|
||||
// Use proxy URL for assets to avoid CORS and handle internal/external issues
|
||||
data_sheet_url: item.data_sheet ? `${proxyPath}/assets/${item.data_sheet}` : null,
|
||||
categories: (item.categories_link || []).map((c: any) => c.categories_id?.translations?.[0]?.name).filter(Boolean)
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user