nestjs-architecture/src/user/user.service.ts
2021-11-11 13:12:33 +05:30

37 lines
1.5 KiB
TypeScript

import { Injectable } from '@nestjs/common';
import { Model } from 'mongoose';
import { InjectModel } from '@nestjs/mongoose';
import { DepEdPhUser } from './interfaces/depedphuser.interface';
import { CreateUserDTO } from './dto/create-user.dto';
@Injectable()
export class UserService {
constructor(@InjectModel('DepEdPhUser') private readonly DepEdPhUserModel: Model<DepEdPhUser>) { }
// fetch all DepEdPhUsers
async getAllDepEdPhUser(): Promise<DepEdPhUser[]> {
const DepEdPhUsers = await this.DepEdPhUserModel.find().exec();
return DepEdPhUsers;
}
// Get a single DepEdPhUser
async getDepEdPhUser(DepEdPhUserID): Promise<DepEdPhUser> {
const DepEdPhUser = await this.DepEdPhUserModel.findById(DepEdPhUserID).exec();
return DepEdPhUser;
}
// post a single DepEdPhUser
async addDepEdPhUser(createUserDTO: CreateUserDTO): Promise<DepEdPhUser> {
const newDepEdPhUser = await new this.DepEdPhUserModel(createUserDTO);
return newDepEdPhUser.save();
}
// Edit DepEdPhUser details
async updateDepEdPhUser(DepEdPhUserID, createUserDTO: CreateUserDTO): Promise<DepEdPhUser> {
const updatedDepEdPhUser = await this.DepEdPhUserModel
.findByIdAndUpdate(DepEdPhUserID, createUserDTO, { new: true });
return updatedDepEdPhUser;
}
// Delete a DepEdPhUser
async deleteDepEdPhUser(DepEdPhUserID): Promise<any> {
const deletedDepEdPhUser = await this.DepEdPhUserModel.findByIdAndRemove(DepEdPhUserID);
return deletedDepEdPhUser;
}
}