FINERACT-2459: Refactor SmsReadPlatformServiceImpl to use Prepared Statements

This commit is contained in:
saifulhuq01
2026-02-02 18:59:51 +01:00
committed by Adam Saghy
parent 007187111d
commit b107acb005
@@ -22,6 +22,7 @@ import jakarta.annotation.PostConstruct;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@@ -131,14 +132,18 @@ public class SmsReadPlatformServiceImpl implements SmsReadPlatformService {
@Override @Override
public List<SmsData> retrieveAllPending(final Long campaignId, final Integer limit) { public List<SmsData> retrieveAllPending(final Long campaignId, final Integer limit) {
final String sqlPlusLimit = limit > 0 ? " " + sqlGenerator.limit(limit) : ""; final String sqlPlusLimit = limit > 0 ? " " + sqlGenerator.limit(limit) : "";
String sql = "select " + this.smsRowMapper.schema() + " where smo.status_enum = " + SmsMessageStatusType.PENDING.getValue(); String sql = "select " + this.smsRowMapper.schema() + " where smo.status_enum = ?";
List<Object> params = new ArrayList<>();
params.add(SmsMessageStatusType.PENDING.getValue());
if (campaignId != null) { if (campaignId != null) {
sql += " and smo.campaign_id = " + campaignId; sql += " and smo.campaign_id = ?";
params.add(campaignId);
} }
sql += sqlPlusLimit; sql += sqlPlusLimit;
return this.jdbcTemplate.query(sql, this.smsRowMapper); // NOSONAR return this.jdbcTemplate.query(sql, this.smsRowMapper, params.toArray()); // NOSONAR
} }
@Override @Override