kt-template-online-api/src/modules/wordpress/wordpress-mirror.module.ts

60 lines
1.9 KiB
TypeScript

import { Module } from '@nestjs/common';
import { WordpressArticleController } from '@/wordpress/wordpress-article.controller';
import { WordpressAuthController } from '@/wordpress/wordpress-auth.controller';
import { WordpressCategoryController } from '@/wordpress/wordpress-category.controller';
import { WordpressModule } from '@/wordpress/wordpress.module';
import { WordpressService } from '@/wordpress/wordpress.service';
import { WordpressTagController } from '@/wordpress/wordpress-tag.controller';
import { WordpressThemeController } from '@/wordpress/wordpress-theme.controller';
export const WORDPRESS_MIRROR_CONTROLLERS = [
WordpressAuthController,
WordpressArticleController,
WordpressTagController,
WordpressCategoryController,
WordpressThemeController,
];
export const WORDPRESS_MIRROR_PROVIDERS = [WordpressService];
export const WORDPRESS_MIRROR_DOMAIN_CONTRACT = {
tables: [
'wordpress_site',
'wordpress_auth_session',
'wordpress_remote_post',
'wordpress_remote_term',
'wordpress_sync_job',
'wordpress_sync_mapping',
],
remotePostMapping: {
remoteTable: 'wordpress_remote_post',
mappingTable: 'wordpress_sync_mapping',
remoteType: 'post',
localType: 'blog_post',
remoteKeys: ['site_id', 'remote_id'],
localKey: 'local_id',
},
remoteTermMapping: {
remoteTable: 'wordpress_remote_term',
mappingTable: 'wordpress_sync_mapping',
remoteType: 'term',
localType: 'blog_term',
remoteKeys: ['site_id', 'taxonomy_key', 'remote_id'],
localKey: 'local_id',
},
syncJob: {
table: 'wordpress_sync_job',
jobTypeField: 'job_type',
statusField: 'status',
startedAtField: 'started_at',
finishedAtField: 'finished_at',
summaryField: 'summary_json',
},
} as const;
@Module({
imports: [WordpressModule],
exports: [WordpressModule],
})
export class WordpressMirrorModule {}