Saifulhuq01 commented on code in PR #5417:
URL: https://github.com/apache/fineract/pull/5417#discussion_r2749745620
##########
fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java:
##########
@@ -124,42 +125,67 @@ public EmailData retrieveOne(final Long resourceId) {
@Override
public Collection<EmailData> retrieveAllPending(final SearchParameters
searchParameters) {
- final String sqlPlusLimit = (searchParameters.getLimit() > 0) ? " " +
sqlGenerator.limit(searchParameters.getLimit()) : "";
- final String sql = "select " + this.emailRowMapper.schema() + " where
emo.status_enum =? " + sqlPlusLimit;
+ String sql = "select " + this.emailRowMapper.schema() + " where
emo.status_enum = ?";
+ List<Object> params = new ArrayList<>();
+ params.add(EmailMessageStatusType.PENDING.getValue());
- return this.jdbcTemplate.query(sql, this.emailRowMapper,
EmailMessageStatusType.PENDING.getValue()); // NOSONAR
+ if (searchParameters.getLimit() > 0) {
+ sql += " " + sqlGenerator.limit(searchParameters.getLimit());
+ }
+
+ return this.jdbcTemplate.query(sql, this.emailRowMapper,
params.toArray());
}
@Override
public Collection<EmailData> retrieveAllSent(final SearchParameters
searchParameters) {
- final String sqlPlusLimit = (searchParameters.getLimit() > 0) ? " " +
sqlGenerator.limit(searchParameters.getLimit()) : "";
- final String sql = "select " + this.emailRowMapper.schema() + " where
emo.status_enum = ?" + sqlPlusLimit;
+ String sql = "select " + this.emailRowMapper.schema() + " where
emo.status_enum = ?";
+ List<Object> params = new ArrayList<>();
+ params.add(EmailMessageStatusType.SENT.getValue());
+
+ if (searchParameters.getLimit() > 0) {
+ sql += " " + sqlGenerator.limit(searchParameters.getLimit());
+ }
- return this.jdbcTemplate.query(sql, this.emailRowMapper,
EmailMessageStatusType.SENT.getValue()); // NOSONAR
+ return this.jdbcTemplate.query(sql, this.emailRowMapper,
params.toArray());
}
@Override
public List<Long> retrieveExternalIdsOfAllSent(final Integer limit) {
- final String sqlPlusLimit = (limit > 0) ? " " +
sqlGenerator.limit(limit) : "";
- final String sql = "select external_id from " +
this.emailRowMapper.tableName() + " where status_enum =? " + sqlPlusLimit;
+ String sql = "select external_id from " +
this.emailRowMapper.tableName() + " where status_enum = ?";
+ List<Object> params = new ArrayList<>();
+ params.add(EmailMessageStatusType.SENT.getValue());
- return this.jdbcTemplate.queryForList(sql, Long.class,
EmailMessageStatusType.SENT.getValue()); // NOSONAR
+ if (limit > 0) {
+ sql += " " + sqlGenerator.limit(limit);
+ }
+
+ return this.jdbcTemplate.queryForList(sql, Long.class,
params.toArray());
}
@Override
public Collection<EmailData> retrieveAllDelivered(final Integer limit) {
- final String sqlPlusLimit = (limit > 0) ? " " +
sqlGenerator.limit(limit) : "";
- final String sql = "select " + this.emailRowMapper.schema() + " where
emo.status_enum = ?" + sqlPlusLimit;
+ String sql = "select " + this.emailRowMapper.schema() + " where
emo.status_enum = ?";
+ List<Object> params = new ArrayList<>();
+ params.add(EmailMessageStatusType.DELIVERED.getValue());
+
+ if (limit > 0) {
+ sql += " " + sqlGenerator.limit(limit);
+ }
- return this.jdbcTemplate.query(sql, this.emailRowMapper,
EmailMessageStatusType.DELIVERED.getValue()); // NOSONAR
+ return this.jdbcTemplate.query(sql, this.emailRowMapper,
params.toArray());
}
@Override
public Collection<EmailData> retrieveAllFailed(final SearchParameters
searchParameters) {
- final String sqlPlusLimit = (searchParameters.getLimit() > 0) ? " " +
sqlGenerator.limit(searchParameters.getLimit()) : "";
- final String sql = "select " + this.emailRowMapper.schema() + " where
emo.status_enum = ?" + sqlPlusLimit;
+ String sql = "select " + this.emailRowMapper.schema() + " where
emo.status_enum = ?";
Review Comment:
> I see a pattern here i think you can create helper function here
Good catch. I have refactored the duplicate logic into a private helper
method retrieveEmailByStatus to reduce code repetition
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]