1
0
forked from Yara724/api
Files
yara724-api/src/users/entities/db-service/damage-expert.db.service.ts

53 lines
1.7 KiB
TypeScript

import { Injectable } from "@nestjs/common";
import { InjectModel } from "@nestjs/mongoose";
import { FilterQuery, Model, Types } from "mongoose";
import { RegisterDto } from "src/auth/dto/actor/register.actor.dto";
import { ExpertModel } from "src/users/entities/schema/expert.schema";
import { DamageExpertModel } from "../schema/damage-expert.schema";
import { UserModel } from "../schema/user.schema";
@Injectable()
export class DamageExpertDbService {
constructor(
@InjectModel(DamageExpertModel.name)
private readonly damageExpertModel: Model<DamageExpertModel>,
) {}
async create(user: RegisterDto): Promise<DamageExpertModel> {
return await this.damageExpertModel.create(user);
}
async findOne(user: FilterQuery<ExpertModel>): Promise<DamageExpertModel> {
return await this.damageExpertModel.findOne(user);
}
async findById(userId: string): Promise<DamageExpertModel> {
return await this.damageExpertModel.findOne({
_id: new Types.ObjectId(userId),
});
}
async findOneAndUpdate(
user: FilterQuery<DamageExpertModel>,
update: FilterQuery<DamageExpertModel>,
): Promise<UserModel> {
return await this.damageExpertModel.findOneAndUpdate(user, update);
}
async findAll(
filter: FilterQuery<DamageExpertModel>,
): Promise<(DamageExpertModel & { _id: Types.ObjectId })[]> {
return await this.damageExpertModel.find(filter).lean();
}
async findAndUpdate(filter: any, update: any): Promise<DamageExpertModel> {
return this.damageExpertModel
.findOneAndUpdate(filter, update, { new: true })
.exec();
}
async updateOne(filter: any, update: any) {
return this.damageExpertModel.updateOne(filter, update);
}
}