MCPcopy Index your code
hub / github.com/scality/cloudserver / convertToXml

Function convertToXml

lib/api/apiUtils/bucket/bucketWebsite.js:369–432  ·  view source on GitHub ↗
(config)

Source from the content-addressed store, hash-verified

367}
368
369function convertToXml(config) {
370 const xml = [];
371 const indexDocument = config.getIndexDocument();
372 const errorDocument = config.getErrorDocument();
373 const redirectAllRequestsTo = config.getRedirectAllRequestsTo();
374 const routingRules = config.getRoutingRules();
375
376 function _pushChildren(obj) {
377 Object.keys(obj).forEach(element => {
378 const xmlElem = `${element.charAt(0).toUpperCase()}` +
379 `${element.slice(1)}`;
380 xml.push(`<${xmlElem}>${escapeForXml(obj[element])}</${xmlElem}>`);
381 });
382 }
383 xml.push('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>',
384 '<WebsiteConfiguration xmlns=' +
385 '"http://s3.amazonaws.com/doc/2006-03-01/">');
386 if (indexDocument) {
387 xml.push('<IndexDocument>',
388 `<Suffix>${escapeForXml(indexDocument)}</Suffix>`,
389 '</IndexDocument>');
390 }
391 if (errorDocument) {
392 xml.push('<ErrorDocument>',
393 `<Key>${escapeForXml(errorDocument)}</Key>`,
394 '</ErrorDocument>');
395 }
396 if (redirectAllRequestsTo) {
397 xml.push('<RedirectAllRequestsTo>');
398 if (redirectAllRequestsTo.hostName) {
399 xml.push('<HostName>',
400 `${escapeForXml(redirectAllRequestsTo.hostName)}`,
401 '</HostName>');
402 }
403 if (redirectAllRequestsTo.protocol) {
404 xml.push('<Protocol>',
405 `${redirectAllRequestsTo.protocol}`,
406 '</Protocol>');
407 }
408 xml.push('</RedirectAllRequestsTo>');
409 }
410 if (routingRules) {
411 xml.push('<RoutingRules>');
412 routingRules.forEach(rule => {
413 const condition = rule.getCondition();
414 const redirect = rule.getRedirect();
415 xml.push('<RoutingRule>');
416 if (condition) {
417 xml.push('<Condition>');
418 _pushChildren(condition);
419 xml.push('</Condition>');
420 }
421 if (redirect) {
422 xml.push('<Redirect>');
423 _pushChildren(redirect);
424 xml.push('</Redirect>');
425 }
426 xml.push('</RoutingRule>');

Callers

nothing calls this directly

Calls 1

_pushChildrenFunction · 0.85

Tested by

no test coverage detected