forked from Yara724/api
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import { Injectable } from "@nestjs/common";
|
|
import { InjectModel } from "@nestjs/mongoose";
|
|
import { FilterQuery, Model, Types } from "mongoose";
|
|
import { ClaimRequiredDocument } from "src/claim-request-management/entites/schema/claim-required-document.schema";
|
|
|
|
@Injectable()
|
|
export class ClaimRequiredDocumentDbService {
|
|
constructor(
|
|
@InjectModel(ClaimRequiredDocument.name)
|
|
private readonly model: Model<ClaimRequiredDocument>,
|
|
) {}
|
|
|
|
async create(document: Partial<ClaimRequiredDocument>): Promise<ClaimRequiredDocument> {
|
|
return await this.model.create(document);
|
|
}
|
|
|
|
async findOne(
|
|
filter: FilterQuery<ClaimRequiredDocument>,
|
|
): Promise<ClaimRequiredDocument | null> {
|
|
return await this.model.findOne(filter);
|
|
}
|
|
|
|
async findAll(
|
|
filter: FilterQuery<ClaimRequiredDocument>,
|
|
): Promise<ClaimRequiredDocument[]> {
|
|
return await this.model.find(filter);
|
|
}
|
|
|
|
async findById(id: string): Promise<ClaimRequiredDocument | null> {
|
|
return this.model.findById(id).lean();
|
|
}
|
|
|
|
async findByClaimId(claimId: string): Promise<ClaimRequiredDocument[]> {
|
|
return this.model.find({ claimId: new Types.ObjectId(claimId) });
|
|
}
|
|
|
|
async delete(id: string): Promise<void> {
|
|
await this.model.findByIdAndDelete(id);
|
|
}
|
|
}
|
|
|