List of usage examples for org.springframework.http ResponseEntity ok
public static <T> ResponseEntity<T> ok(T body)
From source file:org.tightblog.ui.restapi.WeblogEntryController.java
@PostMapping(value = "/{weblogId}/entries") public ResponseEntity postEntry(@PathVariable String weblogId, @Valid @RequestBody WeblogEntry entryData, Locale locale, Principal p) throws ServletException { try {/*from w ww. ja v a2s . co m*/ boolean createNew = false; WeblogEntry entry = null; if (entryData.getId() != null) { entry = weblogEntryRepository.findByIdOrNull(entryData.getId()); } // Check user permissions User user = userRepository.findEnabledByUserName(p.getName()); Weblog weblog = (entry == null) ? weblogRepository.findById(weblogId).orElse(null) : entry.getWeblog(); WeblogRole necessaryRole = (PubStatus.PENDING.equals(entryData.getStatus()) || PubStatus.DRAFT.equals(entryData.getStatus())) ? WeblogRole.EDIT_DRAFT : WeblogRole.POST; if (weblog != null && userManager.checkWeblogRole(user, weblog, necessaryRole)) { // create new? if (entry == null) { createNew = true; entry = new WeblogEntry(); entry.setCreator(user); entry.setWeblog(weblog); entry.setEditFormat(entryData.getEditFormat()); entryData.setWeblog(weblog); } entry.setUpdateTime(Instant.now()); Instant pubTime = calculatePubTime(entryData); entry.setPubTime((pubTime != null) ? pubTime : entry.getUpdateTime()); if (PubStatus.PUBLISHED.equals(entryData.getStatus()) && entry.getPubTime().isAfter(Instant.now().plus(1, ChronoUnit.MINUTES))) { entryData.setStatus(PubStatus.SCHEDULED); } entry.setStatus(entryData.getStatus()); entry.setTitle(entryData.getTitle()); entry.setText(entryData.getText()); entry.setSummary(entryData.getSummary()); entry.setNotes(entryData.getNotes()); if (!StringUtils.isEmpty(entryData.getTagsAsString())) { entry.updateTags( new HashSet<>(Arrays.asList(entryData.getTagsAsString().trim().split("\\s+")))); } else { entry.updateTags(new HashSet<>()); } entry.setSearchDescription(entryData.getSearchDescription()); entry.setEnclosureUrl(entryData.getEnclosureUrl()); WeblogCategory category = weblogCategoryRepository.findById(entryData.getCategory().getId()) .orElse(null); if (category != null) { entry.setCategory(category); } else { throw new IllegalArgumentException("Category is invalid."); } entry.setCommentDays(entryData.getCommentDays()); if (!StringUtils.isEmpty(entry.getEnclosureUrl())) { // Fetch MediaCast resource log.debug("Checking MediaCast attributes"); AtomEnclosure enclosure; try { enclosure = weblogEntryManager.generateEnclosure(entry.getEnclosureUrl()); } catch (IllegalArgumentException e) { BindException be = new BindException(entry, "new data object"); be.addError(new ObjectError("Enclosure URL", messages.getMessage(e.getMessage(), null, locale))); return ResponseEntity.badRequest().body(ValidationError.fromBindingErrors(be)); } // set enclosure attributes entry.setEnclosureUrl(enclosure.getUrl()); entry.setEnclosureType(enclosure.getContentType()); entry.setEnclosureLength(enclosure.getLength()); } weblogEntryManager.saveWeblogEntry(entry); dp.updateLastSitewideChange(); // notify search of the new entry if (entry.isPublished()) { luceneIndexer.updateIndex(entry, false); } else if (!createNew) { luceneIndexer.updateIndex(entry, true); } if (PubStatus.PENDING.equals(entry.getStatus())) { emailService.sendPendingEntryNotice(entry); } SuccessfulSaveResponse ssr = new SuccessfulSaveResponse(); ssr.entryId = entry.getId(); switch (entry.getStatus()) { case DRAFT: ssr.message = messages.getMessage("entryEdit.draftSaved", null, locale); break; case PUBLISHED: ssr.message = messages.getMessage("entryEdit.publishedEntry", null, locale); break; case SCHEDULED: ssr.message = messages.getMessage( "entryEdit.scheduledEntry", new Object[] { DateTimeFormatter.ISO_DATE_TIME .withZone(entry.getWeblog().getZoneId()).format(entry.getPubTime()) }, null, locale); break; case PENDING: ssr.message = messages.getMessage("entryEdit.submittedForReview", null, locale); break; default: } return ResponseEntity.ok(ssr); } else { return ResponseEntity.status(403).body(messages.getMessage("error.title.403", null, locale)); } } catch (Exception e) { throw new ServletException(e.getMessage()); } }
From source file:sg.ncl.DataController.java
/** * References://w w w . j av a 2s .co m * [1] https://github.com/23/resumable.js/blob/master/samples/java/src/main/java/resumable/js/upload/UploadServlet.java */ @RequestMapping(value = "{datasetId}/resources/upload", method = RequestMethod.GET) public ResponseEntity<String> checkChunk(@PathVariable String datasetId, HttpServletRequest request) { int resumableChunkNumber = getResumableChunkNumber(request); ResumableInfo info = getResumableInfo(request); String url = properties.checkUploadChunk(datasetId, resumableChunkNumber, info.resumableIdentifier); log.debug("URL: {}", url); HttpEntity<String> httpEntity = createHttpEntityHeaderOnly(); ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class); String body = responseEntity.getBody().toString(); log.debug(body); if (body.equals("Not found")) { return ResponseEntity.status(HttpStatus.NOT_FOUND).body(body); } return ResponseEntity.ok(body); }
From source file:sg.ncl.DataController.java
@RequestMapping(value = "{datasetId}/resources/upload", method = RequestMethod.POST) public ResponseEntity<String> uploadChunk(@PathVariable String datasetId, HttpServletRequest request) { int resumableChunkNumber = getResumableChunkNumber(request); ResumableInfo info = getResumableInfo(request); try {/*from ww w . ja v a 2 s . c om*/ InputStream is = request.getInputStream(); ByteArrayOutputStream os = new ByteArrayOutputStream(); long readed = 0; long content_length = request.getContentLength(); byte[] bytes = new byte[1024 * 100]; while (readed < content_length) { int r = is.read(bytes); if (r < 0) { break; } os.write(bytes, 0, r); readed += r; } JSONObject resumableObject = new JSONObject(); resumableObject.put("resumableChunkSize", info.resumableChunkSize); resumableObject.put("resumableTotalSize", info.resumableTotalSize); resumableObject.put("resumableIdentifier", info.resumableIdentifier); resumableObject.put("resumableFilename", info.resumableFilename); resumableObject.put("resumableRelativePath", info.resumableRelativePath); String resumableChunk = Base64.encodeBase64String(os.toByteArray()); log.debug(resumableChunk); resumableObject.put("resumableChunk", resumableChunk); String url = properties.sendUploadChunk(datasetId, resumableChunkNumber); log.debug("URL: {}", url); HttpEntity<String> httpEntity = createHttpEntityWithBody(resumableObject.toString()); restTemplate.setErrorHandler(new MyResponseErrorHandler()); ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); String body = responseEntity.getBody().toString(); if (RestUtil.isError(responseEntity.getStatusCode())) { MyErrorResource error = objectMapper.readValue(body, MyErrorResource.class); ExceptionState exceptionState = ExceptionState.parseExceptionState(error.getError()); return getStringResponseEntity(exceptionState); } else if (body.equals("All finished.")) { log.info("Data resource uploaded."); } return ResponseEntity.ok(body); } catch (Exception e) { log.error("Error sending upload chunk: {}", e); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error sending upload chunk"); } }