Skip to content
Snippets Groups Projects

Crud groups

Merged GUVEN Kemal requested to merge crud-groups into master
13 files
+ 359
3
Compare changes
  • Side-by-side
  • Inline
Files
13
+ 73
0
import {
Injectable,
NotFoundException,
InternalServerErrorException,
} from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Model } from 'mongoose';
import { CreateGroupDto } from '../dto/create-group.dto';
import { UpdateGroupDto } from '../dto/update-group.dto';
import { Group } from '../schemas/group.schema';
@Injectable()
export class GroupsDao {
constructor(
@InjectModel(Group.name)
private readonly _groupModel: Model<Group>,
) {}
find = (): Promise<Group[]> =>
new Promise((resolve, reject) => {
this._groupModel.find({}, {}, {}, (err, value) => {
if (err) reject(err.message);
if (!value) reject('No values');
resolve(value);
});
});
findById = (id: string): Promise<Group | void> =>
new Promise((resolve, reject) => {
this._groupModel.findOne({ id: id }, {}, {}, (err, value) => {
if (err) reject(err.message);
if (!value) reject(new NotFoundException());
resolve(value);
});
});
save = (group: CreateGroupDto): Promise<Group> =>
new Promise((resolve, reject) => {
new this._groupModel(group).save((err, value) => {
if (err) reject(err.message);
if (!value) reject(new InternalServerErrorException());
resolve(value);
});
});
findByIdAndUpdate = (
id: string,
group: UpdateGroupDto,
): Promise<Group | void> =>
new Promise((resolve, reject) => {
this._groupModel.updateOne(
{ id: id },
group,
{
new: true,
runValidators: true,
},
(err, value) => {
if (err) reject(err.message);
if (value.matchedCount === 0) reject(new NotFoundException());
resolve(value);
},
);
});
findByIdAndRemove = (id: string): Promise<Group | void> =>
new Promise((resolve, reject) => {
this._groupModel.deleteOne({ id: id }, {}, (err) => {
if (err) reject(err.message);
resolve();
});
});
}
Loading