Skip to content
30 changes: 14 additions & 16 deletions api/src/services/drupal.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { createRefrence } from './drupal/references.service.js';
import { createTaxonomy } from './drupal/taxonomy.service.js';
import { createVersionFile } from './drupal/version.service.js';
import { createQuery, createQueryConfig } from './drupal/query.service.js';
import { generateContentTypeSchemas } from './drupal/content-types.service.js';
import type { DbConfig, AssetsConfig } from './drupal/interface.js';

/**
* Drupal migration service with SQL-based data extraction.
Expand All @@ -16,24 +16,22 @@ import { generateContentTypeSchemas } from './drupal/content-types.service.js';
*
* IMPORTANT: Run in this order for proper dependency resolution:
* 1. createQuery - Generate dynamic queries from database analysis (MUST RUN FIRST)
* 2. generateContentTypeSchemas - Convert upload-api schema to API content types (MUST RUN AFTER upload-api)
* 3. createAssets - Extract assets first (needed by entries)
* 4. createRefrence - Create reference mappings (needed by entries)
* 5. createTaxonomy - Extract taxonomies (needed by entries for taxonomy references)
* 6. createEntry - Process entries (uses assets, references, and taxonomies)
* 7. createLocale - Create locale configurations
* 8. createVersionFile - Create version metadata file
* 2. createAssets - Extract assets first (needed by entries)
* 3. createRefrence - Create reference mappings (needed by entries)
* 4. createTaxonomy - Extract taxonomies (needed by entries for taxonomy references)
* 5. createEntry - Process entries (uses assets, references, and taxonomies)
* 6. createLocale - Create locale configurations
* 7. createVersionFile - Create version metadata file
*/
export const drupalService = {
createQuery, // Generate dynamic queries from database analysis (MUST RUN FIRST)
createQueryConfig, // Helper: Create query configuration file for dynamic SQL
generateContentTypeSchemas, // Convert upload-api schema to API content types (MUST RUN AFTER upload-api)
createAssets: (
dbConfig: any,
dbConfig: DbConfig,
destination_stack_id: string,
projectId: string,
isTest = false,
assetsConfig?: any
assetsConfig?: AssetsConfig
) => {
return createAssets(
dbConfig,
Expand All @@ -47,22 +45,22 @@ export const drupalService = {
createRefrence, // Create reference mappings for relationships (run before entries)
createTaxonomy, // Extract and process Drupal taxonomies (vocabularies and terms)
createEntry: (
dbConfig: any,
dbConfig: DbConfig,
destination_stack_id: string,
projectId: string,
isTest = false,
masterLocale = 'en-us',
contentTypeMapping: any[] = [],
project: any = null
project: Record<string, unknown> | null = null,
contentTypes: Record<string, unknown>[] = []
) => {
return createEntry(
dbConfig,
destination_stack_id,
projectId,
isTest,
masterLocale,
contentTypeMapping,
project
project,
contentTypes
);
},
createLocale, // Create locale configurations
Expand Down
Loading
Loading