use of fi.otavanopisto.muikku.rest.RESTPermitUnimplemented in project muikku by otavanopisto.
the class MaterialMetaRESTService method listMaterialMetaKeys.
@GET
@Path("/metakeys")
@Produces(MediaType.APPLICATION_JSON)
@RESTPermitUnimplemented
public Response listMaterialMetaKeys() {
List<MaterialMetaKey> materialMetaKeys = materialController.listMaterialMetaKeys();
List<String> result = new ArrayList<>(materialMetaKeys.size());
for (MaterialMetaKey materialMetaKey : materialMetaKeys) {
result.add(materialMetaKey.getName());
}
return Response.ok(result).build();
}
use of fi.otavanopisto.muikku.rest.RESTPermitUnimplemented in project muikku by otavanopisto.
the class MaterialMetaRESTService method createMaterialMeta.
@POST
@Path("/materials/{id}/meta")
@Produces(MediaType.APPLICATION_JSON)
@RESTPermitUnimplemented
public Response createMaterialMeta(@PathParam("id") Long id, fi.otavanopisto.muikku.plugins.material.rest.MaterialMeta payload) {
if (!sessionController.isLoggedIn()) {
return Response.status(Status.UNAUTHORIZED).build();
}
if (!sessionController.hasEnvironmentPermission(MuikkuPermissions.MANAGE_MATERIAL_META)) {
return Response.status(Status.FORBIDDEN).build();
}
Material material = materialController.findMaterialById(id);
if (material == null) {
return Response.status(Status.NOT_FOUND).entity("Material not found").build();
}
if (StringUtils.isBlank(payload.getKey())) {
return Response.status(Status.BAD_REQUEST).entity("Missing key").build();
}
MaterialMetaKey key = materialController.findMaterialMetaKey(payload.getKey());
if (key == null) {
return Response.status(Status.BAD_REQUEST).entity("Invalid key").build();
}
return Response.ok(createRestModel(materialController.createMaterialMeta(material, key, payload.getValue()))).build();
}
use of fi.otavanopisto.muikku.rest.RESTPermitUnimplemented in project muikku by otavanopisto.
the class MaterialMetaRESTService method listMaterialMetas.
@GET
@Path("/materials/{id}/meta/")
@Produces(MediaType.APPLICATION_JSON)
@RESTPermitUnimplemented
public Response listMaterialMetas(@PathParam("id") Long id) {
Material material = materialController.findMaterialById(id);
if (material == null) {
return Response.status(Status.NOT_FOUND).entity("Material not found").build();
}
List<MaterialMeta> metas = materialController.listMaterialMetas(material);
if (metas.isEmpty()) {
return Response.noContent().build();
}
return Response.ok(createRestModel(metas.toArray(new MaterialMeta[0]))).build();
}
use of fi.otavanopisto.muikku.rest.RESTPermitUnimplemented in project muikku by otavanopisto.
the class WebSocketRESTService method createTicket.
@POST
@Path("/ticket")
@RESTPermitUnimplemented
public Response createTicket() {
UserEntity userEntity = sessionController.getLoggedUserEntity();
Long userEntityId = userEntity != null ? userEntity.getId() : null;
Date timestamp = new Date();
String ip = request.getRemoteAddr();
String ticket = UUID.randomUUID().toString();
webSocketTicketController.createTicket(ticket, userEntityId, ip, timestamp);
return Response.ok(new WebSocketTicketRESTModel(ticket)).build();
}
use of fi.otavanopisto.muikku.rest.RESTPermitUnimplemented in project muikku by otavanopisto.
the class WorkspaceRESTService method getWorkspaceMaterialAnswers.
@GET
@Path("/workspaces/{WORKSPACEENTITYID}/materials/{WORKSPACEMATERIALID}/compositeMaterialReplies")
@RESTPermitUnimplemented
public Response getWorkspaceMaterialAnswers(@PathParam("WORKSPACEENTITYID") Long workspaceEntityId, @PathParam("WORKSPACEMATERIALID") Long workspaceMaterialId, @QueryParam("userEntityId") Long userEntityId) {
// TODO: Security
if (!sessionController.isLoggedIn()) {
return Response.status(Status.UNAUTHORIZED).entity("Not logged in").build();
}
// TODO Return everyone's answers
if (userEntityId == null) {
return Response.status(Status.NOT_IMPLEMENTED).build();
}
UserEntity userEntity = userEntityController.findUserEntityById(userEntityId);
WorkspaceMaterial workspaceMaterial = workspaceMaterialController.findWorkspaceMaterialById(workspaceMaterialId);
if (workspaceMaterial == null) {
return Response.status(Status.NOT_FOUND).entity("Workspace material could not be found").build();
}
List<WorkspaceMaterialFieldAnswer> answers = new ArrayList<>();
try {
fi.otavanopisto.muikku.plugins.workspace.model.WorkspaceMaterialReply reply = workspaceMaterialReplyController.findWorkspaceMaterialReplyByWorkspaceMaterialAndUserEntity(workspaceMaterial, userEntity);
if (reply != null) {
List<WorkspaceMaterialField> fields = workspaceMaterialFieldController.listWorkspaceMaterialFieldsByWorkspaceMaterial(workspaceMaterial);
for (WorkspaceMaterialField field : fields) {
String value = workspaceMaterialFieldController.retrieveFieldValue(field, reply);
Material material = field.getQueryField().getMaterial();
WorkspaceMaterialFieldAnswer answer = new WorkspaceMaterialFieldAnswer(workspaceMaterial.getId(), material.getId(), field.getEmbedId(), field.getQueryField().getName(), value);
answers.add(answer);
}
}
WorkspaceMaterialCompositeReply result = new WorkspaceMaterialCompositeReply(answers, reply != null ? reply.getState() : null, reply != null ? reply.getCreated() : null, reply != null ? reply.getLastModified() : null, reply != null ? reply.getSubmitted() : null, reply != null ? reply.getWithdrawn() : null);
return Response.ok(result).build();
} catch (WorkspaceFieldIOException e) {
return Response.status(Status.INTERNAL_SERVER_ERROR).entity("Internal error occurred while retrieving field answers: " + e.getMessage()).build();
}
}
Aggregations