sprinklr-inc/twitter4j-ads

GSON errors for 'entity_status ' on Campaign and LineItem

Closed this issue · 5 comments

java.lang.IllegalArgumentException: class twitter4jads.models.ads.Campaign declares multiple JSON fields named entity_status

Managed to patch it locally as follows:

$ git diff
diff --git a/twitter4j-ads/src/twitter4jads/impl/TwitterAdsCampaignApiImpl.java b/twitter4j-ads/src/twitter4jads/impl/TwitterAdsCampaignApiImpl.java
index 86c4fe9..028b88c 100644
--- a/twitter4j-ads/src/twitter4jads/impl/TwitterAdsCampaignApiImpl.java
+++ b/twitter4j-ads/src/twitter4jads/impl/TwitterAdsCampaignApiImpl.java
@@ -154,8 +154,8 @@ public class TwitterAdsCampaignApiImpl implements TwitterAdsCampaignApi {
             String endTime = String.valueOf(df.format(campaign.getEndTime()));
             params.add(new HttpParameter(PARAM_END_TIME, endTime));
         }
-        if (campaign.getEntityStatus() != null) {
-            params.add(new HttpParameter(PARAM_ENTITY_STATUS, campaign.getEntityStatus()));
+        if (campaign.getStatus() != null) {
+            params.add(new HttpParameter(PARAM_ENTITY_STATUS, campaign.getStatus().name()));
         }
         if (campaign.getStandardDelivery() != null) {
             Boolean standardDelivery = campaign.getStandardDelivery();
diff --git a/twitter4j-ads/src/twitter4jads/models/ads/Campaign.java b/twitter4j-ads/src/twitter4jads/models/ads/Campaign.java
index 2764aab..3da2db7 100644
--- a/twitter4j-ads/src/twitter4jads/models/ads/Campaign.java
+++ b/twitter4j-ads/src/twitter4jads/models/ads/Campaign.java
@@ -31,9 +31,6 @@ public class Campaign extends TwitterEntity implements Serializable {
     @SerializedName("deleted")
     private Boolean deleted;
 
-    @SerializedName("entity_status")
-    private String entityStatus;
-
     @SerializedName("servable")
     private Boolean servable;
 
@@ -195,11 +192,11 @@ public class Campaign extends TwitterEntity implements Serializable {
         this.durationInDays = durationInDays;
     }
 
-    public String getEntityStatus() {
-        return entityStatus;
+    public EntityStatus getStatus() {
+      return status;
     }
 
-    public void setEntityStatus(String entityStatus) {
-        this.entityStatus = entityStatus;
+    public void setStatus(EntityStatus status) {
+      this.status = status;
     }
 }
diff --git a/twitter4j-ads/src/twitter4jads/models/ads/LineItem.java b/twitter4j-ads/src/twitter4jads/models/ads/LineItem.java
index 099e514..86f12fa 100644
--- a/twitter4j-ads/src/twitter4jads/models/ads/LineItem.java
+++ b/twitter4j-ads/src/twitter4jads/models/ads/LineItem.java
@@ -40,9 +40,6 @@ public class LineItem extends TwitterEntity {
     @SerializedName("objective")
     private String objective;
 
-    @SerializedName("entity_status")
-    private String entityStatus;
-
     @SerializedName("deleted")
     private Boolean deleted;
 
@@ -329,14 +326,6 @@ public class LineItem extends TwitterEntity {
         this.trackingTags = trackingTags;
     }
 
-    public String getEntityStatus() {
-        return entityStatus;
-    }
-
-    public void setEntityStatus(String entityStatus) {
-        this.entityStatus = entityStatus;
-    }
-
     public Date getStartTime() {
         return startTimeInUTC;
     }

Have pushed a fix and updated the jar. Thanks for pointing it out!

Hi @vinitkataria
Do you have a plan to update the jar on Maven repository? Thanks in advance.

@vinitkataria I don't see a fix committed for LineItem.java