Skip to content

Commit 6c356a6

Browse files
author
Rajithkonara
committed
return requests with offset and limit
1 parent b32332a commit 6c356a6

File tree

3 files changed

+98
-5
lines changed

3 files changed

+98
-5
lines changed

dep-sandbox/src/main/java/com/wso2telco/services/dep/sandbox/dao/LoggingDAO.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,7 @@ public interface LoggingDAO {
1212
public int saveMessageLog(MessageLog messageLog) throws Exception;
1313

1414
public List<MessageLog> getMessageLogs(int userid, List<Integer> serviceNameIds, String reference, String value, Date startTimeStamp, Date endTimeStamp) throws Exception;
15-
15+
16+
public List<MessageLog> getResponseLists(int userid, List<Integer> serviceNameIds, String reference, String value, Date startTimeStamp, Date endTimeStamp, int offSet, int limit) throws Exception;
17+
1618
}

dep-sandbox/src/main/java/com/wso2telco/services/dep/sandbox/dao/hibernate/HibernateLoggingDao.java

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,84 @@ public List<MessageLog> getMessageLogs(int userid, List<Integer> serviceNameIds,
109109
}
110110
}
111111

112+
@Override
113+
public List<MessageLog> getResponseLists(int userid, List<Integer> serviceNameIds, String ref, String val, Date startTimeStamp, Date endTimeStamp, int offSet, int limit) throws Exception {
114+
Session session = getSession();
115+
Map<String, Object> parameterMap = new HashMap<String, Object>();
116+
List<MessageLog> messageLogs = new ArrayList<MessageLog>();
117+
String reference = CommonUtil.getNullOrTrimmedValue(ref);
118+
String value = CommonUtil.getNullOrTrimmedValue(val);
119+
try {
120+
StringBuilder hqlQueryBuilder = new StringBuilder();
121+
hqlQueryBuilder.append("from MessageLog ml ");
122+
hqlQueryBuilder.append("where 1=1 ");
123+
124+
if(userid != 0){
125+
hqlQueryBuilder.append(" AND ml.userid = :id");
126+
parameterMap.put("id", userid);
127+
128+
}
129+
130+
if(serviceNameIds != null){
131+
hqlQueryBuilder.append(" AND ml.servicenameid in (:servicenameidList)");
132+
parameterMap.put("servicenameidList", serviceNameIds);
133+
}
134+
135+
if(reference != null && value != null){
136+
hqlQueryBuilder.append(" AND ml.reference = :reference AND ml.value = :value");
137+
parameterMap.put("reference", reference);
138+
parameterMap.put("value", value);
139+
}
140+
141+
if(startTimeStamp != null && endTimeStamp != null){
142+
hqlQueryBuilder.append(" AND ml.messageTimestamp between :startTimeStamp and :endTimeStamp");
143+
parameterMap.put("startTimeStamp", startTimeStamp);
144+
parameterMap.put("endTimeStamp", endTimeStamp);
145+
146+
}else if(startTimeStamp != null){
147+
hqlQueryBuilder.append(" AND ml.messageTimestamp >= :startTimeStamp");
148+
parameterMap.put("startTimeStamp", startTimeStamp);
149+
if(endTimeStamp != null){
150+
hqlQueryBuilder.append(" AND ml.messageTimestamp <= :endTimeStamp");
151+
parameterMap.put("endTimeStamp", endTimeStamp);
152+
}
153+
}else if(endTimeStamp != null){
154+
hqlQueryBuilder.append(" AND ml.messageTimestamp <= :endTimeStamp");
155+
parameterMap.put("endTimeStamp", endTimeStamp);
156+
}
157+
158+
Query query = session.createQuery(hqlQueryBuilder.toString());
159+
160+
if (offSet > 0) {
161+
query.setFirstResult(offSet);
162+
}
163+
164+
if (limit > 0) {
165+
query.setMaxResults(limit);
166+
}
167+
168+
Set<Entry<String, Object>> entrySet = parameterMap.entrySet();
169+
170+
for (Entry<String, Object> entry : entrySet) {
171+
if(entry.getValue() instanceof List ){
172+
query.setParameterList(entry.getKey(), (List)entry.getValue());
173+
}else{
174+
query.setParameter(entry.getKey(), entry.getValue());
175+
}
176+
177+
}
178+
179+
messageLogs = (List<MessageLog>) query.getResultList();
180+
181+
} catch (Exception ex) {
182+
LOG.error("Error in getMessageLogs " , ex);
183+
throw ex;
184+
}
185+
if (messageLogs==null){
186+
return Collections.emptyList();
187+
}else{
188+
return messageLogs;
189+
}
190+
}
191+
112192
}

dep-sandbox/src/main/java/com/wso2telco/services/dep/sandbox/servicefactory/payment/PaymentListTransactionRequestHandler.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,15 @@ protected List<String> getAddress() {
7474
protected boolean validate(PaymentListTransactionRequestWrapper wrapperDTO) throws Exception {
7575

7676
String endUserId = CommonUtil.getNullOrTrimmedValue(wrapperDTO.getEndUserId());
77-
77+
String offset = CommonUtil.getNullOrTrimmedValue(wrapperDTO.getOffSet());
78+
String limit = CommonUtil.getNullOrTrimmedValue(wrapperDTO.getLimit());
7879
try {
79-
ValidationRule[] validationRules = {new ValidationRule(
80-
ValidationRule.VALIDATION_TYPE_MANDATORY_TEL_END_USER_ID, "endUserId", endUserId)};
80+
ValidationRule[] validationRules = {
81+
new ValidationRule(ValidationRule.VALIDATION_TYPE_MANDATORY_TEL_END_USER_ID, "endUserId", endUserId),
82+
new ValidationRule(ValidationRule.VALIDATION_TYPE_OPTIONAL_INT_GE_ZERO, "offset", offset ),
83+
new ValidationRule(ValidationRule.VALIDATION_TYPE_OPTIONAL_INT_GE_ZERO, "limit", limit)
84+
};
85+
8186

8287
Validation.checkRequestParams(validationRules);
8388
} catch (CustomException ex) {
@@ -103,6 +108,10 @@ protected Returnable process(PaymentListTransactionRequestWrapper extendedReques
103108
String msisdn = extendedRequestDTO.getEndUserId();
104109
String endUserId = getLastMobileNumber(msisdn);
105110
Integer userId = extendedRequestDTO.getUser().getId();
111+
Integer offset = CommonUtil
112+
.convertStringToInteger(extendedRequestDTO.getOffSet());
113+
Integer limit = CommonUtil
114+
.convertStringToInteger(extendedRequestDTO.getLimit());
106115

107116
String serviceCallPayment = ServiceName.ChargeUser.toString();
108117
String serviceCallRefund = ServiceName.RefundUser.toString();
@@ -123,7 +132,9 @@ protected Returnable process(PaymentListTransactionRequestWrapper extendedReques
123132

124133
PaymentListTransactionResponseBean paymentTransaction = new PaymentListTransactionResponseBean();
125134
List<JsonNode> listNodes = new ArrayList<JsonNode>();
126-
List<MessageLog> responses = loggingDAO.getMessageLogs(userId, list, "msisdn", "tel:+" + endUserId, null, null);
135+
List<MessageLog> responses = loggingDAO.getResponseLists(userId, list, "msisdn", "tel:+" + endUserId, null, null, offset, limit
136+
137+
);
127138

128139
String jsonString = null;
129140

0 commit comments

Comments
 (0)