Skip to content

Commit 685889e

Browse files
Merge pull request #140 from intuit/v6.0.8
Updated deserializer for recurring transactions
2 parents ff62c9a + 3c542cf commit 685889e

File tree

13 files changed

+69
-88
lines changed

13 files changed

+69
-88
lines changed

ipp-v3-java-data/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>com.intuit.quickbooks-online</groupId>
66
<artifactId>ipp-v3-java-devkit-pom</artifactId>
7-
<version>6.0.7</version>
7+
<version>6.0.8</version>
88
</parent>
99

1010
<artifactId>ipp-v3-java-data</artifactId>

ipp-v3-java-devkit/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<artifactId>ipp-v3-java-devkit-pom</artifactId>
66
<groupId>com.intuit.quickbooks-online</groupId>
7-
<version>6.0.7</version>
7+
<version>6.0.8</version>
88
</parent>
99

1010
<artifactId>ipp-v3-java-devkit</artifactId>
@@ -22,7 +22,7 @@
2222
<dependency>
2323
<groupId>com.intuit.quickbooks-online</groupId>
2424
<artifactId>ipp-v3-java-data</artifactId>
25-
<version>6.0.7</version>
25+
<version>6.0.8</version>
2626
</dependency>
2727
<dependency>
2828
<groupId>cglib</groupId>

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

Lines changed: 3 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -15,80 +15,11 @@
1515
*******************************************************************************/
1616
package com.intuit.ipp.serialization;
1717

18+
import java.lang.Class;
1819
import java.util.HashMap;
1920
import java.util.Map;
2021

21-
import com.intuit.ipp.data.Account;
22-
import com.intuit.ipp.data.Attachable;
23-
import com.intuit.ipp.data.AttachableResponse;
24-
import com.intuit.ipp.data.BatchItemResponse;
25-
import com.intuit.ipp.data.Bill;
26-
import com.intuit.ipp.data.BillPayment;
27-
import com.intuit.ipp.data.Budget;
28-
import com.intuit.ipp.data.Company;
29-
import com.intuit.ipp.data.CompanyCurrency;
30-
import com.intuit.ipp.data.CompanyInfo;
31-
import com.intuit.ipp.data.CreditCardPaymentTxn;
32-
import com.intuit.ipp.data.CreditMemo;
33-
import com.intuit.ipp.data.Currency;
34-
import com.intuit.ipp.data.CustomField;
35-
import com.intuit.ipp.data.CustomFieldDefinition;
36-
import com.intuit.ipp.data.Customer;
37-
import com.intuit.ipp.data.CustomerMsg;
38-
import com.intuit.ipp.data.CustomerType;
39-
import com.intuit.ipp.data.Department;
40-
import com.intuit.ipp.data.Deposit;
41-
import com.intuit.ipp.data.Employee;
42-
import com.intuit.ipp.data.Estimate;
43-
import com.intuit.ipp.data.ExchangeRate;
44-
import com.intuit.ipp.data.FixedAsset;
45-
import com.intuit.ipp.data.InventorySite;
46-
import com.intuit.ipp.data.Invoice;
47-
import com.intuit.ipp.data.Item;
48-
import com.intuit.ipp.data.JobType;
49-
import com.intuit.ipp.data.JournalCode;
50-
import com.intuit.ipp.data.JournalEntry;
51-
import com.intuit.ipp.data.Money;
52-
import com.intuit.ipp.data.OLBStatus;
53-
import com.intuit.ipp.data.OLBTransaction;
54-
import com.intuit.ipp.data.OtherName;
55-
import com.intuit.ipp.data.Payment;
56-
import com.intuit.ipp.data.PaymentMethod;
57-
import com.intuit.ipp.data.Preferences;
58-
import com.intuit.ipp.data.PriceLevel;
59-
import com.intuit.ipp.data.PriceLevelPerItem;
60-
import com.intuit.ipp.data.Purchase;
61-
import com.intuit.ipp.data.PurchaseOrder;
62-
import com.intuit.ipp.data.QueryResponse;
63-
import com.intuit.ipp.data.RefundReceipt;
64-
import com.intuit.ipp.data.SalesOrder;
65-
import com.intuit.ipp.data.SalesReceipt;
66-
import com.intuit.ipp.data.SalesRep;
67-
import com.intuit.ipp.data.ShipMethod;
68-
import com.intuit.ipp.data.StatementCharge;
69-
import com.intuit.ipp.data.Status;
70-
import com.intuit.ipp.data.SyncActivity;
71-
import com.intuit.ipp.data.SyncError;
72-
import com.intuit.ipp.data.SyncErrorResponse;
73-
import com.intuit.ipp.data.SyncObject;
74-
import com.intuit.ipp.data.Task;
75-
import com.intuit.ipp.data.TaxAgency;
76-
import com.intuit.ipp.data.TaxClassification;
77-
import com.intuit.ipp.data.TaxCode;
78-
import com.intuit.ipp.data.TaxPayment;
79-
import com.intuit.ipp.data.TaxRate;
80-
import com.intuit.ipp.data.TaxService;
81-
import com.intuit.ipp.data.TemplateName;
82-
import com.intuit.ipp.data.Term;
83-
import com.intuit.ipp.data.TimeActivity;
84-
import com.intuit.ipp.data.Transaction;
85-
import com.intuit.ipp.data.Transfer;
86-
import com.intuit.ipp.data.UOM;
87-
import com.intuit.ipp.data.User;
88-
import com.intuit.ipp.data.UserAlert;
89-
import com.intuit.ipp.data.Vendor;
90-
import com.intuit.ipp.data.VendorCredit;
91-
import com.intuit.ipp.data.VendorType;
22+
import com.intuit.ipp.data.*;
9223

