package com.k_int.ciim.ui.resources; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Response; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; import com.k_int.ciim.ref.MediaRecordTypeEnum; import com.k_int.ciim.ui.exceptions.NotAuthorisedException; import com.k_int.ciim.ui.kernel.AttachmentQueryCore; import com.k_int.ciim.ui.kernel.DataCacheQueryCore; import com.k_int.ciim.ui.ref.RoleDefinitionEnum; import com.sun.jersey.api.view.ImplicitProduces; @XmlRootElement @ImplicitProduces("text/html;qs=5") //for FireFox? @XmlAccessorType(XmlAccessType.FIELD) @Path("/lookup") public class LookupResource extends AbstractResource { @XmlTransient private DataCacheQueryCore dcqc; @XmlTransient private AttachmentQueryCore aqc; /* App Context setters */ public void setDataCacheQueryCore(DataCacheQueryCore dcqc) { this.dcqc = dcqc; } public void setAttachmentQueryCore(AttachmentQueryCore aqc) { this.aqc = aqc; } public LookupResource(){;} @GET @Path("/resources") @Produces("application/xml") public Response getResourceXML(@QueryParam("identifier") String identifier) { byte[] retval = null; if(this.meetsRoleRequirement(RoleDefinitionEnum.SUPER.toString())) //admin allowed only { retval = dcqc.getSerializedXML(identifier); } else { throw new NotAuthorisedException(); } return Response.ok(retval).type("application/xml").build(); } @POST @Path("/media_type") public String getMediaType(@QueryParam("extension") String extension) { String retval = null; MediaRecordTypeEnum media_enum = aqc.getMediaTypeFromExtension(extension); if(media_enum != null) { retval = media_enum.toString(); } return retval; } }