package org.curriki.xwiki.servlet.restlet.resource.assets; import org.restlet.resource.Representation; import org.restlet.resource.Variant; import org.restlet.resource.ResourceException; import org.restlet.Context; import org.restlet.data.Request; import org.restlet.data.Response; import org.restlet.data.Status; import org.curriki.xwiki.servlet.restlet.resource.BaseResource; import net.sf.json.JSONObject; import com.xpn.xwiki.api.Property; import com.xpn.xwiki.XWikiException; import java.util.List; /** */ public class AssetResource extends BaseResource { public AssetResource(Context context, Request request, Response response) { super(context, request, response); setReadable(true); defaultVariants(); } @Override public Representation represent(Variant variant) throws ResourceException { setupXWiki(); Request request = getRequest(); String assetName = (String) request.getAttributes().get("assetName"); List<Property> results; try { results = plugin.fetchAssetMetadata(assetName); } catch (XWikiException e) { throw error(Status.CLIENT_ERROR_NOT_FOUND, e.getMessage()); } JSONObject json = new JSONObject(); json.put("assetPage", assetName); if (results != null) { for (Property prop : results) { String propName = prop.getName(); if (propName.equals("title") || propName.equals("description") || propName.equals("creator") || propName.equals("creatorName") || propName.equals("assetType") || propName.equals("fullAssetType")) { json.put(prop.getName(), prop.getValue()); } } } return formatJSON(json, variant); } }