private void setOCWEnlace(Enlace enlace, UIEntity entity) { if (enlace.getOcw()) { entity.put("ocw", "Si"); } else { entity.put("ocw", "No"); } }
protected UIEntity fieldsToUIEntity(Iterator<Map.Entry<String, JsonNode>> fields) { UIEntity entity = new UIEntity(); while (fields.hasNext()) { Map.Entry<String, JsonNode> field = fields.next(); JsonNode fieldValue = field.getValue(); if (fieldValue instanceof ObjectNode) { entity.put(field.getKey(), fieldsToUIEntity(field.getValue().fields())); } else if (fieldValue instanceof ArrayNode) { Iterator<JsonNode> elements = fieldValue.elements(); List<Object> listValues = new ArrayList<>(); while (elements.hasNext()) { JsonNode nextNode = elements.next(); if (nextNode instanceof ObjectNode) { listValues.add(fieldsToUIEntity(nextNode.fields())); } else { listValues.add(nextNode.asText()); } } entity.put(field.getKey(), listValues); } else if (!(field.getValue() instanceof NullNode)) { entity.put(field.getKey(), field.getValue().asText()); } } return entity; }
@PUT @Path("{grupoId}") @Consumes(MediaType.TEXT_XML) public ResponseMessage updateGrupo(@PathParam("grupoId") String grupoId, UIEntity entity) throws RegistroNoEncontradoException, NumberFormatException { Grupo grupo = Grupo.getGrupoById(Long.parseLong(grupoId)); grupo.setNombre(entity.get("nombre")); grupo.setDescripcion(entity.get("descripcion")); grupo.update(); return new ResponseMessage(true); }
private void setAtributosMultidioma(Enlace enlace, UIEntity entity) { for (EnlaceIdioma enlaceIdioma : enlace.getEnlacesIdiomas()) { if (enlaceIdioma.getDescripcion() != null && !enlaceIdioma.getDescripcion().equals("")) { entity.put( enlaceIdioma.getIdioma().getAcronimo(), "descripcion", enlaceIdioma.getDescripcion()); } if (enlaceIdioma.getNombre() != null && !enlaceIdioma.getNombre().equals("")) { entity.put(enlaceIdioma.getIdioma().getAcronimo(), "nombre", enlaceIdioma.getNombre()); } if (enlaceIdioma.getUrl() != null && !enlaceIdioma.getUrl().equals("")) { entity.put(enlaceIdioma.getIdioma().getAcronimo(), "url", enlaceIdioma.getUrl()); } } }
@POST @Produces(MediaType.TEXT_XML) @Consumes(MediaType.TEXT_XML) public List<UIEntity> insertPrioridad(UIEntity uiEntity) throws FechaFinPrioridadSuperiorAFechaInicioException, SeIndicaUnaHoraSinFechaAsociadaException, ParseException, InsertadoContenidoNoAutorizadoException, UsuarioNoAutenticadoException { ArrayList<UIEntity> result = new ArrayList<UIEntity>(); String prioridad = uiEntity.get("prioridad"); if (contenidoId == null || prioridad == null) { return result; } Persona persona = getPersona(); Contenido contenido = new Contenido(); contenido.setId(Long.parseLong(uiEntity.get("contenidoId"))); PrioridadContenido prioridadContenido = new PrioridadContenido(); prioridadContenido.setPrioridad(TipoPrioridadContenido.valueOf(prioridad)); prioridadContenido.setUpoObjeto(contenido); prioridadContenido.setFechaInicio(getDate(uiEntity.get("fechaInicio"))); prioridadContenido.setFechaFin(getDate(uiEntity.get("fechaFin"))); prioridadContenido.setHoraInicio(getDateTime(uiEntity.get("horaInicio"))); prioridadContenido.setHoraFin(getDateTime(uiEntity.get("horaFin"))); prioridadContenidoService.insert(persona, prioridadContenido); UIEntity uiEntityRetorno = UIEntity.toUI(prioridadContenido); addAtributosNoPrimitivosToUI(prioridadContenido, uiEntityRetorno); return Collections.singletonList(uiEntityRetorno); }
@GET @Path("{enlaceId}") @Produces(MediaType.TEXT_XML) public List<UIEntity> getEnlace(@PathParam("enlaceId") String enlaceId) throws RegistroNoEncontradoException, NumberFormatException { Enlace enlace = Enlace.getEnlace(Long.parseLong(enlaceId)); UIEntity entity = UIEntity.toUI(enlace); setOCWEnlace(enlace, entity); setAtributosMultidioma(enlace, entity); return Collections.singletonList(entity); }
private void addAtributosNoPrimitivosToUI( PrioridadContenido prioridadContenido, UIEntity uiEntity) { uiEntity.put("contenidoId", prioridadContenido.getUpoObjeto().getId()); uiEntity.put("fechaInicio", prioridadContenido.getFechaInicio()); uiEntity.put("fechaFin", prioridadContenido.getFechaFin()); uiEntity.put("horaInicio", prioridadContenido.getHoraInicio()); uiEntity.put("horaFin", prioridadContenido.getHoraFin()); uiEntity.put("prioridad", prioridadContenido.getPrioridad()); }
@GET @Produces(MediaType.TEXT_XML) public List<UIEntity> getGruposByCursoId(@QueryParam("cursoId") String cursoId) throws RegistroNoEncontradoException, NumberFormatException { List<UIEntity> result = new ArrayList<UIEntity>(); if (cursoId != null) { for (Grupo grupo : Grupo.getGruposByCursoId(Long.parseLong(cursoId))) { UIEntity entity = UIEntity.toUI(grupo); result.add(entity); } } return result; }
@GET @Produces(MediaType.APPLICATION_XML) public List<UIEntity> getPrioridades() { List<UIEntity> uiListaPrioridades = new ArrayList<UIEntity>(); List<PrioridadContenido> prioridades = prioridadContenidoService.getPrioridadesByContenido(Long.parseLong(contenidoId)); for (PrioridadContenido prioridadContenido : prioridades) { UIEntity uiEntity = UIEntity.toUI(prioridadContenido); addAtributosNoPrimitivosToUI(prioridadContenido, uiEntity); uiListaPrioridades.add(uiEntity); } return uiListaPrioridades; }
@GET @Produces(MediaType.TEXT_XML) public List<UIEntity> getEnlaces() { List<UIEntity> result = new ArrayList<UIEntity>(); List<Enlace> listaEnlaces = Enlace.getEnlaces(); for (Enlace enlace : listaEnlaces) { UIEntity enlaceUI = UIEntity.toUI(enlace); setOCWEnlace(enlace, enlaceUI); setAtributosMultidioma(enlace, enlaceUI); result.add(enlaceUI); } return result; }
@POST @Produces(MediaType.TEXT_XML) @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public UIEntity insertEnlace(MultivaluedMap<String, String> params) throws ParametrosObligatoriosException { Enlace enlace = new Enlace(); enlace.setOrden(Long.parseLong(getParamString(params, "orden"))); if (params.containsKey("ocw")) { enlace.setOcw(true); } Set<EnlaceIdioma> enlacesIdiomas = new HashSet<EnlaceIdioma>(); List<Idioma> idiomas = Idioma.getIdiomasEdicion(); for (Idioma idioma : idiomas) { String url = getParamString(params, "url__" + idioma.getAcronimo().toLowerCase()); String nombre = getParamString(params, "nombre__" + idioma.getAcronimo().toLowerCase()); String descripcion = getParamString(params, "descripcion__" + idioma.getAcronimo().toLowerCase()); if (!url.equals("") || !nombre.equals("") || !descripcion.equals("")) { EnlaceIdioma enlaceIdioma = new EnlaceIdioma(); enlaceIdioma.setUrl(url); enlaceIdioma.setNombre(nombre); enlaceIdioma.setDescripcion(descripcion); enlaceIdioma.setIdioma(idioma); enlaceIdioma.setEnlace(enlace); enlacesIdiomas.add(enlaceIdioma); } } enlace.setEnlacesIdiomas(enlacesIdiomas); enlace.compruebaCamposObligatorios(idiomas.get(0).getAcronimo()); enlace = enlace.insert(); UIEntity entity = UIEntity.toUI(enlace); return entity; }
@POST @Produces(MediaType.APPLICATION_XML) public List<UIEntity> insertGrupo(UIEntity entity) throws RegistroNoEncontradoException { if (entity.get("cursoId") == null || entity.get("nombre") == null) { return new ArrayList<UIEntity>(); } Curso curso = Curso.getCursoById(Long.parseLong(entity.get("cursoId"))); Grupo grupo = new Grupo(); grupo.setCurso(curso); grupo.setNombre(entity.get("nombre")); grupo.setOrden(Long.parseLong(entity.get("orden"))); grupo = grupo.insert(); return Collections.singletonList(UIEntity.toUI(grupo)); }