This is the codeAbility Sharing Platform! Learn more about the codeAbility Sharing Platform.

Skip to content
Snippets Groups Projects
Commit cf959b7e authored by Michael Breu's avatar Michael Breu :speech_balloon:
Browse files

Intermediate functionality for testing info mail sending

parent 127d0dd8
Branches
Tags
2 merge requests!55June Release,!52Resolve "Extend Bookmarklists and implement stored searches"
......@@ -113,7 +113,7 @@ public class MailService {
public void sendInfoMails() {
for(User user: userRepository.findAll()) {
user = sendInfoMail(user);
sendInfoMail(user);
}
}
......@@ -121,9 +121,9 @@ public class MailService {
* send an info mail to user, if relevant.
* For test purposes mainly.
* @param user
* @return
* @return true if mail was sent.
*/
public User sendInfoMail(User user) {
public boolean sendInfoMail(User user) {
boolean hasContent = false;
Locale locale = Locale.forLanguageTag(user.getLangKey());
Context context = new Context(locale);
......@@ -164,8 +164,9 @@ public class MailService {
sendEmail(user.getEmail(), subject, content, false, true);
user.setLastMailSent(Instant.now());
userRepository.save(user);
return true;
}
return user;
return false;
}
......
package at.ac.uibk.gitsearch.web.rest;
import java.util.Optional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.userdetails.User;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import at.ac.uibk.gitsearch.security.jwt.TokenProvider;
import at.ac.uibk.gitsearch.service.MailService;
import at.ac.uibk.gitsearch.service.UserService;
/**
* REST controller for various tests that can be initiated by the user.
*/
@RestController
@RequestMapping("/api")
public class TestResource {
private final Logger log = LoggerFactory.getLogger(TestResource.class);
// @Value("${jhipster.clientApp.name}") // warning: inconsistent rename of gitSearchApp to gitSearchV2App :-(
@SuppressWarnings("unused")
private final static String applicationName = "gitsearchApp";
private final MailService mailService;
@SuppressWarnings("unused")
private final TokenProvider tokenProvider;
private final UserService userService;
public TestResource(MailService mailService,
TokenProvider tokenProvider, UserService userService
) {
this.mailService = mailService;
this.tokenProvider = tokenProvider;
this.userService = userService;
}
/**
* {@code Get /triggerInfoMail} : Triggers the info mail for the current user.
*/
@GetMapping("/triggerInfoMail")
public ResponseEntity<String> triggerInfoMail() {
// if(tokenProvider.getCurrentPrincipal().isEmpty()) {
// log.debug("unknown user for triggerInfoMail");
// return ResponseEntity.badRequest().build();
// }
// String userName = tokenProvider.getCurrentPrincipal().get().getUsername();
Optional<at.ac.uibk.gitsearch.domain.User> uo = userService.getUserWithAuthorities();
if(uo.isEmpty()) {
log.debug("unknown user for triggerInfoMail");
return ResponseEntity.badRequest().build();
}
boolean wasSent = mailService.sendInfoMail(uo.get());
return ResponseEntity.ok().body(wasSent?"success":"no mail to send");
}
}
......@@ -104,5 +104,8 @@
<button type="submit" [disabled]="settingsForm.invalid" class="btn btn-primary" jhiTranslate="settings.form.button">Save</button>
</form>
</div>
<div>
<button type="submit" class="btn btn-primary" (click)="triggerInfoMailSending()">Test Mail Sending</button>
</div>
</div>
</div>
import { Component, OnInit } from '@angular/core';
import { FormBuilder, Validators } from '@angular/forms';
import { JhiLanguageService } from 'ng-jhipster';
import { TestService } from 'app/shared/service/test-service';
import { AccountService } from 'app/core/auth/account.service';
import { Account } from 'app/core/user/account.model';
......@@ -21,7 +22,7 @@ export class SettingsComponent implements OnInit {
langKey: [undefined],
});
constructor(private accountService: AccountService, private fb: FormBuilder, private languageService: JhiLanguageService) {}
constructor(private accountService: AccountService, private testService: TestService, private fb: FormBuilder, private languageService: JhiLanguageService) {}
ngOnInit(): void {
this.accountService.identity().subscribe(account => {
......@@ -56,4 +57,12 @@ export class SettingsComponent implements OnInit {
}
});
}
public triggerInfoMailSending(): void {
this.testService.triggerInfoMail().subscribe(
(message:String) => {alert(message);},
() => alert("Message sending failed!")
);
}
}
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { SERVER_API_URL } from 'app/app.constants';
/**
provides infrastructure services for Plugins
*/
@Injectable({ providedIn: 'root' })
export class TestService {
public triggerInfoMailURL = SERVER_API_URL + 'api/triggerInfoMail';
constructor(protected http: HttpClient) {}
public triggerInfoMail(): Observable<String> {
return this.http.get<String>(this.triggerInfoMailURL);
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment