All Downloads are FREE. Search and download functionalities are using the official Maven repository.

twitter4jads.models.ads.audience.AudienceApiResponse Maven / Gradle / Ivy

The newest version!
package twitter4jads.models.ads.audience;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import twitter4jads.ErrorResponse;
import twitter4jads.models.ads.RequestParameters;
import twitter4jads.internal.models4j.RateLimitStatus;

import java.lang.reflect.Type;
import java.util.List;

/**
 * Twitter V4 Audience API response
 *
 *
 * @date 25/11/18
 * @time 9:32 PM
 */
public class AudienceApiResponse {

    @SerializedName("operation_errors")
    List> operationErrors;
    @JsonAdapter(RequestListAdapter.class)
    @SerializedName("request")
    private List request;
    @SerializedName("data")
    private NewAudienceApiResponseData data;
    @SerializedName("errors")
    private List errors;
    private RateLimitStatus rateLimitStatus;

    public List getRequest() {
        return request;
    }

    public void setRequest(List request) {
        this.request = request;
    }

    public NewAudienceApiResponseData getData() {
        return data;
    }

    public void setData(NewAudienceApiResponseData data) {
        this.data = data;
    }

    public List getErrors() {
        return errors;
    }

    public void setErrors(List errors) {
        this.errors = errors;
    }

    public List> getOperationErrors() {
        return operationErrors;
    }

    public void setOperationErrors(List> operationErrors) {
        this.operationErrors = operationErrors;
    }

    public RateLimitStatus getRateLimitStatus() {
        return rateLimitStatus;
    }

    public void setRateLimitStatus(RateLimitStatus rateLimitStatus) {
        this.rateLimitStatus = rateLimitStatus;
    }

    public static class NewAudienceApiResponseData {

        @SerializedName("success_count")
        private Long successCount;

        @SerializedName("total_count")
        private Long totalCount;

        public Long getSuccessCount() {
            return successCount;
        }

        public void setSuccessCount(Long successCount) {
            this.successCount = successCount;
        }

        public Long getTotalCount() {
            return totalCount;
        }

        public void setTotalCount(Long totalCount) {
            this.totalCount = totalCount;
        }
    }

    /**
     * on success request is returned as object and on failure as list
     */
    public static class RequestListAdapter implements JsonDeserializer> {

        @Override
        public List deserialize(JsonElement element, Type type, JsonDeserializationContext context) {
            if (!element.isJsonArray()) {
                JsonArray array = new JsonArray();
                array.add(element);
                element = array;
            }

            return new Gson().fromJson(element, type);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy