mongodb-dynamic-api
Version:
Auto generated CRUD API for MongoDB using NestJS
63 lines (62 loc) • 3.35 kB
TypeScript
/// <reference types="mongoose/types/aggregate" />
/// <reference types="mongoose/types/callback" />
/// <reference types="mongoose/types/collection" />
/// <reference types="mongoose/types/connection" />
/// <reference types="mongoose/types/cursor" />
/// <reference types="mongoose/types/document" />
/// <reference types="mongoose/types/error" />
/// <reference types="mongoose/types/expressions" />
/// <reference types="mongoose/types/helpers" />
/// <reference types="mongoose/types/middlewares" />
/// <reference types="mongoose/types/indexes" />
/// <reference types="mongoose/types/models" />
/// <reference types="mongoose/types/mongooseoptions" />
/// <reference types="mongoose/types/pipelinestage" />
/// <reference types="mongoose/types/populate" />
/// <reference types="mongoose/types/query" />
/// <reference types="mongoose/types/schemaoptions" />
/// <reference types="mongoose/types/schematypes" />
/// <reference types="mongoose/types/session" />
/// <reference types="mongoose/types/types" />
/// <reference types="mongoose/types/utility" />
/// <reference types="mongoose/types/validation" />
/// <reference types="mongoose/types/virtuals" />
/// <reference types="mongoose/types/inferschematype" />
import { Type } from '@nestjs/common';
import { JwtService } from '@nestjs/jwt';
import { Model } from 'mongoose';
import { DynamicApiServiceBeforeSaveCallback, DynamicApiServiceCallback } from '../../../interfaces';
import { BaseEntity } from '../../../models';
import { BaseService, BcryptService } from '../../../services';
import { DynamicApiResetPasswordOptions } from '../interfaces';
export declare abstract class BaseAuthService<Entity extends BaseEntity> extends BaseService<Entity> {
protected readonly model: Model<Entity>;
protected readonly jwtService: JwtService;
protected readonly bcryptService: BcryptService;
protected entity: Type<Entity>;
protected loginField: keyof Entity;
protected passwordField: keyof Entity;
protected additionalRequestFields: (keyof Entity)[];
protected beforeRegisterCallback: DynamicApiServiceBeforeSaveCallback<Entity>;
protected registerCallback: DynamicApiServiceCallback<Entity> | undefined;
protected beforeUpdateAccountCallback: DynamicApiServiceBeforeSaveCallback<Entity>;
protected updateAccountCallback: DynamicApiServiceCallback<Entity> | undefined;
protected loginCallback: DynamicApiServiceCallback<Entity> | undefined;
protected resetPasswordOptions: DynamicApiResetPasswordOptions<Entity> | undefined;
private resetPasswordCallbackMethods;
private readonly logger;
protected constructor(model: Model<Entity>, jwtService: JwtService, bcryptService: BcryptService);
protected validateUser(login: string, pass: string): Promise<Entity>;
protected login(user: Entity, fromMember?: boolean): Promise<{
accessToken: string;
}>;
protected register(userToCreate: Partial<Entity>): Promise<{
accessToken: string;
}>;
protected getAccount({ id }: Entity): Promise<Entity>;
protected updateAccount({ id }: Entity, update: Partial<Entity>): Promise<Entity>;
protected resetPassword(email: string): Promise<void>;
protected changePassword(resetPasswordToken: string, newPassword: string): Promise<void>;
private buildUserFields;
private checkFieldsValidity;
}