public ResponseContext postEntry(RequestContext request) { if (request.isAtom()) { try { Entry entry = (Entry)request.getDocument().getRoot().clone(); String key = createKey(request); setEditDetail(request, entry, key); File file = getFile(key); FileOutputStream out = new FileOutputStream(file); entry.writeTo(out); String edit = entry.getEditLinkResolvedHref().toString(); return ProviderHelper.returnBase(entry.getDocument(), 201, null).setLocation(edit); } catch (Exception e) { return ProviderHelper.badrequest(request); } } else { return ProviderHelper.notsupported(request); } }
public ResponseContext putEntry(RequestContext request) { if (request.isAtom()) { try { Entry entry = (Entry)request.getDocument().getRoot().clone(); String key = request.getTarget().getParameter("entry"); setEditDetail(request, entry, key); File file = getFile(key, false); FileOutputStream out = new FileOutputStream(file); entry.writeTo(out); String edit = entry.getEditLinkResolvedHref().toString(); return ProviderHelper.returnBase(entry.getDocument(), 200, null).setLocation(edit); } catch (Exception e) { return ProviderHelper.badrequest(request); } } else { return ProviderHelper.notsupported(request); } }
@Override public ResponseContext putEntry(final RequestContext request) { if (request.isAtom()) { try { final Entry entry = (Entry) request.getDocument().getRoot() .clone(); final String key = request.getTarget().getParameter("entry"); this.setEditDetail(request, entry, key); final File file = this.getFile(key, false); final FileOutputStream out = new FileOutputStream(file); entry.writeTo(out); final String edit = entry.getEditLinkResolvedHref().toString(); return ProviderHelper .returnBase(entry.getDocument(), 200, null) .setLocation(edit); } catch (final Exception e) { return ProviderHelper.badrequest(request); } } else { return ProviderHelper.notsupported(request); } }
@Override public ResponseContext postEntry(final RequestContext request) { if (request.isAtom()) { try { final Entry entry = (Entry) request.getDocument().getRoot() .clone(); final String key = this.createKey(request); this.setEditDetail(request, entry, key); final File file = this.getFile(key); final FileOutputStream out = new FileOutputStream(file); entry.writeTo(out); final String edit = entry.getEditLinkResolvedHref().toString(); return ProviderHelper .returnBase(entry.getDocument(), 201, null) .setLocation(edit); } catch (final Exception e) { return ProviderHelper.badrequest(request); } } else { return ProviderHelper.notsupported(request); } }
private ResponseContext createOrUpdateEntry(RequestContext request, boolean createFlag) { try { MimeType mimeType = request.getContentType(); String contentType = mimeType == null ? null : mimeType.toString(); if (contentType != null && !MimeTypeHelper.isAtom(contentType) && !MimeTypeHelper.isXml(contentType)) return ProviderHelper.notsupported(request); Abdera abdera = request.getAbdera(); Parser parser = abdera.getParser(); Entry inputEntry = (Entry)request.getDocument(parser).getRoot(); Target target = request.getTarget(); String entryId = !createFlag ? target.getParameter(BasicProvider.PARAM_ENTRY) : null; Entry newEntry = createFlag ? createEntry(inputEntry) : updateEntry(entryId, inputEntry); if (newEntry != null) { Document<Entry> newEntryDoc = newEntry.getDocument(); String loc = newEntry.getEditLinkResolvedHref().toString(); return ProviderHelper.returnBase(newEntryDoc, createFlag ? 201 : 200, null).setLocation(loc); } else { return ProviderHelper.notfound(request); } } catch (Exception e) { return ProviderHelper.servererror(request, e.getMessage(), e); } }
IRI editLinkResolvedHref = entry.getEditLinkResolvedHref(); if (editLinkResolvedHref == null) { throw new Error("createEntryInternal() must set the edit link href");
BaseResponseContext rc = new BaseResponseContext(entry); IRI baseUri = ProviderHelper.resolveBase(request); rc.setLocation(baseUri.resolve(entry.getEditLinkResolvedHref()) .toString()); rc.setContentLocation(rc.getLocation().toString());