@restorecommerce/chassis-srv
Version:
Restore Commerce microservice chassis
55 lines (54 loc) • 3.23 kB
TypeScript
import { Logger } from 'winston';
import { TraversalResponse } from './provider/arango/interface';
import { Vertices, Collection, Options as TraversalOptions, Filters as GraphFilters } from '@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/graph';
/**
* Register a database provider.
*
* @param {string} name database provider identifier
* @param {constructor} provider database provider constructor function
*/
export declare const register: (name: string, provider: any) => any;
/**
* Get a new database connection.
* @param {Object} config Database configuration.
* @param [Logger] logger
* @return {Promise} New, active and ready database connection.
*/
export declare const get: (config: any, logger?: Logger, graphName?: string, edgeConfig?: any) => Promise<DatabaseProvider>;
export interface DatabaseProvider {
insert(collectionName: string, documents: any): Promise<Array<any>>;
find(collectionName: string, filter?: any, options?: any): Promise<Array<any>>;
findByID(collectionName: string, ids: string | string[], options?: any): Promise<Array<any>>;
update(collectionName: string, documents: any): Promise<Array<any>>;
upsert(collectionName: string, documents: any): Promise<Array<any>>;
delete(collectionName: string, ids: string[]): Promise<Array<any>>;
count(collectionName: string, filter?: any): Promise<number>;
truncate(collectionName?: string): Promise<void>;
registerCustomQuery?: (name: string, script: string, type?: string) => any;
unregisterCustomQuery?: (name: string) => any;
listCustomQueries?: () => Array<any>;
deleteAnalyzer(analyzerName: string[]): Promise<any>;
dropView(viewName: string[]): Promise<any>;
}
export interface GraphDatabaseProvider extends DatabaseProvider {
createGraphDB(graphName: string, edgeDefinitions: any, options: object): any;
createVertex(collectionName: string, data: any): any;
getVertex(collectionName: string, documentHandle: string): any;
removeVertex(collectionName: string, documentHandles: string | string[]): any;
getVertexCollection(collectionName: string): any;
listVertexCollections(excludeOrphans?: boolean): any;
getAllVertexCollections(excludeOrphans?: boolean): any;
addVertexCollection(collectionName: string): any;
removeVertexCollection(collectionName: string, dropCollection?: boolean): any;
getGraphDB(): any;
createEdge(collectionName: string, data: object, fromId?: string, toId?: string): any;
getEdge(collectionName: string, documentHandle: string): any;
getAllEdgesForVertice(collectionName: string, documentHandle: string): any;
getInEdges(collectionName: string, documentHandle: string): any;
getOutEdges(collectionName: string, documentHandle: string): any;
traversal(startVertex: Vertices, collectionName: Collection, opts: TraversalOptions, filters?: GraphFilters[]): Promise<TraversalResponse>;
addEdgeDefinition(collectionName: string, fromVertice: object | [object], toVertice: object | [object]): any;
removeEdgeDefinition(definitionName: string, dropCollection?: boolean): any;
listGraphs(): any;
removeEdge(collectionName: string, documentHandle: string): any;
}