9324
/**
9425
* Class to hold the resource type locators for JSON to deserialize
@@ -150,6 +81,7 @@ private JsonResourceTypeLocator() {
15081
put("OLBTransaction", OLBTransaction.class);
15182
put("OtherName", OtherName.class);
15283
put("QueryResponse", QueryResponse.class);
84+
put("RecurringTransaction", RecurringTransaction.class);
15385
put("RefundReceipt", RefundReceipt.class);
15486
put("SalesOrder", SalesOrder.class);
15587
put("SalesReceipt", SalesReceipt.class);

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

Lines changed: 54 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,7 @@
3434
import com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair;
3535
import com.fasterxml.jackson.databind.DeserializationFeature;
3636

37-
import com.intuit.ipp.data.CustomFieldDefinition;
38-
import com.intuit.ipp.data.Fault;
39-
import com.intuit.ipp.data.IntuitEntity;
40-
import com.intuit.ipp.data.ObjectFactory;
41-
import com.intuit.ipp.data.QueryResponse;
37+
import com.intuit.ipp.data.*;
4238
import com.intuit.ipp.util.Logger;
4339

4440
/**
@@ -76,6 +72,11 @@ public class QueryResponseDeserializer extends JsonDeserializer<QueryResponse> {
7672
* variable TOTALCOUNT
7773
*/
7874
private static final String TOTALCOUNT = "totalCount";
75+
76+
/**
77+
* variable RECURRINGTXN
78+
*/
79+
private static final String RECURRINGTXN = "RecurringTransaction";
7980

