Skip to content

Commit 844225a

Browse files
committed
minor version changes
1 parent baeca89 commit 844225a

File tree

5 files changed

+148
-2
lines changed

5 files changed

+148
-2
lines changed

ipp-v3-java-devkit/src/main/java/com/intuit/ipp/interceptors/PrepareRequestInterceptor.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@ private <T extends IEntity> String prepareQBOUri(String entityName, Context cont
287287
uri.append(getBaseUrl(Config.getProperty(Config.BASE_URL_QBO))).append("/").append(context.getRealmID()).append("/").append(entityName);
288288
addEntityID(requestParameters, uri);
289289
addEntitySelector(requestParameters, uri);
290+
addParentID(requestParameters, uri);
290291

291292
// adds the built request param
292293
/* if(requestParameters.equals("updateaccountontxns"))
@@ -304,7 +305,7 @@ private <T extends IEntity> String prepareQBOUri(String entityName, Context cont
304305

305306
if(context.getMinorVersion() == null)
306307
{
307-
context.setMinorVersion("33");
308+
context.setMinorVersion("34");
308309
}
309310

310311
uri.append("minorversion").append("=").append(context.getMinorVersion()).append("&");
@@ -346,6 +347,12 @@ private void addEntitySelector(Map<String, String> requestParameters, StringBuil
346347
uri.append("/").append(requestParameters.get(RequestElements.REQ_PARAM_ENTITY_SELECTOR));
347348
}
348349
}
350+
351+
private void addParentID(Map<String, String> requestParameters, StringBuilder uri) {
352+
if (StringUtils.hasText(requestParameters.get(RequestElements.REQ_PARAM_PARENT_ID))) {
353+
uri.append("/").append(requestParameters.get(RequestElements.REQ_PARAM_PARENT_ID)).append("/children");
354+
}
355+
}
349356

350357
/**
351358
* Method to construct the OLB QBO URI
@@ -463,6 +470,7 @@ private boolean isKeyValueExpected(String key) {
463470
|| key.equals(RequestElements.REQ_PARAM_START_POS)
464471
|| key.equals(RequestElements.REQ_PARAM_MAX_RESULTS)
465472
|| key.equals(RequestElements.REQ_PARAM_SENDTO)
473+
|| key.equals(RequestElements.REQ_PARAM_LEVEL)
466474
|| key.equals(RequestElements.REPORT_PARAM_START_DT)
467475
|| key.equals(RequestElements.REPORT_PARAM_END_DT)
468476
|| key.equals(RequestElements.REPORT_PARAM_DT_MACRO)

ipp-v3-java-devkit/src/main/java/com/intuit/ipp/interceptors/RequestElements.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@ public class RequestElements {
8585
* variable REQ_PARAM_ENTITY_SELECTOR
8686
*/
8787
public static final String REQ_PARAM_ENTITY_SELECTOR = "selector";
88+
89+
public static final String REQ_PARAM_PARENT_ID = "parentid";
90+
91+
public static final String REQ_PARAM_LEVEL = "level";
8892

8993
/**
9094
* variable REQ_PARAM_QUERY

ipp-v3-java-devkit/src/main/java/com/intuit/ipp/serialization/JsonResourceTypeLocator.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
import com.intuit.ipp.data.SyncObject;
7373
import com.intuit.ipp.data.Task;
7474
import com.intuit.ipp.data.TaxAgency;
75+
import com.intuit.ipp.data.TaxClassification;
7576
import com.intuit.ipp.data.TaxCode;
7677
import com.intuit.ipp.data.TaxRate;
7778
import com.intuit.ipp.data.TaxService;
@@ -159,6 +160,7 @@ private JsonResourceTypeLocator() {
159160
put("SyncErrorResponse", SyncErrorResponse.class);
160161
put("Task", Task.class);
161162
put("TaxAgency", TaxAgency.class);
163+
put("TaxClassification", TaxClassification.class);
162164
put("TaxCode", TaxCode.class);
163165
put("TaxRate", TaxRate.class);
164166
put("TaxService", TaxService.class);

ipp-v3-java-devkit/src/main/java/com/intuit/ipp/services/DataService.java

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,14 @@ public <T extends IEntity> List<T> findAll(T entity) throws FMSException {
116116
QueryResult result = executeQuery(intuitQuery);
117117
return (List<T>) result.getEntities();
118118
}
119+
120+
@SuppressWarnings("unchecked")
121+
public QueryResult findAllTaxClassification() throws FMSException {
122+
123+
String intuitQuery = "SELECT * FROM TaxClassification";
124+
QueryResult result = executeQuery(intuitQuery);
125+
return result;
126+
}
119127

120128
/**
121129
* Method to add the given entity
@@ -279,6 +287,63 @@ public <T extends IEntity> T findById(T entity) throws FMSException {
279287
}
280288
return returnEntity;
281289
}
290+
291+
/**
292+
* Method to find the record for the given id for the corresponding entity
293+
*
294+
* @param entity
295+
* @return returns the entity
296+
* @throws FMSException
297+
*/
298+
@SuppressWarnings("unchecked")
299+
public QueryResult findTaxClassificationByParentId(IEntity entity) throws FMSException {
300+
301+
IntuitMessage intuitMessage = prepareFindByParentId(entity);
302+
303+
//execute interceptors
304+
executeInterceptors(intuitMessage);
305+
306+
QueryResult queryResult = null;
307+
308+
// Iterate the IntuitObjects list in QueryResponse and convert to <T> entity
309+
IntuitResponse intuitResponse = (IntuitResponse) intuitMessage.getResponseElements().getResponse();
310+
if (intuitResponse != null) {
311+
QueryResponse queryResponse = intuitResponse.getQueryResponse();
312+
if (queryResponse != null) {
313+
queryResult = getQueryResult(queryResponse);
314+
}
315+
}
316+
return queryResult;
317+
}
318+
319+
/**
320+
* Method to find the record for the given id for the corresponding entity
321+
*
322+
* @param entity
323+
* @return returns the entity
324+
* @throws FMSException
325+
*/
326+
@SuppressWarnings("unchecked")
327+
public QueryResult findTaxClassificationByLevel(IEntity entity) throws FMSException {
328+
329+
IntuitMessage intuitMessage = prepareFindByLevel(entity);
330+
331+
//execute interceptors
332+
executeInterceptors(intuitMessage);
333+
334+
QueryResult queryResult = null;
335+
336+
// Iterate the IntuitObjects list in QueryResponse and convert to <T> entity
337+
IntuitResponse intuitResponse = (IntuitResponse) intuitMessage.getResponseElements().getResponse();
338+
if (intuitResponse != null) {
339+
QueryResponse queryResponse = intuitResponse.getQueryResponse();
340+
if (queryResponse != null) {
341+
queryResult = getQueryResult(queryResponse);
342+
}
343+
}
344+
return queryResult;
345+
}
346+
282347

283348

284349
/**
@@ -1107,6 +1172,73 @@ private <T extends IEntity> IntuitMessage prepareFindById(T entity) throws FMSEx
11071172
return intuitMessage;
11081173
}
11091174

1175+
private <T extends IEntity> IntuitMessage prepareFindByLevel(T entity) throws FMSException {
1176+
Class<?> objectClass = entity.getClass();
1177+
Object level = null;
1178+
Method m;
1179+
1180+
try {
1181+
m = objectClass.getMethod("getLevel");
1182+
level = m.invoke(entity);
1183+
} catch (Exception e) {
1184+
throw new FMSException("Unable to read the method getId", e);
1185+
}
1186+
1187+
// The preferences/companyInfo check is to skip the Id null validation as it is not required for Preferences/CompanyInfo Read operation
1188+
if (level == null) {
1189+
throw new FMSException("level is required.");
1190+
}
1191+
1192+
IntuitMessage intuitMessage = new IntuitMessage();
1193+
RequestElements requestElements = intuitMessage.getRequestElements();
1194+
1195+
//set the request params
1196+
Map<String, String> requestParameters = requestElements.getRequestParameters();
1197+
requestParameters.put(RequestElements.REQ_PARAM_METHOD_TYPE, MethodType.GET.toString());
1198+
requestParameters.put(RequestElements.REQ_PARAM_LEVEL, level.toString());
1199+
1200+
requestElements.setContext(context);
1201+
requestElements.setEntity(entity);
1202+
1203+
return intuitMessage;
1204+
}
1205+
1206+
private <T extends IEntity> IntuitMessage prepareFindByParentId(T entity) throws FMSException {
1207+
Class<?> objectClass = entity.getClass();
1208+
Class<?> parentClass;
1209+
Object parentRef = null;
1210+
Object parentId = null;
1211+
Method m;
1212+
1213+
try {
1214+
m = objectClass.getMethod("getParentRef");
1215+
parentRef = m.invoke(entity);
1216+
parentClass = parentRef.getClass();
1217+
m = parentClass.getMethod("getValue");
1218+
parentId = m.invoke(parentRef);
1219+
} catch (Exception e) {
1220+
throw new FMSException("Unable to read the method getId", e);
1221+
}
1222+
1223+
// The preferences/companyInfo check is to skip the Id null validation as it is not required for Preferences/CompanyInfo Read operation
1224+
if (parentId == null) {
1225+
throw new FMSException("parentId is required.");
1226+
}
1227+
1228+
IntuitMessage intuitMessage = new IntuitMessage();
1229+
RequestElements requestElements = intuitMessage.getRequestElements();
1230+
1231+
//set the request params
1232+
Map<String, String> requestParameters = requestElements.getRequestParameters();
1233+
requestParameters.put(RequestElements.REQ_PARAM_METHOD_TYPE, MethodType.GET.toString());
1234+
requestParameters.put(RequestElements.REQ_PARAM_PARENT_ID, parentId.toString());
1235+
1236+
requestElements.setContext(context);
1237+
requestElements.setEntity(entity);
1238+
1239+
return intuitMessage;
1240+
}
1241+
11101242
private <T extends IEntity> IntuitMessage prepareEntitlementsRequest() throws FMSException {
11111243

11121244
IntuitMessage intuitMessage = new IntuitMessage();

ipp-v3-java-devkit/src/test/java/com/intuit/ipp/interceptors/PrepareRequestInterceptorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public void tearDown() {
5353
public void testExecute_QBO_URI() throws FMSException {
5454
instance.execute(message);
5555
String actual = message.getRequestElements().getRequestParameters().get("uri");
56-
Assert.assertEquals(actual, Config.getProperty(Config.BASE_URL_QBO) + "/fakeRealm/fakeAction?requestid=anyRequestID&minorversion=33&");
56+
Assert.assertEquals(actual, Config.getProperty(Config.BASE_URL_QBO) + "/fakeRealm/fakeAction?requestid=anyRequestID&minorversion=34&");
5757
}
5858

5959

0 commit comments

Comments
 (0)