Skip to content

Commit 8442509

Browse files
fix: clean code fixes
1 parent cca2a7a commit 8442509

16 files changed

+287
-141
lines changed

pom.xml

+5
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@
9090
<artifactId>prettytime</artifactId>
9191
<version>5.0.4.Final</version>
9292
</dependency>
93+
<dependency>
94+
<groupId>org.aspectj</groupId>
95+
<artifactId>aspectjweaver</artifactId>
96+
<version>1.9.22.1</version>
97+
</dependency>
9398

9499

95100
</dependencies>

src/main/java/com/example/cassandradbdemo/CassandraDbDemoApplication.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public class CassandraDbDemoApplication {
2222
// private final static Logger log = LoggerFactory.getLogger(CassandraDbDemoApplication.class);
2323

2424
public static void main(String[] args) {
25-
ApplicationContext context = SpringApplication.run(CassandraDbDemoApplication.class, args);
25+
ApplicationContext context = SpringApplication.run(CassandraDbDemoApplication.class, args);
2626

2727
}
2828
@Bean

src/main/java/com/example/cassandradbdemo/configs/SecurityAdapter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public class SecurityAdapter {
2020
protected SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
2121
http
2222
.authorizeRequests(a -> a
23-
.requestMatchers("/", "/sendEmail", "/error", "/webjars/**").permitAll()
23+
.requestMatchers("/").permitAll()
2424
.anyRequest().authenticated()
2525
)
2626
.exceptionHandling(e -> e
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package com.example.cassandradbdemo.constant;
2+
3+
public class ModelConstant {
4+
5+
//--------------------------------- MODEL ATTRIBUTES -----------------------------
6+
public static final String EMAIL_LIST_ATTRIBUTE = "emailList";
7+
public static final String USER_FOLDERS_ATTRIBUTE = "userFolders";
8+
public static final String DEFAULT_FOLDERS_ATTRIBUTE = "defaultFolders";
9+
public static final String STATS_ATTRIBUTE = "stats";
10+
public static final String FOLDER_NAME_ATTRIBUTE = "folderName";
11+
public static final String EMAIL_ATTRIBUTE = "EMAIL";
12+
public static final String TO_ATTRIBUTE = "to";
13+
14+
15+
//------------------------------- FOLDER NAMES -----------------------------------------
16+
public static final String INBOX_FOLDER = "Inbox";
17+
18+
//------------------------------- FOLDER LABELS -----------------------------------------
19+
public static final String INBOX_LABEL = "Inbox";
20+
public static final String SENT_LABEL = "Sent";
21+
public static final String IMPORTANT_LABEL = "Important";
22+
public static final String DONE_LABEL = "Done";
23+
public static final String BLUE_COLOR = "blue";
24+
public static final String PURPLE_COLOR = "purple";
25+
public static final String RED_COLOR = "red";
26+
public static final String GREEN_COLOR = "green";
27+
28+
29+
30+
//------------------------------- MODEL NAMES ---------------------------------------------
31+
32+
public static final String INBOX_MODEL = "inbox-page";
33+
public static final String FOLDERS_MODEL = "folders";
34+
public static final String COMPOSE_MODEL = "/components/compose-page";
35+
36+
37+
38+
//------------------------------- AUTHENTICATION PROPERTIES -----------------------------------
39+
public static final String USER_NAME = "name";
40+
41+
//------------------------------- COMPOSE PROPERTIES -----------------------------------
42+
public static final String TO = "to";
43+
public static final String SUBJECT = "subject";
44+
public static final String BODY = "body";
45+
46+
47+
}

src/main/java/com/example/cassandradbdemo/controller/ComposeController.java

+30-33
Original file line numberDiff line numberDiff line change
@@ -23,43 +23,43 @@
2323
import java.util.*;
2424
import java.util.stream.Collectors;
2525

26+
import static com.example.cassandradbdemo.constant.ModelConstant.*;
27+
2628
@Controller
2729
public class ComposeController {
28-
29-
@Autowired
30-
private EmailRepository emailRepository;
31-
32-
33-
@Autowired
34-
FolderRepository folderRepository;
35-
36-
@Autowired
37-
FolderService folderService;
38-
39-
@Autowired
40-
EmailService emailService;
30+
private final FolderRepository folderRepository;
31+
private final EmailService emailService;
32+
private final FolderService folderService;
33+
34+
public ComposeController(
35+
FolderRepository folderRepository,
36+
FolderService folderService,
37+
EmailService emailService
38+
) {
39+
this.folderRepository = folderRepository;
40+
this.folderService = folderService;
41+
this.emailService = emailService;
42+
}
4143

4244
@GetMapping("/compose")
4345
public String getEmail(
4446
@AuthenticationPrincipal OidcUser principal,
4547
Model model, @RequestParam(required = false) String to) {
46-
System.out.println("email sent111 ");
4748

48-
String userName = principal.getAttribute("name");
4949
String userId = principal.getEmail();
5050
List<Folder> folderList = folderRepository.findAllById(userId);
51-
model.addAttribute("userFolders", folderList);
51+
model.addAttribute(USER_FOLDERS_ATTRIBUTE, folderList);
5252

5353

5454
List<Folder> defaultfolderList = folderService.fetchDefaultUserFolders(userId);
55-
model.addAttribute("defaultFolders", defaultfolderList);
55+
model.addAttribute(DEFAULT_FOLDERS_ATTRIBUTE, defaultfolderList);
5656

5757
List<String> ids = splitIds(to);
5858

59-
model.addAttribute("to", String.join(", ", ids));
60-
model.addAttribute("stats", folderService.getEmailStats(userId));
59+
model.addAttribute(TO_ATTRIBUTE, String.join(", ", ids));
60+
model.addAttribute(STATS_ATTRIBUTE, folderService.getEmailStats(userId));
6161

62-
return "/components/compose-page";
62+
return COMPOSE_MODEL;
6363
}
6464

6565
@NotNull
@@ -77,21 +77,18 @@ private static List<String> splitIds(String to) {
7777

7878
@PostMapping("/sendEmail")
7979
public ModelAndView sendEmail(
80-
@AuthenticationPrincipal OidcUser principal
81-
// @RequestBody MultiValueMap<String, String> formData
80+
@AuthenticationPrincipal OidcUser principal,
81+
@RequestBody MultiValueMap<String, String> formData
8282

8383
) {
84-
System.out.println("email sent111 ");
85-
//
86-
// String userName = principal.getAttribute("name");
87-
// String from = principal.getEmail();
88-
// List<String> toIds = splitIds(formData.getFirst("to"));
89-
// String subject = formData.getFirst("subject");
90-
// String body = formData.getFirst("body");
91-
//
92-
// emailService.sendEmail(from, toIds, subject, body);
93-
94-
return new ModelAndView("redirect:/folders");
84+
String from = principal.getEmail();
85+
List<String> toIds = splitIds(formData.getFirst(TO));
86+
String subject = formData.getFirst(SUBJECT);
87+
String body = formData.getFirst(BODY);
88+
89+
emailService.sendEmail(from, toIds, subject, body);
90+
91+
return new ModelAndView("redirect:/" + FOLDERS_MODEL);
9592

9693
}
9794

src/main/java/com/example/cassandradbdemo/controller/EmailController.java

+27-22
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,29 @@
2727
import java.util.Optional;
2828
import java.util.UUID;
2929

30+
import static com.example.cassandradbdemo.constant.ModelConstant.*;
31+
3032
@Controller
3133
public class EmailController {
32-
33-
@Autowired
34-
private EmailRepository emailRepository;
35-
36-
@Autowired
37-
FolderRepository folderRepository;
38-
39-
@Autowired
40-
FolderService folderService;
41-
42-
@Autowired
43-
EmailListItemRepository emailListItemRepository;
44-
45-
@Autowired
46-
UnreadEmailStatsRepository unreadEmailStatsRepository;
34+
private final EmailRepository emailRepository;
35+
private final FolderRepository folderRepository;
36+
private final FolderService folderService;
37+
private final EmailListItemRepository emailListItemRepository;
38+
private final UnreadEmailStatsRepository unreadEmailStatsRepository;
39+
40+
public EmailController(
41+
EmailRepository emailRepository,
42+
FolderRepository folderRepository,
43+
FolderService folderService,
44+
EmailListItemRepository emailListItemRepository,
45+
UnreadEmailStatsRepository unreadEmailStatsRepository
46+
) {
47+
this.emailRepository = emailRepository;
48+
this.folderRepository = folderRepository;
49+
this.folderService = folderService;
50+
this.emailListItemRepository = emailListItemRepository;
51+
this.unreadEmailStatsRepository = unreadEmailStatsRepository;
52+
}
4753

4854
@GetMapping(value = "/folders/message/{id}")
4955
public String getEmail(
@@ -55,25 +61,24 @@ public String getEmail(
5561

5662
PrettyTime p = new PrettyTime();
5763
String userId = principal.getEmail();
58-
String userName = principal.getAttribute("name");
5964

6065
if (!email.isPresent()) {
61-
return "inbox-page";
66+
return INBOX_MODEL;
6267
}
6368
Email presentEmail = email.get();
6469
presentEmail.setToIds(String.join(", ", presentEmail.getTo()));
6570
UUID timeuuid = presentEmail.getId();
6671
Date date = new Date(Uuids.unixTimestamp(timeuuid));
6772
presentEmail.setSentTime(p.format(date));
68-
model.addAttribute("email", presentEmail);
73+
model.addAttribute(EMAIL_ATTRIBUTE, presentEmail);
6974

7075

7176
List<Folder> folderList = folderRepository.findAllById(userId);
72-
model.addAttribute("userFolders", folderList);
77+
model.addAttribute(USER_FOLDERS_ATTRIBUTE, folderList);
7378

7479

7580
List<Folder> defaultfolderList = folderService.fetchDefaultUserFolders(userId);
76-
model.addAttribute("defaultFolders", defaultfolderList);
81+
model.addAttribute(DEFAULT_FOLDERS_ATTRIBUTE, defaultfolderList);
7782

7883

7984
EmailListItemKey key = new EmailListItemKey();
@@ -91,9 +96,9 @@ public String getEmail(
9196
}
9297
}
9398

94-
model.addAttribute("stats", folderService.getEmailStats(userId));
99+
model.addAttribute(STATS_ATTRIBUTE, folderService.getEmailStats(userId));
95100

96-
return "inbox-page";
101+
return INBOX_MODEL;
97102
}
98103

99104

src/main/java/com/example/cassandradbdemo/controller/EmailListController.java

+11-32
Original file line numberDiff line numberDiff line change
@@ -20,51 +20,30 @@
2020

2121
import java.util.*;
2222

23+
import static com.example.cassandradbdemo.constant.ModelConstant.*;
24+
2325
@Controller
2426
public class EmailListController {
25-
@Autowired
2627
private EmailListItemRepository emailListItemRepository;
27-
28-
@Autowired
29-
private EmailRepository emailRepository;
30-
31-
@Autowired
32-
private UnreadEmailStatsRepository unreadEmailStatsRepository;
33-
34-
@Autowired
35-
private EmailService emailService;
36-
@Autowired
37-
FolderService folderService;
38-
private String[] labels = {"Inbox", "Sent", "Important", "Done"};
39-
40-
private Random rand = new Random();
41-
28+
private FolderService folderService;
29+
public EmailListController(EmailListItemRepository emailListItemRepository, FolderService folderService) {
30+
this.emailListItemRepository = emailListItemRepository;
31+
this.folderService = folderService;
32+
}
4233

4334
@GetMapping(value = "/messages")
4435
public String getMessages(
4536
@AuthenticationPrincipal OidcUser principal,
4637
Model model) {
4738

4839
String userId = principal.getEmail();
49-
String userName = principal.getAttribute("name");
50-
String folderLabel = "Inbox";
40+
String folderLabel = INBOX_LABEL;
5141

5242
List<EmailListItem> emailList = emailListItemRepository.findAllById_UserIdAndId_Label(userId, folderLabel);
53-
model.addAttribute("emailList", emailList);
54-
model.addAttribute("stats", folderService.getEmailStats(userId));
43+
model.addAttribute(EMAIL_LIST_ATTRIBUTE, emailList);
44+
model.addAttribute(STATS_ATTRIBUTE, folderService.getEmailStats(userId));
5545

5646

57-
return "inbox-page";
47+
return INBOX_MODEL;
5848
}
59-
60-
// @PostConstruct
61-
// public List<EmailListItem> generateListOfEmails() {
62-
// ArrayList<EmailListItem> emailList = new ArrayList<>();
63-
// for (int i = 0; i < 10; i++) {
64-
//
65-
// emailService.sendEmail("randomUserId", Arrays.asList("randomUserId2", "randomUserId", "asdfasdf"), "subject" + i, "subject" + i);
66-
//
67-
// }
68-
// return emailList;
69-
// }
7049
}

0 commit comments

Comments
 (0)