Skip to content

Commit cf62b6a

Browse files
DmitryBogatkod.bogatko
andauthored
refactored robot framework example report (#81)
Co-authored-by: d.bogatko <[email protected]>
1 parent b4a5819 commit cf62b6a

File tree

7 files changed

+164
-28
lines changed

7 files changed

+164
-28
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# CHANGELOG
22

3+
## 1.1.0 (2020-12-02)
4+
Features:
5+
- Added option to enable/disable 'STARTTLS' in the email settings
6+
- Refactored email utilities class
7+
38
## 1.0.4 (2020-11-02)
49

510
Bugfixes:

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<groupId>unifi_reporting_api</groupId>
77
<artifactId>api</artifactId>
88
<packaging>war</packaging>
9-
<version>1.0.4</version>
9+
<version>1.1.0</version>
1010

1111
<properties>
1212
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

src/main/java/main/model/db/dao/settings/EmailSettingsDao.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class EmailSettingsDao extends DAO<EmailSettingsDto> {
1414

1515
public EmailSettingsDao() {
1616
super(EmailSettingsDto.class);
17-
insert = "{call INSERT_EMAIL_SETTINGS(?,?,?,?,?,?,?,?,?,?)}";
17+
insert = "{call INSERT_EMAIL_SETTINGS(?,?,?,?,?,?,?,?,?,?,?)}";
1818
select = "{call SELECT_EMAIL_SETTINGS(?)}";
1919
}
2020

src/main/java/main/model/dto/settings/EmailSettingsDto.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,25 @@ public class EmailSettingsDto extends BaseDto {
3232
@DataBaseName(name="request_use_auth")
3333
@DataBaseInsert
3434
private Integer use_auth;
35+
@DataBaseName(name="request_starttls")
36+
@DataBaseInsert
37+
private Integer starttls;
3538
@DataBaseName(name="request_default_email_pattern")
3639
@DataBaseInsert
3740
private String default_email_pattern;
3841
@DataBaseName(name="request_base_url")
3942
@DataBaseInsert
4043
private String base_url;
44+
45+
public boolean isStartTlsEnabled(){
46+
return isPropertyEnabled(starttls);
47+
}
48+
49+
public boolean isSmtpAuthEnabled(){
50+
return isPropertyEnabled(use_auth);
51+
}
52+
53+
private boolean isPropertyEnabled(Integer property){
54+
return property != null && property.equals(1);
55+
}
4156
}

src/main/java/main/utils/EmailUtil.java

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -15,36 +15,18 @@ public class EmailUtil {
1515

1616
private EmailSettingsDto emailSettingsDto;
1717

18-
public EmailUtil(EmailSettingsDto emailSettingsDto){
18+
public EmailUtil(EmailSettingsDto emailSettingsDto) {
1919
this.emailSettingsDto = emailSettingsDto;
2020
}
2121

2222
public boolean sendHtmlEmail(List<String> to, String subject, String content) {
23-
Properties properties = System.getProperties();
24-
25-
properties.setProperty("mail.smtp.host", emailSettingsDto.getHost());
26-
properties.put("mail.smtp.port", emailSettingsDto.getPort());
27-
Session session;
28-
if(emailSettingsDto.getUse_auth() != 1){
29-
properties.setProperty("mail.smtp.auth", "false");
30-
properties.setProperty("mail.user", emailSettingsDto.getUser());
31-
properties.setProperty("mail.password", emailSettingsDto.getPassword());
32-
33-
session = Session.getDefaultInstance(properties);
34-
} else {
35-
properties.setProperty("mail.smtp.auth", "true");
36-
SMTPAuthenticator smtpAuthenticator = new SMTPAuthenticator();
37-
38-
session = Session.getInstance(properties, smtpAuthenticator);
39-
}
23+
Session session = createSession();
4024

4125
try {
4226
MimeMessage message = new MimeMessage(session);
4327
message.setFrom(new InternetAddress(emailSettingsDto.getFrom_email()));
44-
for(String email: to){
45-
if(!emailSettingsDto.getFrom_email().endsWith("@a1qa.com") || email.endsWith("@a1qa.com") || email.endsWith("@itransition.com")){
46-
message.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
47-
}
28+
for (String email : to) {
29+
message.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
4830
}
4931
message.setSubject(subject);
5032

@@ -68,10 +50,8 @@ public boolean sendHtmlEmail(List<String> to, String subject, String content) {
6850

6951
Transport.send(message);
7052
return true;
71-
}catch(SendFailedException e){
72-
for(String email: to){
73-
System.out.println("Can't send email to: " + email);
74-
}
53+
} catch (SendFailedException e) {
54+
System.out.println("Can't send email to: " + String.join(",", to));
7555
e.printStackTrace();
7656
return false;
7757
} catch (Exception e) {
@@ -80,7 +60,25 @@ public boolean sendHtmlEmail(List<String> to, String subject, String content) {
8060
}
8161
}
8262

63+
private Session createSession() {
64+
Properties properties = System.getProperties();
65+
properties.put("mail.smtp.host", emailSettingsDto.getHost());
66+
properties.put("mail.smtp.port", emailSettingsDto.getPort());
67+
properties.put("mail.smtp.starttls.enable", String.valueOf(emailSettingsDto.isStartTlsEnabled()));
68+
properties.put("mail.smtp.auth", String.valueOf(emailSettingsDto.isSmtpAuthEnabled()));
69+
70+
Session session;
71+
if (!emailSettingsDto.isSmtpAuthEnabled()) {
72+
session = Session.getDefaultInstance(properties);
73+
} else {
74+
SMTPAuthenticator smtpAuthenticator = new SMTPAuthenticator();
75+
session = Session.getInstance(properties, smtpAuthenticator);
76+
}
77+
return session;
78+
}
79+
8380
private class SMTPAuthenticator extends javax.mail.Authenticator {
81+
@Override
8482
public PasswordAuthentication getPasswordAuthentication() {
8583
String username = emailSettingsDto.getUser();
8684
String password = emailSettingsDto.getPassword();

src/main/resources/db_changelog/changelog.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,5 @@
3434
<include file="db.changelog-0.3.9.xml" relativeToChangelogFile="true"/>
3535
<include file="db.changelog-0.3.10.xml" relativeToChangelogFile="true"/>
3636
<include file="db.changelog-0.3.11.xml" relativeToChangelogFile="true"/>
37+
<include file="db.changelog-1.0.5.xml" relativeToChangelogFile="true"/>
3738
</databaseChangeLog>
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<databaseChangeLog
3+
xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.9
6+
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
7+
8+
<changeSet id="adding column starttls to email_settings table" author="d.bogatko">
9+
<preConditions onFail="MARK_RAN">
10+
<sqlCheck expectedResult="0">
11+
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'email_settings' AND table_schema = 'union_reporting' AND column_name = 'starttls';
12+
</sqlCheck>
13+
</preConditions>
14+
<sql endDelimiter="#">
15+
ALTER TABLE `union_reporting`.`email_settings` ADD COLUMN starttls INTEGER DEFAULT 0 AFTER use_auth;
16+
</sql>
17+
<rollback>
18+
ALTER TABLE `union_reporting`.`email_settings` DROP COLUMN starttls;
19+
</rollback>
20+
</changeSet>
21+
22+
<changeSet id="updating INSERT_EMAIL_SETTINGS procedure by adding starttls parameter" author="d.bogatko">
23+
<sql endDelimiter="#">
24+
DROP procedure IF EXISTS `INSERT_EMAIL_SETTINGS`;
25+
#
26+
CREATE PROCEDURE `INSERT_EMAIL_SETTINGS`(
27+
IN request_id VARCHAR(11),
28+
IN request_host VARCHAR(100),
29+
IN request_port varchar(4),
30+
IN request_user VARCHAR(100),
31+
IN request_from_email VARCHAR(100),
32+
IN request_password VARCHAR(1000),
33+
IN request_enabled varchar(1),
34+
IN request_use_auth varchar(1),
35+
IN request_starttls varchar(1),
36+
IN request_default_email_pattern varchar(50),
37+
IN request_base_url varchar(500))
38+
BEGIN
39+
INSERT INTO email_settings (id, host, user, password, enabled, from_email, port, use_auth, starttls, default_email_pattern, base_url)
40+
VALUES (
41+
request_id,
42+
request_host,
43+
request_user,
44+
request_password,
45+
request_enabled,
46+
request_from_email,
47+
request_port,
48+
request_use_auth,
49+
request_starttls,
50+
request_default_email_pattern,
51+
request_base_url
52+
)
53+
ON DUPLICATE KEY UPDATE
54+
host= IF(request_host = '', host, request_host),
55+
user = IF(request_user = '', user, request_user),
56+
password = IF(request_password = '', password, request_password),
57+
enabled = IF(request_enabled = '', enabled, request_enabled),
58+
from_email = IF(request_from_email = '', from_email, request_from_email),
59+
port = IF(request_port = '', port, request_port),
60+
use_auth = IF (request_use_auth='', use_auth, request_use_auth),
61+
starttls = IF (request_starttls='', starttls, request_starttls),
62+
default_email_pattern = request_default_email_pattern,
63+
base_url = apply_or_remove_value(request_base_url, base_url)
64+
;
65+
66+
SET @insert_id = IF(request_id = '', (SELECT LAST_INSERT_ID()), request_id);
67+
SELECT * from email_settings where id = @insert_id;
68+
END
69+
</sql>
70+
<rollback>
71+
DROP procedure IF EXISTS `INSERT_EMAIL_SETTINGS`;
72+
73+
#
74+
75+
CREATE PROCEDURE `INSERT_EMAIL_SETTINGS`(
76+
IN request_id VARCHAR(11),
77+
IN request_host VARCHAR(100),
78+
IN request_port varchar(4),
79+
IN request_user VARCHAR(100),
80+
IN request_from_email VARCHAR(100),
81+
IN request_password VARCHAR(1000),
82+
IN request_enabled varchar(1),
83+
IN request_use_auth varchar(1),
84+
IN request_default_email_pattern varchar(50),
85+
IN request_base_url varchar(500))
86+
BEGIN
87+
INSERT INTO email_settings (id, host, user, password, enabled, from_email, port, use_auth, default_email_pattern, base_url)
88+
VALUES (
89+
request_id,
90+
request_host,
91+
request_user,
92+
request_password,
93+
request_enabled,
94+
request_from_email,
95+
request_port,
96+
request_use_auth,
97+
request_default_email_pattern,
98+
request_base_url
99+
)
100+
ON DUPLICATE KEY UPDATE
101+
host= IF(request_host = '', host, request_host),
102+
user = IF(request_user = '', user, request_user),
103+
password = IF(request_password = '', password, request_password),
104+
enabled = IF(request_enabled = '', enabled, request_enabled),
105+
from_email = IF(request_from_email = '', from_email, request_from_email),
106+
port = IF(request_port = '', port, request_port),
107+
use_auth = IF (request_use_auth='', use_auth, request_use_auth),
108+
default_email_pattern = request_default_email_pattern,
109+
base_url = apply_or_remove_value(request_base_url, base_url)
110+
;
111+
112+
SET @insert_id = IF(request_id = '', (SELECT LAST_INSERT_ID()), request_id);
113+
SELECT * from email_settings where id = @insert_id;
114+
END
115+
</rollback>
116+
</changeSet>
117+
</databaseChangeLog>

0 commit comments

Comments
 (0)