forked from Yara724/api
Added fileMaker and fileReviewer for new flow
This commit is contained in:
63
src/users/entities/db-service/file-maker.db.service.ts
Normal file
63
src/users/entities/db-service/file-maker.db.service.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import { Injectable } from "@nestjs/common";
|
||||
import { InjectModel } from "@nestjs/mongoose";
|
||||
import { FilterQuery, Model, Types } from "mongoose";
|
||||
import { FileMakerModel } from "../schema/file-maker.schema";
|
||||
|
||||
@Injectable()
|
||||
export class FileMakerDbService {
|
||||
constructor(
|
||||
@InjectModel(FileMakerModel.name)
|
||||
private readonly fileMakerModel: Model<FileMakerModel>,
|
||||
) {}
|
||||
|
||||
async create(
|
||||
user: Partial<FileMakerModel> & { password: string },
|
||||
): Promise<FileMakerModel> {
|
||||
return await this.fileMakerModel.create(user);
|
||||
}
|
||||
|
||||
async findOne(
|
||||
filter: FilterQuery<FileMakerModel>,
|
||||
): Promise<FileMakerModel | null> {
|
||||
return await this.fileMakerModel.findOne(filter);
|
||||
}
|
||||
|
||||
async findByLoginIdentifier(
|
||||
identifier: string,
|
||||
): Promise<FileMakerModel | null> {
|
||||
const id = identifier.trim();
|
||||
const or: FilterQuery<FileMakerModel>[] = [
|
||||
{ email: id },
|
||||
{ username: id },
|
||||
];
|
||||
if (/^\d{10}$/.test(id)) {
|
||||
or.push({ nationalCode: id });
|
||||
}
|
||||
return await this.fileMakerModel.findOne({ $or: or });
|
||||
}
|
||||
|
||||
async findById(userId: string): Promise<FileMakerModel | null> {
|
||||
return await this.fileMakerModel.findOne({
|
||||
_id: new Types.ObjectId(userId),
|
||||
});
|
||||
}
|
||||
|
||||
async findOneAndUpdate(
|
||||
filter: FilterQuery<FileMakerModel>,
|
||||
update: FilterQuery<FileMakerModel>,
|
||||
) {
|
||||
return await this.fileMakerModel.findOneAndUpdate(filter, update, {
|
||||
new: true,
|
||||
});
|
||||
}
|
||||
|
||||
async findAll(
|
||||
filter: FilterQuery<FileMakerModel>,
|
||||
): Promise<(FileMakerModel & { _id: Types.ObjectId })[]> {
|
||||
return await this.fileMakerModel.find(filter).lean();
|
||||
}
|
||||
|
||||
async updateOne(filter: FilterQuery<FileMakerModel>, update: any) {
|
||||
return this.fileMakerModel.updateOne(filter, update);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user