@iredium/butterfly
Version:
Express API Framework
48 lines (47 loc) • 1.68 kB
TypeScript
import { BaseModelInterface } from '../models/base_model_interface';
import { Pagination } from './pagination';
import mongoose = require('mongoose');
export declare class BaseService {
Model: mongoose.Model<any>;
populates: any;
sort: any;
populateUser: any;
keys: string[];
protected user: any;
constructor(Model: any, user?: null, populates?: null, sort?: {
created_at: number;
});
paginate({ options, query, searchKeyword, offset, limit }?: {
options?: {} | undefined;
query?: {} | undefined;
searchKeyword?: string | undefined;
offset?: number | undefined;
limit?: number | undefined;
}): Promise<Pagination>;
/**
* Get a Model by id.
* @param query mongoo query object.
* @param where mongoo query with the following format.
* where = {
* name: {
* equals: ''
* }
* }
* @returns A Promise, an exception or a value.
*
*/
find({ query, where, offset, limit, sort }?: {
query?: {} | undefined;
where?: {} | undefined;
offset?: number | undefined;
limit?: number | undefined;
sort?: string | undefined;
}): Promise<BaseModelInterface[]>;
get(index: any, field?: string, options?: {}): Promise<BaseModelInterface>;
create(data: any): Promise<BaseModelInterface>;
update(record: any, data: any): Promise<BaseModelInterface>;
delete(record: any): Promise<BaseModelInterface>;
restore(record: any): Promise<BaseModelInterface>;
protected parseInt(str: string | number, fallback: number): number;
protected filterQuery(query: any): object;
}