@ApiMethod( summary = APIDoc.SUM_DELETE_KNOWLEDGE, responsestatuscode = APIDoc.STATUS_DELETE_KNOWLEDGE) @RequestMapping(value = "/user/{idUser}/knowledge/{idArea}", method = RequestMethod.DELETE) public HttpEntity deleteKnowledge( @PathVariable("idUser") Long idUser, @PathVariable("idArea") Long idArea) { if (!Utils.verifyParamEmptyOrNull(idUser) || !Utils.verifyParamEmptyOrNull(idArea)) return new ResponseEntity(HttpStatus.BAD_REQUEST); if (service.delete(idArea, idUser)) return new ResponseEntity(HttpStatus.OK); else return new ResponseEntity(HttpStatus.NOT_MODIFIED); }
private ResponseEntity getErrorResponse(Object object) { if (object instanceof KnowledgeMod) { KnowledgeMod param = (KnowledgeMod) object; if (!Utils.verifyParamEmptyOrNull(param.area) && !Utils.verifyParamEmptyOrNull(param.name)) { return new ResponseEntity( "Dados referênte a área estão inválidos: {" + param.area + " : " + param.name + "}", HttpStatus.UNPROCESSABLE_ENTITY); } } return null; }
/* * TODO: Refatorar esse código, está um lixo. Validar Subject enviado, senão vai dar exception. */ @ApiMethod( produces = APIDoc.PROD_CONSU_JSON, consumes = APIDoc.PROD_CONSU_JSON, summary = APIDoc.SUM_SAVE_KNOWLEDGE) @ApiBodyObject(clazz = KnowledgeMod.class) @RequestMapping(value = "/knowledge", method = RequestMethod.POST) public ResponseEntity saveKnowledge(@RequestBody KnowledgeMod param) { ResponseEntity responseEntity = getErrorResponse(param); if (responseEntity != null) return responseEntity; User user = null; if (Utils.verifyParamEmptyOrNull(param.idUser)) user = userService.findById(param.idUser); else if (user == null) return new ResponseEntity("Usuário inválido.", HttpStatus.UNPROCESSABLE_ENTITY); Area area = null; if (Utils.verifyParamEmptyOrNull(param.area)) { area = service.findAreaById(param.area); if (area == null) return new ResponseEntity( "Impossível localizar área com id: " + param.area, HttpStatus.UNPROCESSABLE_ENTITY); else param.name = area.getName(); } else { area = service.saveArea(new Area(param.name)); param.area = area.getId(); } Knowledge knowledge = new Knowledge(user, area); if (param.subject != null && param.subject > 0) { Subject subject = service.findSubjectById(param.subject); knowledge.setSubject(subject); } service.save(knowledge); return new ResponseEntity( param, knowledge != null ? HttpStatus.CREATED : HttpStatus.INTERNAL_SERVER_ERROR); }