Skip to content
Snippets Groups Projects
Commit 8efc37d9 authored by Hugo SUBTIL's avatar Hugo SUBTIL
Browse files

Merge branch 'feat/admin_newsletter_changes' into 'dev'

feat: add enpoint for counting newsletter

See merge request web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_server!66
parents 09890576 b6276285
No related branches found
No related tags found
3 merge requests!96release V1.10.0,!73Dev,!66feat: add enpoint for counting newsletter
......@@ -2,6 +2,7 @@ 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';
......@@ -111,6 +112,13 @@ export class AdminController {
else return this.newsletterService.findAll();
}
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('admin')
@Get('countNewsletterSubscriptions')
public async countNewsletterSubscriptions(): Promise<number> {
return this.newsletterService.countNewsletterSubscriptions();
}
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('admin')
@Delete('newsletterSubscription/:email')
......
......@@ -2,7 +2,7 @@ import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Model, Types } from 'mongoose';
import { INewsletterSubscription } from './interface/newsletter-subscription.interface';
import { NewsletterSubscription } from './newsletter-subscription.schema';
import { NewsletterSubscription, NewsletterSubscriptionDocument } from './newsletter-subscription.schema';
@Injectable()
export class NewsletterService {
......@@ -32,10 +32,14 @@ export class NewsletterService {
return this.newsletterSubscriptionModel.findOne({ email: mail }).exec();
}
public async searchNewsletterSubscription(searchString: string) {
public async searchNewsletterSubscription(searchString: string): Promise<NewsletterSubscriptionDocument[]> {
return this.newsletterSubscriptionModel.find({ email: new RegExp(searchString, 'i') }).exec();
}
public async countNewsletterSubscriptions(): Promise<number> {
return this.newsletterSubscriptionModel.countDocuments({}).exec();
}
public async deleteOneEmail(mail: string): Promise<NewsletterSubscription | undefined> {
const subscription = await this.newsletterSubscriptionModel.findOne({ email: mail }).exec();
if (!subscription) {
......
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