8081
/**
8182
* variable objFactory
@@ -116,6 +117,54 @@ public QueryResponse deserialize(JsonParser jp, DeserializationContext desContex
116117
qr.setMaxResults(jn.get(MAXRESULTS).intValue());
117118
} else if (key.equals(TOTALCOUNT)) {
118119
qr.setTotalCount(jn.get(TOTALCOUNT).intValue());
120+
} else if (key.equals(RECURRINGTXN)) {
121+
if (JsonResourceTypeLocator.lookupType(key) != null) {
122+
JsonNode jn1 = jn.get(key);
123+
if (jn1.isArray()) {
124+
Iterator<JsonNode> iteJson = jn1.iterator();
125+
126+
// read the recurring transactions array
127+
while (iteJson.hasNext()) {
128+
129+
RecurringTransaction rt = new RecurringTransaction();
130+
JsonNode jn2 = iteJson.next();
131+
Iterator<JsonNode> iteJson2 = jn2.iterator();
132+
133+
// read the underlying IntuitObject transaction
134+
while (iteJson2.hasNext()) {
135+
Iterator<String> s = jn2.fieldNames();
136+
String rtKey = s.next();
137+
LOG.debug("RecurringTransaction : " + rtKey);
138+
139+
JsonNode jn3 = iteJson2.next();
140+
141+
// set the CustomFieldDefinition deserializer
142+
registerModulesForCustomFieldDef(mapper);
143+
144+
//Force the data to be casted to its type
145+
Object intuitType = mapper.treeToValue(jn3, JsonResourceTypeLocator.lookupType(rtKey));
146+
//Double check
147+
if (intuitType instanceof IntuitEntity) {
148+
intuitResponseDeserializerHelper.updateBigDecimalScale((IntuitEntity) intuitType);
149+
JAXBElement<? extends IntuitEntity> intuitObject = objFactory.createIntuitObject((IntuitEntity) intuitType);
150+
rt.setIntuitObject(intuitObject);
151+
}
152+
}
153+
154+
// set the CustomFieldDefinition deserializer
155+
registerModulesForCustomFieldDef(mapper);
156+
157+
// set the query response object to be the recurring transaction
158+
Object intuitType = rt;
159+
//Double check
160+
if (intuitType instanceof IntuitEntity) {
161+
intuitResponseDeserializerHelper.updateBigDecimalScale((IntuitEntity) intuitType);
162+
JAXBElement<? extends IntuitEntity> intuitObject = objFactory.createIntuitObject((IntuitEntity) intuitType);
163+
qr.getIntuitObject().add(intuitObject);
164+
}
165+
}
166+
}
167+
}
119168
} else {
120169
// It has to be an IntuitEntity
121170
//Check if the entity is in the resource locator

ipp-v3-java-devkit/src/main/resources/ippdevkit.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Devkit Version
44
# This version has to be updated according to the pom version
5-
version = 6.0.7
5+
version = 6.0.8
66

77
# This is to have the request source to be sent to IDS request header
88
request.source = V3JavaSDK

ipp-v3-java-devkit/src/test/resources/ippdevkit.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
### IPP Dev Kit helper properties
22

33
## Devkit version
4-
version = 6.0.6
4+
version = 6.0.8
55

66
# This is to have the request source to be sent to IDS request header
77
request.source = V3JavaSDK

oauth2-platform-api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>ipp-v3-java-devkit-pom</artifactId>
2222
<groupId>com.intuit.quickbooks-online</groupId>
23-
<version>6.0.7</version>
23+
<version>6.0.8</version>
2424
</parent>
2525
<artifactId>oauth2-platform-api</artifactId>
2626
<name>Quickbooks API Helper for OAuth2</name>

oauth2-platform-api/src/main/resources/oauthclient.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ EMAIL=email
3434
INTUIT_NAME=intuit_name
3535

3636
#Version
37-
version=6.0.7
37+
version=6.0.8
3838

3939
#MIGRATION SERVICE URL
4040
OAUTH_MIGRATION_URL_PRODUCTION=https://developer.api.intuit.com/v2/oauth2/tokens/migrate

oauth2-platform-api/src/test/resources/oauthclient.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ EMAIL=email
3434
INTUIT_NAME=intuit_name
3535

3636
#Version
37-
version=6.0.6
37+
version=6.0.8
3838

3939
#MIGRATION SERVICE URL
4040
OAUTH_MIGRATION_URL_PRODUCTION=https://developer.api.intuit.com/v2/oauth2/tokens/migrate

payments-api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<parent>
2020
<artifactId>ipp-v3-java-devkit-pom</artifactId>
2121
<groupId>com.intuit.quickbooks-online</groupId>
22-
<version>6.0.7</version>
22+
<version>6.0.8</version>
2323
</parent>
2424
<artifactId>payments-api</artifactId>
2525
<name>Payments API SDK</name>

0 commit comments

Comments
 (0)