@topgroup/diginext
Version:
A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.
56 lines • 2.17 kB
TypeScript
import type { Model, Schema } from "mongoose";
import type { IRole, IUser, IWorkspace } from "../entities";
import type { AppRequest, Ownership } from "../interfaces/SystemTypes";
import type { IQueryFilter, IQueryOptions, IQueryPagination } from "../interfaces/IQuery";
export declare const DEFAULT_PAGE_SIZE = 100;
export default class BaseService<T = any> {
readonly model: Model<T>;
/**
* Current login user
*/
user?: IUser;
/**
* Current active workspace
*/
workspace?: IWorkspace;
/**
* Current owner & workspace
*/
ownership?: Ownership;
req?: AppRequest;
constructor(schema: Schema, ownership?: Ownership);
getActiveWorkspace(user: IUser): Promise<IWorkspace>;
getActiveRole(user: IUser): Promise<IRole>;
count(filter?: IQueryFilter<T>, options?: IQueryOptions): Promise<number>;
create(data: any, options?: IQueryOptions): Promise<T>;
find(filter?: IQueryFilter<T>, options?: IQueryOptions & IQueryPagination, pagination?: IQueryPagination): Promise<T[]>;
findOne(filter?: IQueryFilter<T>, options?: IQueryOptions): Promise<T>;
/**
* Looking for unique "field" path of the documents in a collection
* @param path - Document path (field) to be groupped
*/
distinct(path: string, filter?: IQueryFilter<T>, options?: IQueryOptions & IQueryPagination, pagination?: IQueryPagination): Promise<any[]>;
update(filter: IQueryFilter<T>, data: any, options?: IQueryOptions): Promise<T[]>;
updateOne(filter: IQueryFilter<T>, data: any, options?: IQueryOptions): Promise<T>;
softDelete(filter?: IQueryFilter<T>, options?: IQueryOptions): Promise<{
ok: boolean;
affected: number;
}>;
delete(filter?: IQueryFilter<T>, options?: IQueryOptions): Promise<{
ok: boolean;
affected: number;
}>;
empty(filter?: IQueryFilter<T>): Promise<{
ok: number;
n: number;
error: string;
} | {
error: any;
acknowledged: boolean;
deletedCount: number;
ok?: undefined;
n?: undefined;
}>;
}
export { BaseService };
//# sourceMappingURL=BaseService.d.ts.map