@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
75 lines • 3.98 kB
TypeScript
import type { DocumentsResponse, DocumentsResult } from '../schemas';
import type { EndpointConfig } from '../../../core/base-client';
type BoundExecuteRequest = <TParams, TResponse>(config: EndpointConfig<TParams, TResponse>, params?: TParams, pathParams?: Record<string, string>) => Promise<TResponse>;
/**
* Creates the documents resource methods
* OpenAPI Path: /documents → documents.*
* @description Document management and knowledge base access functionality
*/
export declare function createDocumentsResource(executeRequest: BoundExecuteRequest): {
/**
* List available documents in the AI knowledge base
*
* @fullPath api.gregorovich.documents.list
* @service gregorovich
* @domain document-management
* @dataMethod documentsData.list
* @discoverable true
* @searchTerms ["documents", "files", "knowledge", "library", "content", "resources", "papers", "manuals"]
* @relatedEndpoints ["api.gregorovich.chatGpt.ask.get", "api.joomla.content.list", "api.agrSite.content.search", "api.items.faq.list"]
* @commonPatterns ["List documents", "Browse knowledge base", "Find resources", "Document library", "Content discovery", "Knowledge management"]
* @workflow ["document-discovery", "knowledge-management", "research", "content-organization", "ai-training-data"]
* @prerequisites ["Public bearer token", "x-site-id header", "Document access permissions"]
* @nextSteps ["Select document for AI processing", "Use document content for AI questions", "Organize document library", "Analyze document metadata"]
* @businessRules ["Returns accessible documents only", "Supports document filtering", "Includes metadata and status", "Permissions-based access", "Searchable content"]
* @functionalArea "content-and-knowledge-management"
* @crossSite "Multi-site document library support"
* @caching "Cache for 15 minutes, document lists change infrequently"
* @performance "Optimize with pagination for large document sets, supports filtering and search"
*
* @returns Promise<DocumentsResponse> Complete list of available documents with metadata and organization information
*
* @example
* ```typescript
* // List all available documents
* const docsResponse = await client.documents.list();
* console.log(docsResponse.data); // Array of document objects
* console.log(docsResponse.total); // Total document count
*
* // Get just the documents array
* const documents = await client.documentsData.list();
* console.log(documents); // Direct access to document array
*
* // Process document library
* const docs = await client.documentsData.list();
* const publishedDocs = docs.filter(doc => doc.status === 'published');
* const categories = [...new Set(docs.map(doc => doc.category))];
*
* console.log(`Found ${publishedDocs.length} published documents`);
* console.log(`Available categories: ${categories.join(', ')}`);
*
* // Find specific document types
* const manuals = docs.filter(doc =>
* doc.type === 'manual' || doc.tags?.includes('manual')
* );
* const recentDocs = docs.filter(doc =>
* new Date(doc.updatedAt || 0) > new Date(Date.now() - 30 * 24 * 60 * 60 * 1000)
* );
* ```
*/
list: () => Promise<DocumentsResponse>;
};
/**
* Creates the documentsData resource methods (data-only versions)
*/
export declare function createDocumentsDataResource(documents: ReturnType<typeof createDocumentsResource>): {
/**
* List documents and return documents array data only
* @returns Promise<DocumentsResult[]> Array of document objects
*/
list: () => Promise<DocumentsResult[]>;
};
export type DocumentsResource = ReturnType<typeof createDocumentsResource>;
export type DocumentsDataResource = ReturnType<typeof createDocumentsDataResource>;
export {};
//# sourceMappingURL=documents.d.ts.map