feat(frontend): prettify xml + route for cwmp api

This commit is contained in:
leandrofars 2024-06-11 22:31:56 -03:00
parent 1879a6cd0b
commit b81699903c

View File

@ -51,13 +51,36 @@ const [value, setValue] = useState(`<?xml version="1.0" encoding="UTF-8"?>
</soap:Body> </soap:Body>
</soap:Envelope>`) </soap:Envelope>`)
var prettifyXml = function(sourceXml)
{
var xmlDoc = new DOMParser().parseFromString(sourceXml, 'application/xml');
var xsltDoc = new DOMParser().parseFromString([
// describes how we want to modify the XML - indent everything
'<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">',
' <xsl:strip-space elements="*"/>',
' <xsl:template match="para[content-style][not(text())]">', // change to just text() to strip space in text nodes
' <xsl:value-of select="normalize-space(.)"/>',
' </xsl:template>',
' <xsl:template match="node()|@*">',
' <xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>',
' </xsl:template>',
' <xsl:output indent="yes"/>',
'</xsl:stylesheet>',
].join('\n'), 'application/xml');
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xsltDoc);
var resultDoc = xsltProcessor.transformToDocument(xmlDoc);
var resultXml = new XMLSerializer().serializeToString(resultDoc);
return resultXml;
};
const handleClose = () => { const handleClose = () => {
setOpen(false); setOpen(false);
}; };
const handleOpen = () => { const handleOpen = () => {
setOpen(true); setOpen(true);
var myHeaders = new Headers(); var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", localStorage.getItem("token")); myHeaders.append("Authorization", localStorage.getItem("token"));
var raw = value var raw = value
@ -73,21 +96,21 @@ const handleOpen = () => {
switch(age) { switch(age) {
case 1: case 1:
method="add" method="addObject"
break; break;
case 2: case 2:
method="get" method="getParameterValues"
break; break;
case 3: case 3:
method="set" method="setParameterValues"
break; break;
case 4: case 4:
method="del" method="deleteObject"
break; break;
} }
fetch(`${process.env.NEXT_PUBLIC_REST_ENDPOINT}/device/${router.query.id[0]}/any/${method}`, requestOptions) fetch(`${process.env.NEXT_PUBLIC_REST_ENDPOINT}/device/cwmp/${router.query.id[0]}/${method}`, requestOptions)
.then(response => response.text()) .then(response => response.text())
.then(result => { .then(result => {
if (result.status === 401){ if (result.status === 401){
@ -95,7 +118,7 @@ const handleOpen = () => {
} }
setOpen(false) setOpen(false)
setAnswer(true) setAnswer(true)
let teste = JSON.stringify(JSON.parse(result), null, 2) let teste = prettifyXml(result)
console.log(teste) console.log(teste)
setContent(teste) setContent(teste)
}) })