Skip to content

Commit a3f269f

Browse files
committed
chore: semplificata logica BirthdayService
1 parent d934129 commit a3f269f

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

00_problems/src/main/java/io/doubleloop/problems/BirthdayService.java

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import org.springframework.beans.factory.annotation.Value;
1010
import org.springframework.stereotype.Component;
1111

12-
import java.io.BufferedReader;
13-
import java.io.FileReader;
1412
import java.io.IOException;
13+
import java.nio.file.Files;
14+
import java.nio.file.Paths;
1515
import java.time.LocalDate;
1616
import java.util.Properties;
1717

@@ -31,12 +31,14 @@ public BirthdayService(@Value("${app.employee.file}") String filePath,
3131
}
3232

3333
public void sendGreetings(LocalDate today) throws IOException, MessagingException {
34-
BufferedReader in = new BufferedReader(new FileReader(filePath));
35-
String str = "";
36-
str = in.readLine(); // skip header
37-
while ((str = in.readLine()) != null) {
38-
String[] employeeData = str.split(", ");
39-
Employee employee = new Employee(employeeData[1], employeeData[0], employeeData[2], employeeData[3]);
34+
35+
final var employees = Files.readAllLines(Paths.get(filePath))
36+
.stream()
37+
.skip(1) // skip header
38+
.map(this::parseLine)
39+
.toList();
40+
41+
for (var employee : employees) {
4042
if (employee.isBirthday(today)) {
4143
String recipient = employee.getEmail();
4244
String body = "Happy Birthday, dear %NAME%".replace("%NAME%", employee.getFirstName());
@@ -46,13 +48,18 @@ public void sendGreetings(LocalDate today) throws IOException, MessagingExceptio
4648
}
4749
}
4850

51+
private Employee parseLine(String str) {
52+
final var employeeData = str.split(", ");
53+
return new Employee(employeeData[1], employeeData[0], employeeData[2], employeeData[3]);
54+
}
55+
4956
private void sendMessage(String sender, String subject, String body, String recipient) throws MessagingException {
50-
Properties props = new Properties();
57+
final var props = new Properties();
5158
props.put("mail.smtp.host", smtpHost);
5259
props.put("mail.smtp.port", String.valueOf(smtpPort));
53-
Session session = Session.getInstance(props, null);
60+
final var session = Session.getInstance(props, null);
5461

55-
Message msg = new MimeMessage(session);
62+
final var msg = new MimeMessage(session);
5663
msg.setFrom(new InternetAddress(sender));
5764
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient));
5865
msg.setSubject(subject);

0 commit comments

Comments
 (0)