From fd2391f68ddfd2954663331a07c8e34e87143ef6 Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Sun, 25 Jul 2021 22:19:27 -0600 Subject: [PATCH] notificar al usuario cuando un admin elimina su encuesta --- .../org/datasurvey/service/MailService.java | 5 + .../datasurvey/web/rest/EncuestaResource.java | 7 + .../resources/i18n/messages_es.properties | 6 + .../templates/mail/encuestaDeletedEmail.html | 310 ++++++++++++++++++ .../encuesta-delete-dialog.component.ts | 6 + .../encuesta/service/encuesta.service.ts | 4 + 6 files changed, 338 insertions(+) create mode 100644 src/main/resources/templates/mail/encuestaDeletedEmail.html diff --git a/src/main/java/org/datasurvey/service/MailService.java b/src/main/java/org/datasurvey/service/MailService.java index a14a8e8..23ee9fe 100644 --- a/src/main/java/org/datasurvey/service/MailService.java +++ b/src/main/java/org/datasurvey/service/MailService.java @@ -158,4 +158,9 @@ public class MailService { log.debug("Sending reactivated account mail to '{}'", user.getUser().getEmail()); sendEmailFromTemplate(user.getUser(), "mail/encuestaPublicaEmail", "email.public.title"); } + + public void sendEncuestaDeleted(UsuarioExtra user) { + log.debug("Sending encuesta deletion notification mail to '{}'", user.getUser().getEmail()); + sendEmailFromTemplate(user.getUser(), "mail/encuestaDeletedEmail", "email.encuestaDeleted.title"); + } } diff --git a/src/main/java/org/datasurvey/web/rest/EncuestaResource.java b/src/main/java/org/datasurvey/web/rest/EncuestaResource.java index 0218659..e7825d3 100644 --- a/src/main/java/org/datasurvey/web/rest/EncuestaResource.java +++ b/src/main/java/org/datasurvey/web/rest/EncuestaResource.java @@ -299,4 +299,11 @@ public class EncuestaResource { .headers(HeaderUtil.createEntityDeletionAlert(applicationName, true, ENTITY_NAME, id.toString())) .build(); } + + @DeleteMapping("encuestas/notify/{id}") + public ResponseEntity notifyEncuestaDeleted(@PathVariable Long id, @Valid @RequestBody Encuesta encuesta) { + log.debug("REST request to notify {} of deleted Encuesta", encuesta.getUsuarioExtra().getUser().getEmail()); + mailService.sendEncuestaDeleted(encuesta.getUsuarioExtra()); + return ResponseEntity.noContent().build(); + } } diff --git a/src/main/resources/i18n/messages_es.properties b/src/main/resources/i18n/messages_es.properties index 7c205b5..f38805c 100644 --- a/src/main/resources/i18n/messages_es.properties +++ b/src/main/resources/i18n/messages_es.properties @@ -52,3 +52,9 @@ email.private.title=Su encuesta ha sido publicada de manera privada email.private.greeting=¡Felicidades {0}! email.private.text1=Su encuesta ha sdo publicada de manera privada. Su contraseña de acceso es: {0} email.private.text2=Saludos, + +#DeletedEncuesta +email.encuestaDeleted.title=Su encuesta ha sido eliminada +email.encuestaDeleted.greeting=Estimado {0} +email.encuestaDeleted.text1=Su encuesta ha sido eliminada por un administrador +email.encuestaDeleted.text2=Saludos, diff --git a/src/main/resources/templates/mail/encuestaDeletedEmail.html b/src/main/resources/templates/mail/encuestaDeletedEmail.html new file mode 100644 index 0000000..207f19a --- /dev/null +++ b/src/main/resources/templates/mail/encuestaDeletedEmail.html @@ -0,0 +1,310 @@ + + + + + + + + + + + Encuesta Eliminada + + + + + + + +
+
+ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  +
+ +
+ + diff --git a/src/main/webapp/app/entities/encuesta/delete/encuesta-delete-dialog.component.ts b/src/main/webapp/app/entities/encuesta/delete/encuesta-delete-dialog.component.ts index f13f3bd..2c28a4d 100644 --- a/src/main/webapp/app/entities/encuesta/delete/encuesta-delete-dialog.component.ts +++ b/src/main/webapp/app/entities/encuesta/delete/encuesta-delete-dialog.component.ts @@ -3,12 +3,14 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; import { IEncuesta } from '../encuesta.model'; import { EncuestaService } from '../service/encuesta.service'; import { EstadoEncuesta } from 'app/entities/enumerations/estado-encuesta.model'; +import { IUsuarioExtra } from 'app/entities/usuario-extra/usuario-extra.model'; @Component({ templateUrl: './encuesta-delete-dialog.component.html', }) export class EncuestaDeleteDialogComponent { encuesta?: IEncuesta; + usuarioExtra?: IUsuarioExtra; constructor(protected encuestaService: EncuestaService, protected activeModal: NgbActiveModal) {} @@ -21,5 +23,9 @@ export class EncuestaDeleteDialogComponent { this.encuestaService.deleteEncuesta(encuesta).subscribe(() => { this.activeModal.close('deleted'); }); + if (encuesta.usuarioExtra != undefined) { + const userEmail = encuesta.usuarioExtra!.user!.login; + this.encuestaService.deletedNotification(userEmail!); + } } } diff --git a/src/main/webapp/app/entities/encuesta/service/encuesta.service.ts b/src/main/webapp/app/entities/encuesta/service/encuesta.service.ts index a68c387..ccf077f 100644 --- a/src/main/webapp/app/entities/encuesta/service/encuesta.service.ts +++ b/src/main/webapp/app/entities/encuesta/service/encuesta.service.ts @@ -84,6 +84,10 @@ export class EncuestaService { return this.http.delete(`${this.resourceUrl}/${id}`, { observe: 'response' }); } + deletedNotification(email: string): Observable> { + return this.http.delete(`${this.resourceUrl}/${email}`, { observe: 'response' }); + } + addEncuestaToCollectionIfMissing(encuestaCollection: IEncuesta[], ...encuestasToCheck: (IEncuesta | null | undefined)[]): IEncuesta[] { const encuestas: IEncuesta[] = encuestasToCheck.filter(isPresent); if (encuestas.length > 0) {