UNPKG

@ai-growth/n8n-nodes-wordpress

Version:

n8n node for WordPress integration with AI GROWTH - SEO WP plugin

178 lines (177 loc) 6.41 kB
import { WordPressClient } from '../utils/WordPressClient'; import { ITaxonomyQueryOptions, ITaxonomyCreateData, IWordPressTaxonomy } from '../interfaces/WordPressInterfaces'; /** * Tipo de taxonomia */ export type TaxonomyType = 'category' | 'post_tag'; /** * Serviço para gerenciamento de taxonomias do WordPress (categorias e tags) */ export declare class TaxonomyService { private client; private taxonomyEndpoints; /** * Construtor do serviço * @param client Cliente WordPress */ constructor(client: WordPressClient); /** * Obtém o endpoint para o tipo de taxonomia * @param type Tipo de taxonomia * @returns Endpoint da taxonomia */ private getTaxonomyEndpoint; /** * Converte opções de consulta para parâmetros de requisição * @param options Opções de consulta * @returns Parâmetros da requisição */ private getQueryParams; /** * Verifica se uma taxonomia existe, considerando hierarquia * @param type Tipo de taxonomia * @param nameOrId Nome ou ID da taxonomia * @param parentId ID do pai (opcional) para categorias hierárquicas * @returns A taxonomia encontrada ou null */ checkExists(type: TaxonomyType, nameOrId: string | number, parentId?: number): Promise<IWordPressTaxonomy | null>; /** * Obtém uma categoria por ID ou nome * @param idOrName ID ou nome da categoria * @returns Categoria encontrada ou null */ getCategory(idOrName: number | string): Promise<IWordPressTaxonomy | null>; /** * Obtém uma tag por ID ou nome * @param idOrName ID ou nome da tag * @returns Tag encontrada ou null */ getTag(idOrName: number | string): Promise<IWordPressTaxonomy | null>; /** * Obtém categorias com base em opções de filtro * @param options Opções de consulta * @returns Lista de categorias */ getCategories(options?: ITaxonomyQueryOptions): Promise<IWordPressTaxonomy[]>; /** * Obtém tags com base em opções de filtro * @param options Opções de consulta * @returns Lista de tags */ getTags(options?: ITaxonomyQueryOptions): Promise<IWordPressTaxonomy[]>; /** * Obtém hierarquia de categorias * @param options Opções de consulta * @returns Lista de categorias com hierarquia */ getCategoryHierarchy(options?: ITaxonomyQueryOptions): Promise<IWordPressTaxonomy[]>; /** * Cria uma categoria * @param data Dados da categoria * @returns Categoria criada */ createCategory(data: ITaxonomyCreateData): Promise<IWordPressTaxonomy>; /** * Cria uma tag * @param data Dados da tag * @returns Tag criada */ createTag(data: ITaxonomyCreateData): Promise<IWordPressTaxonomy>; /** * Atualiza uma categoria * @param id ID da categoria * @param data Dados atualizados * @returns Categoria atualizada */ updateCategory(id: number, data: Partial<ITaxonomyCreateData>): Promise<IWordPressTaxonomy>; /** * Atualiza uma tag * @param id ID da tag * @param data Dados atualizados * @returns Tag atualizada */ updateTag(id: number, data: Partial<ITaxonomyCreateData>): Promise<IWordPressTaxonomy>; /** * Exclui uma categoria * @param id ID da categoria * @returns true se excluída com sucesso */ deleteCategory(id: number): Promise<boolean>; /** * Exclui uma tag * @param id ID da tag * @returns true se excluída com sucesso */ deleteTag(id: number): Promise<boolean>; /** * Garante que uma categoria existe (cria se não existir) * @param name Nome da categoria * @param parent ID da categoria pai (opcional) * @returns Categoria existente ou nova */ ensureCategory(name: string, parent?: number): Promise<IWordPressTaxonomy>; /** * Garante que uma tag existe (cria se não existir) * @param name Nome da tag * @returns Tag existente ou nova */ ensureTag(name: string): Promise<IWordPressTaxonomy>; /** * Garante que múltiplas categorias existam * @param names Nomes das categorias * @returns Categorias existentes ou novas */ ensureCategories(names: string[]): Promise<IWordPressTaxonomy[]>; /** * Garante que múltiplas tags existam * @param names Nomes das tags * @returns Tags existentes ou novas */ ensureTags(names: string[]): Promise<IWordPressTaxonomy[]>; /** * Gera um slug a partir do nome da taxonomia * @param name Nome da taxonomia * @returns Slug gerado */ generateSlug(name: string): string; /** * Associa categorias e tags a um post * @param postId ID do post * @param categories Nomes ou slugs das categorias * @param tags Nomes ou slugs das tags * @returns Post atualizado */ associateTaxonomiesWithPost(postId: number, categories?: (string | number)[], tags?: (string | number)[]): Promise<any>; /** * Associa categorias e tags a uma página * @param pageId ID da página * @param categories Nomes ou slugs das categorias * @param tags Nomes ou slugs das tags * @returns Página atualizada */ associateTaxonomiesWithPage(pageId: number, categories?: (string | number)[], tags?: (string | number)[]): Promise<any>; /** * Obtém subcategorias de uma categoria específica * @param parentId ID da categoria pai * @param options Opções de consulta * @returns Lista de subcategorias */ getSubcategories(parentId: number, options?: ITaxonomyQueryOptions): Promise<IWordPressTaxonomy[]>; /** * Obtém o caminho completo da hierarquia de uma categoria * @param categoryId ID da categoria * @returns Lista de categorias do topo até a categoria especificada */ getCategoryPath(categoryId: number): Promise<IWordPressTaxonomy[]>; /** * Obtém todas as categorias e organiza em uma estrutura hierárquica de árvore * @param options Opções de consulta * @returns Árvore de categorias */ getCategoryTree(options?: ITaxonomyQueryOptions): Promise<Record<string, any>>; /** * Obtém estatísticas sobre taxonomias * @returns Estatísticas de taxonomias */ getTaxonomyStats(): Promise<Record<string, any>>; }