@documentica/webdav
Version:
Documentica Webdav Client
86 lines (85 loc) • 3.37 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const PrincipalCodec_1 = __importDefault(require("./PrincipalCodec"));
const PrivilegesCodec_1 = __importDefault(require("./PrivilegesCodec"));
function fromXML(nodeList) {
let ace = {
principal: null,
privileges: [],
grantdeny: null,
inherited: null,
invitationList: []
};
for (var i = 0; i < nodeList.length; i++) {
var child = nodeList.item(i);
if ((child.namespaceURI === null) || (child.namespaceURI !== 'DAV:')) {
continue;
}
switch (child.localName) {
case 'principal':
ace.invertprincipal = false;
ace.principal = PrincipalCodec_1.default.fromXML(child.childNodes);
break;
case 'invert':
ace.invertprincipal = true;
for (var j = 0; j < child.childNodes.length; j++) {
var element = child.childNodes.item(j);
if ((element.namespaceURI !== 'DAV:') || (element.localName !== 'principal')) {
continue;
}
ace.principal = PrincipalCodec_1.default.fromXML(element.childNodes);
}
break;
case 'grant':
ace.grantdeny = "grant";
ace.privileges = PrivilegesCodec_1.default.fromXML(child.childNodes);
break;
case 'deny':
ace.grantdeny = "deny";
ace.privileges = PrivilegesCodec_1.default.fromXML(child.childNodes);
break;
case 'protected':
ace.isprotected = true;
ace.privileges = PrivilegesCodec_1.default.fromXML(child.childNodes);
break;
case 'inherited':
for (var j = 0; j < child.childNodes.length; j++) {
var element = child.childNodes.item(j);
if ((element.namespaceURI !== 'DAV:') || (element.localName !== 'href')) {
continue;
}
ace.inherited = child.childNodes.item(j).childNodes.item(0).nodeValue;
}
;
break;
case 'invitationlist':
for (var j = 0; j < child.childNodes.length; j++) {
var element = child.childNodes.item(j);
if ((element.namespaceURI !== 'DAV:') || (element.localName !== 'email')) {
continue;
}
ace.invitationList.push(child.childNodes.item(j).childNodes.item(0).nodeValue);
}
;
break;
case 'expirationdate':
for (var j = 0; j < child.childNodes.length; j++) {
var d = child.childNodes.item(j).nodeValue;
if (d)
ace.expirationDate = new Date(d);
}
;
break;
}
}
return ace;
}
exports.fromXML = fromXML;
const codec = {
fromXML,
toXML: (value, xmlDoc) => xmlDoc
};
exports.default = codec;
;