Example usage for org.springframework.http ResponseEntity ok

List of usage examples for org.springframework.http ResponseEntity ok

Introduction

In this page you can find the example usage for org.springframework.http ResponseEntity ok.

Prototype

public static <T> ResponseEntity<T> ok(T body) 

Source Link

Document

A shortcut for creating a ResponseEntity with the given body and the status set to HttpStatus#OK OK .

Usage

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");
    }
}