Implemented new tool in backend

This commit is contained in:
2023-02-20 11:02:16 +01:00
parent 78cc13a661
commit 4955a7cc4f
2 changed files with 14 additions and 12 deletions

View File

@@ -1,16 +1,22 @@
from lxml import etree
def prettify(source: str) -> str:
xml = etree.XML(source)
return etree.tostring(xml, pretty_print=True)
def minimize(source: str) -> str:
xml = etree.XML(source)
return etree.tostring(xml, pretty_print=False)
def xpath(source: str, xpath: str) -> str:
"""
Method used to get nodes from XML string using XPath
:param source: XML string used for selection
:type source: str
:param xpath: XPath query used for selection
:type xpath: str
:return: Nodes selected using XPath
:rtype: str
"""
@@ -34,11 +40,8 @@ def xsd(source: str, xsd: str) -> bool:
"""
Method used to validate XML string against XSD schema
:param source: XML string used for validation
:type source: str
:param xsd: XSD schema to validate XML against
:type xsd: str
:return: Message saying, if the validation was successful or not
:rtype: str
"""
xml_schema = etree.XMLSchema(etree.XML(xsd))
@@ -54,11 +57,8 @@ def xslt(source: str, xslt: str) -> str:
Method used to transformate XML string using XSLT
:param source: XML string to transform
:type source: str
:param xslt: XSLT string used to transformate XML
:type xslt: str
:return: Result of transformation
:rtype: str
"""
xslt_transform = etree.XSLT(etree.XML(xslt))

View File

@@ -19,12 +19,9 @@ def process_xml(request: request, type: str) -> str:
"""Function to process
:param request: Received request
:type request: request
:param type: Type of needed processing: xsd, xslt or xpath
:type type: str
:raises ValueError: is raised when type is different than those provided above
:return: response JSON converted to string and response code
:rtype: str, int
"""
start = time.time_ns()
code = 200
@@ -70,5 +67,10 @@ def xsd():
def xslt():
return process_xml(request, "xslt")
@app.route("/prettifypost", methods=["POST"])
def prettify():
request_data = json.loads(request.get_data(as_text=True))
return Parser.prettify(request_data['data'])
if __name__ == "__main__":
app.run()