Skip to content

Commit 0839696

Browse files
committed
Added last executed at campaign level.
1 parent ff7725d commit 0839696

12 files changed

Lines changed: 96 additions & 19 deletions

File tree

source/src/main/java/org/cerberus/core/crud/dao/ICampaignDAO.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,12 @@ public interface ICampaignDAO {
9393
*/
9494
Answer delete(Campaign object);
9595

96+
/**
97+
* @param campaign
98+
* @return {@link AnswerItem}
99+
*/
100+
Answer updateLastExecuted(String campaign);
101+
96102
/**
97103
*
98104
* @param fromDate

source/src/main/java/org/cerberus/core/crud/dao/impl/CampaignDAO.java

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ public AnswerItem<Campaign> readByKeyTech(int key) {
187187
query.append("SELECT * FROM campaign cpg WHERE campaignid = ?");
188188

189189
LOG.debug("SQL : {}", query);
190-
190+
191191
try (Connection connection = databaseSpring.connect(); PreparedStatement preStat = connection.prepareStatement(query.toString())) {
192192
preStat.setInt(1, key);
193193
try (ResultSet resultSet = preStat.executeQuery()) {
@@ -239,7 +239,7 @@ public AnswerList<String> readDistinctValuesByCriteria(String searchTerm, Map<St
239239
query.append(" order by ").append(columnName).append(" asc");
240240

241241
LOG.debug("SQL : {}", query);
242-
242+
243243
try (Connection connection = databaseSpring.connect(); PreparedStatement preStat = connection.prepareStatement(query.toString()); Statement stm = connection.createStatement()) {
244244

245245
int i = 1;
@@ -294,7 +294,7 @@ public Answer create(Campaign object) {
294294
.append("VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
295295

296296
LOG.debug("SQL : {}", query);
297-
297+
298298
try (Connection connection = this.databaseSpring.connect(); PreparedStatement preStat = connection.prepareStatement(query.toString())) {
299299

300300
int i = 1;
@@ -382,7 +382,7 @@ public Answer delete(Campaign object) {
382382
final String query = "DELETE FROM campaign WHERE campaignID = ? ";
383383

384384
LOG.debug("SQL : {}", query);
385-
385+
386386
try (Connection connection = this.databaseSpring.connect(); PreparedStatement preStat = connection.prepareStatement(query)) {
387387
preStat.setInt(1, object.getCampaignID());
388388

@@ -397,6 +397,28 @@ public Answer delete(Campaign object) {
397397
return new Answer(msg);
398398
}
399399

400+
@Override
401+
public Answer updateLastExecuted(String campaign) {
402+
MessageEvent msg;
403+
final String query = "UPDATE campaign cpg SET DateLastExecuted = NOW() WHERE campaign = ? ";
404+
405+
LOG.debug("SQL : {}", query);
406+
407+
try (Connection connection = this.databaseSpring.connect(); PreparedStatement preStat = connection.prepareStatement(query)) {
408+
409+
int i = 1;
410+
preStat.setString(i++, campaign);
411+
preStat.executeUpdate();
412+
msg = new MessageEvent(MessageEventEnum.DATA_OPERATION_OK);
413+
msg.setDescription(msg.getDescription().replace("%ITEM%", OBJECT_NAME).replace("%OPERATION%", "UPDATE"));
414+
} catch (SQLException exception) {
415+
LOG.error("Unable to execute query : {}", exception.toString());
416+
msg = new MessageEvent(MessageEventEnum.DATA_OPERATION_ERROR_UNEXPECTED);
417+
msg.setDescription(msg.getDescription().replace("%DESCRIPTION%", exception.toString()));
418+
}
419+
return new Answer(msg);
420+
}
421+
400422
@Override
401423
public Campaign loadFromResultSet(ResultSet rs) throws SQLException {
402424
int campID = ParameterParserUtil.parseIntegerParam(rs.getString("cpg.campaignID"), 0);
@@ -422,11 +444,12 @@ public Campaign loadFromResultSet(ResultSet rs) throws SQLException {
422444
String usrCreated = ParameterParserUtil.parseStringParam(rs.getString("cpg.UsrCreated"), "");
423445
Timestamp dateModif = rs.getTimestamp("cpg.DateModif");
424446
Timestamp dateCreated = rs.getTimestamp("cpg.DateCreated");
447+
Timestamp dateLastExecuted = rs.getTimestamp("cpg.DateLastExecuted");
425448

426449
return factoryCampaign.create(campID, camp,
427450
cIScoreThreshold,
428451
tag, verbose, screenshot, video, pageSource, robotLog, consoleLog, timeout, retries, priority, manualExecution,
429-
desc, longDesc, group1, group2, group3,
452+
desc, longDesc, group1, group2, group3, dateLastExecuted,
430453
usrCreated, dateCreated, usrModif, dateModif);
431454
}
432455

source/src/main/java/org/cerberus/core/crud/entity/Campaign.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public class Campaign implements Serializable {
4848
private String group1;
4949
private String group2;
5050
private String group3;
51+
private Timestamp DateLastExecuted;
5152
private String UsrCreated;
5253
private Timestamp DateCreated;
5354
private String UsrModif;
@@ -237,6 +238,14 @@ public void setCampaign(String campaign) {
237238
this.campaign = campaign;
238239
}
239240

241+
public Timestamp getDateLastExecuted() {
242+
return DateLastExecuted;
243+
}
244+
245+
public void setDateLastExecuted(Timestamp DateLastExecuted) {
246+
this.DateLastExecuted = DateLastExecuted;
247+
}
248+
240249
public String getLongDescription() {
241250
return longDescription;
242251
}

source/src/main/java/org/cerberus/core/crud/factory/IFactoryCampaign.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,6 @@ public interface IFactoryCampaign {
5757
Campaign create(Integer campaignID, String campaign,
5858
String CIScoreThreshold,
5959
String tag, String verbose, String screenshot, String video, String PageSource, String RobotLog, String ConsoleLog, String Timeout, String Retries, String Priority, String ManualExecution,
60-
String description, String longDescription, String group1, String group2, String group3,
60+
String description, String longDescription, String group1, String group2, String group3, Timestamp DateLastExecuted,
6161
String UsrCreated, Timestamp DateCreated, String UsrModif, Timestamp DateModif);
6262
}

source/src/main/java/org/cerberus/core/crud/factory/impl/FactoryCampaign.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class FactoryCampaign implements IFactoryCampaign {
3535
public Campaign create(Integer campaignID, String campaign,
3636
String CIScoreThreshold,
3737
String tag, String verbose, String screenshot, String video, String PageSource, String RobotLog, String ConsoleLog, String Timeout, String Retries, String Priority, String ManualExecution,
38-
String description, String longDescription, String group1, String group2, String group3,
38+
String description, String longDescription, String group1, String group2, String group3, Timestamp DateLastExecuted,
3939
String UsrCreated, Timestamp DateCreated, String UsrModif, Timestamp DateModif) {
4040
Campaign newObject = new Campaign();
4141
newObject.setCampaignID(campaignID);
@@ -61,6 +61,7 @@ public Campaign create(Integer campaignID, String campaign,
6161
newObject.setDateCreated(DateCreated);
6262
newObject.setUsrModif(UsrModif);
6363
newObject.setDateModif(DateModif);
64+
newObject.setDateLastExecuted(DateLastExecuted);
6465

6566
return newObject;
6667
}

source/src/main/java/org/cerberus/core/crud/service/ICampaignService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,12 @@ public interface ICampaignService {
9393
*/
9494
Answer delete(Campaign object);
9595

96+
/**
97+
* @param campaign
98+
* @return {@link AnswerItem}
99+
*/
100+
Answer updateLastExecuted(String campaign);
101+
96102
/**
97103
*
98104
* @param answerItem

source/src/main/java/org/cerberus/core/crud/service/impl/CampaignService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,11 @@ public Answer delete(Campaign object) {
112112

113113
}
114114

115+
@Override
116+
public Answer updateLastExecuted(String campaign) {
117+
return campaignDAO.updateLastExecuted(campaign);
118+
}
119+
115120
@Override
116121
public Campaign convert(AnswerItem<Campaign> answerItem) throws CerberusException {
117122
if (answerItem.isCodeEquals(MessageEventEnum.DATA_OPERATION_OK.getCode())) {

source/src/main/java/org/cerberus/core/crud/service/impl/TagService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,7 @@ public Answer createAuto(String tagS, String campaign, String user, JSONArray re
359359
reqEnvironmentList.toString(), reqCountryList.toString(), "", "", "", "", user, null, user, null);
360360
}
361361
Answer ans = tagDAO.create(newTag);
362+
campaignService.updateLastExecuted(campaign);
362363
// If campaign is not empty, we can notify the Start of campaign execution.
363364
if (!StringUtil.isEmptyOrNull(campaign)) {
364365
eventService.triggerEvent(EventHook.EVENTREFERENCE_CAMPAIGN_START, newTag, null, null, null);

source/src/main/java/org/cerberus/core/database/DocumentationDatabaseService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,8 @@ public ArrayList<String> getSqlDocumentation() {
401401
b.append(",('campaign','Priority','','fr','Priorité','','')");
402402
b.append(",('campaign','ManualExecution','','en','Manual execution','','')");
403403
b.append(",('campaign','ManualExecution','','fr','Exécution manuelle','','')");
404+
b.append(",('campaign','DateLastExecuted','','en','Last executed','','')");
405+
b.append(",('campaign','DateLastExecuted','','fr','Dernière Execution','','')");
404406
b.append(",('comboApplicationType','APK','','en','Android Application','','')");
405407
b.append(",('comboApplicationType','APK','','fr','Application Android','','')");
406408
b.append(",('comboApplicationType','APK','','fa','برنامه کاربردی اندروید','','')");

source/src/main/java/org/cerberus/core/servlet/crud/testcampaign/CreateCampaign.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ final void processRequest(final HttpServletRequest request, final HttpServletRes
133133
Campaign camp = factoryCampaign.create(0, campaignName,
134134
cIScoreThreshold,
135135
tag, verbose, screenshot, video, pageSource, robotLog, consoleLog, timeout, retries, priority, manualExecution,
136-
desc, longDesc, group1, group2, group3,
136+
desc, longDesc, group1, group2, group3, null,
137137
request.getRemoteUser(), null, null, null);
138138

139139
msg = new MessageEvent(MessageEventEnum.DATA_OPERATION_OK);

0 commit comments

Comments
 (0)