UNPKG

mongodb-dynamic-api

Version:

Auto generated CRUD API for MongoDB using NestJS

63 lines (62 loc) 3.35 kB
/// <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; }