Scene7ImagePresetsServlet.java 4.31 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  javax.servlet.ServletException
 *  org.apache.felix.scr.annotations.Reference
 *  org.apache.felix.scr.annotations.sling.SlingServlet
 *  org.apache.sling.api.SlingHttpServletRequest
 *  org.apache.sling.api.SlingHttpServletResponse
 *  org.apache.sling.api.resource.Resource
 *  org.apache.sling.api.resource.ResourceResolver
 *  org.apache.sling.api.servlets.SlingSafeMethodsServlet
 *  org.apache.sling.commons.json.JSONArray
 *  org.apache.sling.commons.json.JSONException
 *  org.apache.sling.commons.json.JSONObject
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 */
package com.day.cq.dam.scene7.impl.servlets;

import com.day.cq.dam.scene7.api.S7Config;
import com.day.cq.dam.scene7.api.S7ConfigResolver;
import com.day.cq.dam.scene7.api.Scene7Service;
import com.day.cq.dam.scene7.impl.servlets.Scene7ConfigServlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.sling.SlingServlet;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
import org.apache.sling.commons.json.JSONArray;
import org.apache.sling.commons.json.JSONException;
import org.apache.sling.commons.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@SlingServlet(selectors={"imagepresets"}, extensions={"json"}, methods={"GET"}, resourceTypes={"dam/components/scene7/scene7page"}, label="%cq.scene7.servlet.name", description="%cq.scene7.servlet.description")
public class Scene7ImagePresetsServlet
extends SlingSafeMethodsServlet {
    private static final Logger LOG = LoggerFactory.getLogger(Scene7ConfigServlet.class);
    @Reference
    protected S7ConfigResolver s7configResolver;
    @Reference
    protected Scene7Service s7Service;

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
        block8 : {
            response.setContentType("application/json");
            response.setCharacterEncoding("utf-8");
            PrintWriter out = response.getWriter();
            Resource resource = request.getResource();
            S7Config s7Config = null;
            JSONArray jsonArray = new JSONArray();
            try {
                if (resource != null) {
                    String configPath = resource.getPath();
                    configPath = configPath.replaceAll("/jcr:content$", "");
                    s7Config = this.s7configResolver.getS7Config(resource.getResourceResolver(), configPath);
                    if (s7Config != null) {
                        List<String> spsImagePresets = this.s7Service.getImagePresets(s7Config);
                        for (String imagePreset : spsImagePresets) {
                            JSONObject object = new JSONObject();
                            object.put("presetName", (Object)imagePreset);
                            jsonArray.put((Object)object);
                        }
                    }
                    break block8;
                }
                LOG.warn("Could not find the config path parameter on the request!");
            }
            catch (JSONException e) {
                LOG.error("Error adding element to the JSON response", (Throwable)e);
            }
            finally {
                out.write(jsonArray.toString());
            }
        }
    }

    protected void bindS7configResolver(S7ConfigResolver s7ConfigResolver) {
        this.s7configResolver = s7ConfigResolver;
    }

    protected void unbindS7configResolver(S7ConfigResolver s7ConfigResolver) {
        if (this.s7configResolver == s7ConfigResolver) {
            this.s7configResolver = null;
        }
    }

    protected void bindS7Service(Scene7Service scene7Service) {
        this.s7Service = scene7Service;
    }

    protected void unbindS7Service(Scene7Service scene7Service) {
        if (this.s7Service == scene7Service) {
            this.s7Service = null;
        }
    }
}