forked from Yara724/api
53 lines
1.7 KiB
TypeScript
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);
|
|
}
|
|
}
|