src/attachments/attachments.service.ts
Methods |
|
constructor(attachmentModel: Model<Attachment>, request: Request)
|
|||||||||
|
Defined in src/attachments/attachments.service.ts:13
|
|||||||||
|
Parameters :
|
| Async create | ||||||
create(createAttachmentDto: CreateAttachmentDto)
|
||||||
|
Defined in src/attachments/attachments.service.ts:19
|
||||||
|
Parameters :
Returns :
Promise<Attachment>
|
| Async findAll | ||||||
findAll(filter: FilterQuery<AttachmentDocument>)
|
||||||
|
Defined in src/attachments/attachments.service.ts:27
|
||||||
|
Parameters :
Returns :
Promise<Attachment[]>
|
| Async findOne | |||||||||
findOne(filter: FilterQuery<AttachmentDocument>, projection?: Record
|
|||||||||
|
Defined in src/attachments/attachments.service.ts:33
|
|||||||||
|
Parameters :
Returns :
Promise<Attachment | null>
|
| Async findOneAndRemove | ||||||
findOneAndRemove(filter: FilterQuery<AttachmentDocument>)
|
||||||
|
Defined in src/attachments/attachments.service.ts:54
|
||||||
|
Parameters :
Returns :
Promise<>
|
| Async findOneAndUpdate | |||||||||
findOneAndUpdate(filter: FilterQuery<AttachmentDocument>, updateAttachmentDto: UpdateAttachmentDto)
|
|||||||||
|
Defined in src/attachments/attachments.service.ts:40
|
|||||||||
|
Parameters :
Returns :
Promise<Attachment | null>
|
import { Inject, Injectable, Scope } from "@nestjs/common";
import { REQUEST } from "@nestjs/core";
import { Request } from "express";
import { InjectModel } from "@nestjs/mongoose";
import { FilterQuery, Model } from "mongoose";
import { CreateAttachmentDto } from "./dto/create-attachment.dto";
import { UpdateAttachmentDto } from "./dto/update-attachment.dto";
import { Attachment, AttachmentDocument } from "./schemas/attachment.schema";
import { JWTUser } from "src/auth/interfaces/jwt-user.interface";
import { addCreatedByFields, addUpdatedByField } from "src/common/utils";
@Injectable({ scope: Scope.REQUEST })
export class AttachmentsService {
constructor(
@InjectModel(Attachment.name) private attachmentModel: Model<Attachment>,
@Inject(REQUEST) private request: Request,
) {}
async create(createAttachmentDto: CreateAttachmentDto): Promise<Attachment> {
const username = (this.request?.user as JWTUser).username;
const createdAttachment = new this.attachmentModel(
addCreatedByFields(createAttachmentDto, username),
);
return createdAttachment.save();
}
async findAll(
filter: FilterQuery<AttachmentDocument>,
): Promise<Attachment[]> {
return this.attachmentModel.find(filter).exec();
}
async findOne(
filter: FilterQuery<AttachmentDocument>,
projection?: Record<string, unknown>,
): Promise<Attachment | null> {
return this.attachmentModel.findOne(filter, projection ?? {}).exec();
}
async findOneAndUpdate(
filter: FilterQuery<AttachmentDocument>,
updateAttachmentDto: UpdateAttachmentDto,
): Promise<Attachment | null> {
const username = (this.request?.user as JWTUser).username;
return this.attachmentModel
.findOneAndUpdate(
filter,
addUpdatedByField(updateAttachmentDto, username),
{ new: true },
)
.exec();
}
async findOneAndRemove(
filter: FilterQuery<AttachmentDocument>,
): Promise<unknown> {
return this.attachmentModel.findOneAndRemove(filter).exec();
}
}