Skip to content
Snippets Groups Projects
Commit 8dd5f502 authored by Antonin COQUET's avatar Antonin COQUET
Browse files

feat: add endpoint for unclaimed structure

parent 2f712610
No related branches found
No related tags found
3 merge requests!96release V1.10.0,!83Dev,!79feat: add endpoint for unclaimed structure
......@@ -2,13 +2,13 @@ import { Body, Delete, Param } from '@nestjs/common';
import { Controller, Get, Post, UseGuards } from '@nestjs/common';
import { ApiOperation, ApiParam } from '@nestjs/swagger';
import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard';
import { NewsletterSubscriptionDocument } from '../newsletter/newsletter-subscription.schema';
import { NewsletterService } from '../newsletter/newsletter.service';
import { StructuresService } from '../structures/services/structures.service';
import { Roles } from '../users/decorators/roles.decorator';
import { RolesGuard } from '../users/guards/roles.guard';
import { UsersService } from '../users/users.service';
import { PendingStructureDto } from './dto/pending-structure.dto';
import { UnclaimedStructureDto } from './dto/unclaimed-structure-dto';
@Controller('admin')
export class AdminController {
......@@ -32,6 +32,15 @@ export class AdminController {
);
}
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('admin')
@Get('unclaimedStructures')
@ApiOperation({ description: 'Get pending structre for validation' })
public async getUnclaimedStructures(): Promise<UnclaimedStructureDto[]> {
const unclaimedStructures = await this.structuresService.findAllUnclaimed();
return unclaimedStructures;
}
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('admin')
@Post('validatePendingStructure')
......
import { ApiProperty } from '@nestjs/swagger';
import { IsNotEmpty, IsString } from 'class-validator';
export class UnclaimedStructureDto {
@IsNotEmpty()
@IsString()
@ApiProperty({ type: String })
readonly structureId: string;
@IsNotEmpty()
@IsString()
@ApiProperty({ type: String })
structureName: string;
}
......@@ -20,6 +20,7 @@ import { CategoriesModule } from '../../categories/categories.module';
import { CategoriesAccompagnement } from '../../categories/schemas/categoriesAccompagnement.schema';
import { CategoriesFormations } from '../../categories/schemas/categoriesFormations.schema';
import { CategoriesOthers } from '../../categories/schemas/categoriesOthers.schema';
import { UnclaimedStructureDto } from '../../admin/dto/unclaimed-structure-dto';
@Injectable()
export class StructuresService {
......@@ -152,6 +153,19 @@ export class StructuresService {
return this.structureModel.find({ deletedAt: { $exists: false }, accountVerified: true }).exec();
}
public async findAllUnclaimed(): Promise<UnclaimedStructureDto[]> {
const structures = await this.structureModel.find({ deletedAt: { $exists: false } }).exec();
const unclaimedStructures = [];
await Promise.all(
structures.map(async (structure: StructureDocument) => {
if (!(await this.userService.isStructureClaimed(structure.id))) {
unclaimedStructures.push({ structureId: structure.id, structureName: structure.structureName });
}
})
);
return unclaimedStructures;
}
public async populateES(): Promise<StructureDocument[]> {
const structures = await this.structureModel.find({ deletedAt: { $exists: false } }).exec();
await Promise.all(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment