ClassificationsServiceImpl.java 9.48 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.day.cq.wcm.webservicesupport.Configuration
 *  org.apache.felix.scr.annotations.Component
 *  org.apache.felix.scr.annotations.Reference
 *  org.apache.felix.scr.annotations.Service
 *  org.apache.sling.commons.json.JSONArray
 *  org.apache.sling.commons.json.JSONException
 *  org.apache.sling.commons.json.JSONObject
 */
package com.day.cq.analytics.sitecatalyst.impl;

import com.day.cq.analytics.sitecatalyst.ClassificationsService;
import com.day.cq.analytics.sitecatalyst.SitecatalystException;
import com.day.cq.analytics.sitecatalyst.SitecatalystHttpClient;
import com.day.cq.analytics.sitecatalyst.common.AbstractSiteCatalystService;
import com.day.cq.wcm.webservicesupport.Configuration;
import java.util.Arrays;
import java.util.Collection;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
import org.apache.sling.commons.json.JSONArray;
import org.apache.sling.commons.json.JSONException;
import org.apache.sling.commons.json.JSONObject;

@Component(metatype=0)
@Service
public class ClassificationsServiceImpl
extends AbstractSiteCatalystService
implements ClassificationsService {
    @Reference
    private SitecatalystHttpClient client;

    @Override
    public JSONObject getStatus(Configuration configuration, int jobId) throws SitecatalystException {
        try {
            JSONObject data = new JSONObject();
            data.put("job_id", jobId);
            String result = this.client.execute("Classifications.CheckStatus", data.toString(), configuration);
            JSONArray resultArr = this.toJSONArray(result);
            return this.toJSONObject(resultArr.getString(0));
        }
        catch (JSONException e) {
            throw new SitecatalystException(e.getMessage(), (Throwable)e);
        }
    }

    @Override
    public /* varargs */ JSONArray getCompatibilityElements(Configuration configuration, String ... reportSuites) throws SitecatalystException {
        try {
            JSONObject data = new JSONObject();
            data.put("rsid_list", Arrays.asList(reportSuites));
            String result = this.client.execute("Classifications.GetCompatibilityElements", data.toString(), configuration);
            return this.toJSONArray(result);
        }
        catch (JSONException e) {
            throw new SitecatalystException(e.getMessage(), (Throwable)e);
        }
    }

    @Override
    public JSONArray getFilters(Configuration configuration, int element, String[] reportSuites) throws SitecatalystException {
        try {
            JSONObject data = new JSONObject();
            data.put("element", element);
            data.put("rsid_list", Arrays.asList(reportSuites));
            String result = this.client.execute("Classifications.GetFilters", data.toString(), configuration);
            return this.toJSONArray(result);
        }
        catch (JSONException e) {
            throw new SitecatalystException(e.getMessage(), (Throwable)e);
        }
    }

    @Override
    public int createExport(Configuration configuration, String campaignStartDate, String campaignEndDate, String filterStartDate, String filterEndDate, String email, String encoding, int element, String[] reportSuites, String rowFilterColumnName, String rowFilterColumnValue, int rowCount, boolean quoteOutput) throws SitecatalystException {
        try {
            JSONObject params = new JSONObject();
            params.put("campaign_filter_start_date", (Object)campaignStartDate);
            params.put("campaign_filter_end_date", (Object)campaignEndDate);
            params.put("date_filter_start_date", (Object)filterStartDate);
            params.put("date_filter_end_date", (Object)filterEndDate);
            params.put("email_address", (Object)email);
            params.put("encoding", (Object)encoding);
            params.put("element", element);
            params.put("row_count", rowCount > -1 ? rowCount : 1000);
            params.put("quote_output", quoteOutput);
            if (reportSuites != null) {
                params.put("report_suite_array", (Object)new JSONArray(Arrays.asList(reportSuites)));
            }
            if (rowFilterColumnName != null) {
                params.put("row_filter_column_name", (Object)rowFilterColumnName);
            }
            if (rowFilterColumnValue != null) {
                params.put("row_filter_column_value", (Object)rowFilterColumnValue);
            }
            String result = this.client.execute("Classifications.CreateExport", params.toString(), configuration);
            return this.toJSONObject(result).getInt("job_id");
        }
        catch (JSONException e) {
            throw new SitecatalystException(e.getMessage(), (Throwable)e);
        }
    }

    @Override
    public int createExport(Configuration configuration, String campaignStartDate, String campaignEndDate, String filterStartDate, String filterEndDate, String email, String encoding, int element) throws SitecatalystException {
        return this.createExport(configuration, campaignStartDate, campaignEndDate, filterStartDate, filterEndDate, email, encoding, element, null, null, null, 1000, true);
    }

    @Override
    public JSONArray getExport(Configuration configuration, int id, int page) throws SitecatalystException {
        try {
            JSONObject data = new JSONObject();
            data.put("file_id", id);
            data.put("page", page);
            String result = this.client.execute("Classifications.GetExport", data.toString(), configuration);
            return this.toJSONArray(result);
        }
        catch (JSONException e) {
            throw new SitecatalystException(e.getMessage(), (Throwable)e);
        }
    }

    @Override
    public /* varargs */ JSONObject getTemplate(Configuration configuration, String[] reportSuites, String element, String encoding, String ... classifications) throws SitecatalystException {
        try {
            JSONObject data = new JSONObject();
            data.put("rsid_list", Arrays.asList(reportSuites));
            data.put("element", (Object)element);
            data.put("classification_names", Arrays.asList(classifications));
            data.put("encoding", (Object)encoding);
            String result = this.client.execute("Classifications.GetTemplate", data.toString(), configuration);
            return this.toJSONObject(result);
        }
        catch (JSONException e) {
            throw new SitecatalystException(e.getMessage(), (Throwable)e);
        }
    }

    @Override
    public /* varargs */ int createImport(Configuration configuration, String description, String email, String[] header, String element, boolean checkDivisions, boolean exportResults, boolean overwrite, String ... reportSuites) throws SitecatalystException {
        try {
            JSONObject data = new JSONObject();
            data.put("description", (Object)description);
            data.put("email_address", (Object)email);
            data.put("header", Arrays.asList(header));
            data.put("element", (Object)element);
            data.put("check_divisions", (Object)(checkDivisions ? "1" : "0"));
            data.put("export_results", (Object)(exportResults ? "1" : "0"));
            data.put("overwrite_conflicts", (Object)(overwrite ? "1" : "0"));
            data.put("rsid_list", Arrays.asList(reportSuites));
            String result = this.client.execute("Classifications.CreateImport", data.toString(), configuration);
            return this.toJSONObject(result).getInt("job_id");
        }
        catch (JSONException e) {
            throw new SitecatalystException(e.getMessage(), (Throwable)e);
        }
    }

    @Override
    public boolean populateImport(Configuration configuration, int jobId, int page, Collection<String[]> rows) throws SitecatalystException {
        try {
            JSONArray rowsArray = new JSONArray();
            for (String[] r : rows) {
                JSONObject row = new JSONObject();
                row.put("row", Arrays.asList(r));
                rowsArray.put((Object)row);
            }
            JSONObject data = new JSONObject();
            data.put("job_id", jobId);
            data.put("page", page);
            data.put("rows", (Object)rowsArray);
            String result = this.client.execute("Classifications.PopulateImport", data.toString(), configuration);
            String error = this.getError(result);
            if (error != null) {
                throw new SitecatalystException(error);
            }
            return "true".equalsIgnoreCase(result);
        }
        catch (JSONException e) {
            throw new SitecatalystException(e.getMessage(), (Throwable)e);
        }
    }

    @Override
    public boolean commitImport(Configuration configuration, int jobId) throws SitecatalystException {
        try {
            JSONObject data = new JSONObject();
            data.put("job_id", jobId);
            String result = this.client.execute("Classifications.CommitImport", data.toString(), configuration);
            return "true".equalsIgnoreCase(result);
        }
        catch (JSONException e) {
            throw new SitecatalystException(e.getMessage(), (Throwable)e);
        }
    }

    protected void bindClient(SitecatalystHttpClient sitecatalystHttpClient) {
        this.client = sitecatalystHttpClient;
    }

    protected void unbindClient(SitecatalystHttpClient sitecatalystHttpClient) {
        if (this.client == sitecatalystHttpClient) {
            this.client = null;
        }
    }
}