From 440ffef5def19a1325cd97615f45e33fe2b38f81 Mon Sep 17 00:00:00 2001 From: Antonin Coquet <ext.sopra.acoquet@grandlyon.com> Date: Wed, 19 May 2021 10:51:55 +0200 Subject: [PATCH] fix: new endpoint for admin pannel, sorting and better algo --- src/admin/admin.controller.ts | 39 +++++++++++++++++------------------ 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/src/admin/admin.controller.ts b/src/admin/admin.controller.ts index 2866987d4..f35cae882 100644 --- a/src/admin/admin.controller.ts +++ b/src/admin/admin.controller.ts @@ -1,7 +1,7 @@ -import { Body, Delete, Param } from '@nestjs/common'; -import { Controller, Get, Post, UseGuards } from '@nestjs/common'; +import { Body, Delete, Param, Controller, Get, Post, UseGuards } from '@nestjs/common'; import { ApiOperation, ApiParam } from '@nestjs/swagger'; import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard'; +import { NewsletterSubscription } 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'; @@ -24,7 +24,7 @@ export class AdminController { @ApiOperation({ description: 'Get pending structre for validation' }) public async getPendingAttachments(): Promise<PendingStructureDto[]> { const pendingStructure = await this.usersService.getPendingStructures(); - return await Promise.all( + return Promise.all( pendingStructure.map(async (structure) => { structure.structureName = (await this.structuresService.findOne(structure.structureId)).structureName; return structure; @@ -32,14 +32,6 @@ export class AdminController { ); } - @UseGuards(JwtAuthGuard, RolesGuard) - @Roles('admin') - @Get('unclaimedStructures') - @ApiOperation({ description: 'Get pending structre for validation' }) - public async getUnclaimedStructures(): Promise<UnclaimedStructureDto[]> { - return await this.structuresService.findAllUnclaimed(); - } - @UseGuards(JwtAuthGuard, RolesGuard) @Roles('admin') @Get('adminStructuresList') @@ -50,11 +42,18 @@ export class AdminController { structuresList.toClaim = (await this.structuresService.findAllUnclaimed()).filter( (demand) => !structuresList.inClaim.find((elem) => elem.structureId == demand.structureId) ); - structuresList.claimed = (await this.structuresService.findAll()).filter( - (demand) => - !structuresList.inClaim.find((elem) => elem.structureId == demand.id) && - !structuresList.toClaim.find((elem) => elem.structureId == demand.id) - ); + structuresList.claimed = (await this.structuresService.findAll()) + .filter( + (demand) => + !structuresList.inClaim.find((elem) => elem.structureId == demand.id) && + !structuresList.toClaim.find((elem) => elem.structureId == demand.id) + ) + .map((structure) => { + return { structureId: structure.id, structureName: structure.structureName }; + }); + structuresList.claimed.sort((a, b) => a.structureName.localeCompare(b.structureName)); + structuresList.inClaim.sort((a, b) => a.structureName.localeCompare(b.structureName)); + structuresList.toClaim.sort((a, b) => a.structureName.localeCompare(b.structureName)); return structuresList; } @@ -71,7 +70,7 @@ export class AdminController { true ); const pendingStructure = await this.usersService.getPendingStructures(); - return await Promise.all( + return Promise.all( pendingStructure.map(async (pendingStructureData) => { pendingStructureData.structureName = ( await this.structuresService.findOne(pendingStructureData.structureId) @@ -94,7 +93,7 @@ export class AdminController { false ); const pendingStructure = await this.usersService.getPendingStructures(); - return await Promise.all( + return Promise.all( pendingStructure.map(async (pendingStructureData) => { pendingStructureData.structureName = ( await this.structuresService.findOne(pendingStructureData.structureId) @@ -149,7 +148,7 @@ export class AdminController { @Roles('admin') @Delete('newsletterSubscription/:email') @ApiParam({ name: 'email', type: String, required: true }) - public async unsubscribeUserFromNewsletter(@Param() params) { - return await this.newsletterService.deleteOneEmail(params.email); + public async unsubscribeUserFromNewsletter(@Param() params): Promise<NewsletterSubscription> { + return this.newsletterService.deleteOneEmail(params.email); } } -- GitLab