@ai-growth/n8n-nodes-wordpress
Version:
n8n node for WordPress integration with AI GROWTH - SEO WP plugin
126 lines (125 loc) • 4.17 kB
TypeScript
import { WordPressClient } from '../utils/WordPressClient';
import { IWordPressPost } from '../interfaces/WordPressInterfaces';
/**
* Opções para a criação/atualização de conteúdo
*/
export interface IPostUpdateOptions {
/**
* Atualizar metadados SEO do AI GROWTH - SEO WP
* Default: false
*/
updateSeoMetadata?: boolean;
/**
* Atualizar FAQs do AI GROWTH - SEO WP
* Default: false
*/
updateFaqs?: boolean;
/**
* Atualizar CTA do AI GROWTH - SEO WP
* Default: false
*/
updateCta?: boolean;
/**
* Atualizar imagem destacada
*/
updateFeaturedImage?: boolean;
}
/**
* Serviço para criação e atualização de posts e páginas no WordPress
*/
export declare class PostCreateService {
private client;
private seoService;
private faqService;
private ctaService;
private metadataService;
private featuredImageService;
private taxonomyService;
/**
* Construtor do serviço
* @param client Cliente WordPress
*/
constructor(client: WordPressClient);
/**
* Cria um novo post no WordPress
* @param post Dados do post a ser criado
* @param options Opções da operação
* @returns Post criado
*/
createPost(post: IWordPressPost, options?: IPostUpdateOptions): Promise<IWordPressPost>;
/**
* Cria uma nova página no WordPress
* @param page Dados da página a ser criada
* @param options Opções da operação
* @returns Página criada
*/
createPage(page: IWordPressPost, options?: IPostUpdateOptions): Promise<IWordPressPost>;
/**
* Atualiza um post existente no WordPress
* @param postId ID do post a ser atualizado
* @param post Dados do post
* @param options Opções da operação
* @returns Post atualizado
*/
updatePost(postId: number, post: Partial<IWordPressPost>, options?: IPostUpdateOptions): Promise<IWordPressPost>;
/**
* Atualiza uma página existente no WordPress
* @param pageId ID da página a ser atualizada
* @param page Dados da página
* @param options Opções da operação
* @returns Página atualizada
*/
updatePage(pageId: number, page: Partial<IWordPressPost>, options?: IPostUpdateOptions): Promise<IWordPressPost>;
/**
* Exclui um post do WordPress
* @param postId ID do post a ser excluído
* @param force Forçar exclusão permanente (true) ou mover para lixeira (false)
* @returns true se excluído com sucesso
*/
deletePost(postId: number, force?: boolean): Promise<boolean>;
/**
* Exclui uma página do WordPress
* @param pageId ID da página a ser excluída
* @param force Forçar exclusão permanente (true) ou mover para lixeira (false)
* @returns true se excluída com sucesso
*/
deletePage(pageId: number, force?: boolean): Promise<boolean>;
/**
* Processa os metadados SEO, FAQ e CTA
* @param postId ID do post/página
* @param post Dados do post/página
* @param options Opções da operação
* @returns void
*/
private processMetadata;
/**
* Processa a imagem destacada de um post/página
* @param postId ID do post/página
* @param post Dados do post/página
* @returns void
*/
private processFeaturedImage;
/**
* Formata um post/página para o formato esperado pela API WordPress
* @param post Dados do post
* @param type Tipo de conteúdo (post ou page)
* @returns Payload formatado para a API
*/
private formatPostForApi;
/**
* Obtém um post/página completo com metadados
* @param id ID do post/página
* @param type Tipo de conteúdo (post ou page)
* @param options Opções da operação
* @returns Post/página completo
*/
private getCompletePost;
/**
* Verifica se um post/página existe no WordPress
* @param id ID do post/página
* @param type Tipo de conteúdo (post ou page)
* @returns O post/página se existir
* @throws WordPressError se não existir
*/
private validateResourceExists;
}