Skip to content

Commit

Permalink
contact controller improved
Browse files Browse the repository at this point in the history
  • Loading branch information
Marc Gorzala committed Jan 14, 2024
1 parent 822d01b commit 03f0e86
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 7 deletions.
12 changes: 9 additions & 3 deletions src/main/java/net/dancier/dancer/contact/ContactController.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package net.dancier.dancer.contact;

import lombok.RequiredArgsConstructor;
import net.dancier.dancer.security.AuthenticatedUser;
import net.dancier.dancer.security.CurrentUser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
Expand All @@ -11,6 +13,8 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.stream.Collectors;

import static net.dancier.dancer.authentication.Constants.ROLE_HUMAN;

@RestController
Expand All @@ -23,10 +27,12 @@ public class ContactController {
private final ContactService contactService;

@PostMapping
@Secured(ROLE_HUMAN)
public ResponseEntity sentMail(@RequestBody ContactDto contactDto) {
@Secured({ROLE_HUMAN})
public ResponseEntity sentMail(@RequestBody ContactDto contactDto,
@CurrentUser AuthenticatedUser currentUser) {

log.info("Sending {} to {}.", contactDto.getMessage(), contactDto.getSender());
contactService.send(contactDto);
contactService.send(contactDto, currentUser);
return ResponseEntity.status(HttpStatus.CREATED).build();
}

Expand Down
1 change: 0 additions & 1 deletion src/main/java/net/dancier/dancer/contact/ContactDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
public class ContactDto {

@Email
@NotNull
private String sender;

@NotNull
Expand Down
19 changes: 16 additions & 3 deletions src/main/java/net/dancier/dancer/contact/ContactService.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,36 @@

import lombok.RequiredArgsConstructor;
import net.dancier.dancer.mail.service.MailCreationService;
import net.dancier.dancer.security.AuthenticatedUser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import static net.dancier.dancer.authentication.Constants.ROLE_USER;

@Service
@RequiredArgsConstructor
public class ContactService {

private final static Logger log = LoggerFactory.getLogger(ContactService.class);

private final MailCreationService mailCreationService;

private final ApplicationEventPublisher applicationEventPublisher;

void send(ContactDto contactDto) {
void send(ContactDto contactDto, AuthenticatedUser authenticatedUserOfSender) {
String senderMailAddress = (authenticatedUserOfSender.getAuthorities().contains(ROLE_USER))
? authenticatedUserOfSender.getEmail()
: contactDto.getSender();
SimpleMailMessage mailToSender = mailCreationService.createDancierMessageFromTemplate(
contactDto.getSender(),
senderMailAddress,
"dev@dancier.net",
"Vielen Dank - Team Dancier",
MailCreationService.CONTACT_FORMULAR_FEEDBACK,
Expand All @@ -27,7 +40,7 @@ void send(ContactDto contactDto) {

SimpleMailMessage mailToTeamDancier = mailCreationService.createDancierMessageFromTemplate(
"dev@dancier.net",
contactDto.getSender(),
senderMailAddress,
"Mail über das Kontakt formular",
MailCreationService.CONTACT_FORMULAR,
Map.of(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ public UUID getUserId() {
return userId;
}

public String getEmail() {
return this.email;
}

public boolean isEmailValidated() {
return isEmailValidated;
}
Expand Down

0 comments on commit 03f0e86

Please sign in to comment.