diff --git a/src/main/resources/services/postMarkdown/postMarkdown.ts b/src/main/resources/services/postMarkdown/postMarkdown.ts new file mode 100644 index 0000000000..2e70219f77 --- /dev/null +++ b/src/main/resources/services/postMarkdown/postMarkdown.ts @@ -0,0 +1,36 @@ +import { connect } from '/lib/xp/node' + +export const post = (req: XP.Request): XP.Response => { + const params = { + displayName: req.params.displayName, + markdown: req.params.markdown, + } + + const conn = connect({ + repoId: 'no.ssb.pubmd', + branch: 'master', + principals: ['role:system.admin'], + }) + + const nodeId = typeof req.params._id === 'string' ? req.params._id : '' + const nodeExists = nodeId ? conn.exists(nodeId) : false + + let result + if (nodeExists) { + result = conn.modify({ + key: nodeId, + editor: (node) => ({ + ...node, + ...params, + }), + }) + } else { + result = conn.create(params) + } + + return { + status: 200, + body: result, + contentType: 'application/json', + } +} diff --git a/src/main/resources/services/postMarkdown/postMarkdown.xml b/src/main/resources/services/postMarkdown/postMarkdown.xml new file mode 100644 index 0000000000..7f945f2c64 --- /dev/null +++ b/src/main/resources/services/postMarkdown/postMarkdown.xml @@ -0,0 +1,5 @@ + + + role:system.everyone + + \ No newline at end of file