Skip to content
Snippets Groups Projects
Commit 1af47fd0 authored by Nabilsenko's avatar Nabilsenko
Browse files

feat: delete student from groups, and delete its files

parent ccdb9e3d
Branches
Tags
No related merge requests found
...@@ -161,6 +161,16 @@ export class GroupsDao { ...@@ -161,6 +161,16 @@ export class GroupsDao {
resolve(); resolve();
}); });
}); });
findByStudentIdAndRemove = (id: string): Promise<Group | void> =>
new Promise((resolve, reject) => {
this._groupModel.updateMany({ students: id }, { $pull: { students: id } }, (err) => {
if (err) {
return reject(err.message);
}
resolve();
});
});
findByParentAndRemove = (parent: string): Promise<Group | void> => findByParentAndRemove = (parent: string): Promise<Group | void> =>
new Promise((resolve, reject) => { new Promise((resolve, reject) => {
......
...@@ -45,4 +45,8 @@ export class GroupsService { ...@@ -45,4 +45,8 @@ export class GroupsService {
} }
}); });
} }
deleteStudentFromGroups = (id: string): Promise<GroupEntity | void> =>
this._groupsDao.findByStudentIdAndRemove(id);
} }
...@@ -14,6 +14,8 @@ import config from 'src/config'; ...@@ -14,6 +14,8 @@ import config from 'src/config';
import * as bcrypt from 'bcrypt'; import * as bcrypt from 'bcrypt';
import { PeopleEntity } from '../entities/people.entity'; import { PeopleEntity } from '../entities/people.entity';
import { CONFLICT } from 'src/shared/HttpError'; import { CONFLICT } from 'src/shared/HttpError';
import { InternshipService } from 'src/internships/internships.service';
import { GroupsService } from 'src/groups/groups.service';
@Injectable() @Injectable()
export class PeopleDao { export class PeopleDao {
...@@ -25,6 +27,8 @@ export class PeopleDao { ...@@ -25,6 +27,8 @@ export class PeopleDao {
constructor( constructor(
@InjectModel(People.name) @InjectModel(People.name)
private readonly _peopleModel: Model<People>, private readonly _peopleModel: Model<People>,
private _internshipService: InternshipService,
private _groupService: GroupsService
) {} ) {}
login = (email: string, password: string): Promise<People | void> => login = (email: string, password: string): Promise<People | void> =>
...@@ -132,8 +136,10 @@ export class PeopleDao { ...@@ -132,8 +136,10 @@ export class PeopleDao {
findByIdAndRemove = (id: string): Promise<People | void> => findByIdAndRemove = (id: string): Promise<People | void> =>
new Promise((resolve, reject) => { new Promise((resolve, reject) => {
this._peopleModel.deleteOne({ id: id }, {}, (err) => { this._peopleModel.deleteOne({ _id: id }, {}, (err) => {
if (err) reject(err.message); if (err) reject(err.message);
this._internshipService.delete(id);
this._groupService.deleteStudentFromGroups(id);
resolve(); resolve();
}); });
}); });
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment