caldav-adapter
Version:
CalDAV server for Node.js and Koa. Modernized and maintained for Forward Email.
33 lines (29 loc) • 761 B
JavaScript
const _ = require('lodash');
const xml = require('../../common/xml');
const {
build,
multistatus,
response,
status
} = require('../../common/x-build');
const commonTags = require('../../common/tags');
module.exports = function (options) {
const tags = commonTags(options);
return async function (ctx) {
const { children } = xml.getWithChildren(
'/D:propfind/D:prop',
ctx.request.xml
);
const actions = _.map(children, async (child) => {
return tags.getResponse({
resource: 'principal',
child,
ctx
});
});
const res = await Promise.all(actions);
const resps = response(ctx.url, status[200], _.compact(res));
const ms = multistatus([resps]);
return build(ms);
};
};