Skip to content
Snippets Groups Projects
Unverified Commit ad333a66 authored by Denis's avatar Denis Committed by GitHub
Browse files

Merge pull request #21 from ivanalglave/fix-delete

feat: delete student from groups, and delete its files
parents 1b038d8a 340309d8
Branches
No related tags found
No related merge requests found
......@@ -161,6 +161,16 @@ export class GroupsDao {
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> =>
new Promise((resolve, reject) => {
......
import { Module, Logger } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { InternshipsModule } from 'src/internships/internships.module';
import { PeopleDao } from 'src/people/dao/people.dao';
import { PeopleService } from 'src/people/people.service';
import { People, PeopleSchema } from 'src/people/schemas/people.schema';
......@@ -12,8 +13,11 @@ import { Group, GroupSchema } from './schemas/group.schema';
imports: [
MongooseModule.forFeature([{ name: Group.name, schema: GroupSchema }]),
MongooseModule.forFeature([{ name: People.name, schema: PeopleSchema }]),
InternshipsModule,
GroupsModule
],
controllers: [GroupsController],
providers: [GroupsService, GroupsDao, Logger, PeopleService, PeopleDao],
exports: [GroupsService],
})
export class GroupsModule {}
......@@ -45,4 +45,8 @@ export class GroupsService {
}
});
}
deleteStudentFromGroups = (id: string): Promise<GroupEntity | void> =>
this._groupsDao.findByStudentIdAndRemove(id);
}
import { Module, Logger } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { InternshipDao } from './dao/internships.dao';
import { InternshipsController } from './internships.controller';
import { InternshipService } from './internships.service';
import { Internship, InternshipSchema } from './schemas/internship.schema';
@Module({
imports: [
MongooseModule.forFeature([
{ name: Internship.name, schema: InternshipSchema },
]),
],
controllers: [InternshipsController],
providers: [InternshipService, InternshipDao, Logger],
})
export class InternshipsModule {}
import { Module, Logger } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { InternshipDao } from './dao/internships.dao';
import { InternshipsController } from './internships.controller';
import { InternshipService } from './internships.service';
import { Internship, InternshipSchema } from './schemas/internship.schema';
@Module({
imports: [
MongooseModule.forFeature([
{ name: Internship.name, schema: InternshipSchema },
]),
],
controllers: [InternshipsController],
providers: [InternshipService, InternshipDao, Logger],
exports: [InternshipService],
})
export class InternshipsModule {}
......@@ -14,6 +14,8 @@ import config from 'src/config';
import * as bcrypt from 'bcrypt';
import { PeopleEntity } from '../entities/people.entity';
import { CONFLICT } from 'src/shared/HttpError';
import { InternshipService } from 'src/internships/internships.service';
import { GroupsService } from 'src/groups/groups.service';
@Injectable()
export class PeopleDao {
......@@ -25,6 +27,8 @@ export class PeopleDao {
constructor(
@InjectModel(People.name)
private readonly _peopleModel: Model<People>,
private _internshipService: InternshipService,
private _groupService: GroupsService
) {}
login = (email: string, password: string): Promise<People | void> =>
......@@ -141,8 +145,10 @@ export class PeopleDao {
findByIdAndRemove = (id: string): Promise<People | void> =>
new Promise((resolve, reject) => {
this._peopleModel.deleteOne({ id: id }, {}, (err) => {
this._peopleModel.deleteOne({ _id: id }, {}, (err) => {
if (err) reject(err.message);
this._internshipService.delete(id);
this._groupService.deleteStudentFromGroups(id);
resolve();
});
});
......
import { Logger, Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { PeopleDao } from './dao/people.dao';
import { PeopleController } from './people.controller';
import { PeopleService } from './people.service';
import { People, PeopleSchema } from './schemas/people.schema';
@Module({
imports: [
MongooseModule.forFeature([{ name: People.name, schema: PeopleSchema }]),
],
controllers: [PeopleController],
providers: [PeopleService, PeopleDao, Logger],
exports: [PeopleService],
})
export class PeopleModule {}
import { Logger, Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { GroupsDao } from 'src/groups/dao/groups.dao';
import { GroupsService } from 'src/groups/groups.service';
import { Group, GroupSchema } from 'src/groups/schemas/group.schema';
import { InternshipDao } from 'src/internships/dao/internships.dao';
import { InternshipService } from 'src/internships/internships.service';
import { Internship, InternshipSchema } from 'src/internships/schemas/internship.schema';
import { PeopleDao } from './dao/people.dao';
import { PeopleController } from './people.controller';
import { PeopleService } from './people.service';
import { People, PeopleSchema } from './schemas/people.schema';
@Module({
imports: [
MongooseModule.forFeature([{ name: People.name, schema: PeopleSchema }]),
MongooseModule.forFeature([{ name: Internship.name, schema: InternshipSchema }]),
MongooseModule.forFeature([{ name: Group.name, schema: GroupSchema }]),
],
controllers: [PeopleController],
providers: [PeopleService, PeopleDao, Logger, InternshipService, GroupsService, InternshipDao, GroupsDao],
exports: [PeopleService],
})
export class PeopleModule {}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment