@ai-growth/n8n-nodes-wordpress
Version:
n8n node for WordPress integration with AI GROWTH - SEO WP plugin
178 lines (177 loc) • 6.41 kB
TypeScript
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>>;
}