enabled xml file import

This commit is contained in:
p.loedige 2020-12-31 02:50:56 +01:00
parent 09d2b4b008
commit c334e92f1b
2 changed files with 11 additions and 9 deletions

2
XML

@ -1 +1 @@
Subproject commit 3d9feeec42ad009a0c1e998330f96b6fe4646924 Subproject commit 143a75cdf0d5376f5753862c7bbe0e06a3bbb062

18
app.py
View File

@ -3,6 +3,7 @@
from flask import request, send_from_directory from flask import request, send_from_directory
from flask_api import FlaskAPI from flask_api import FlaskAPI
import RPi.GPIO as GPIO import RPi.GPIO as GPIO
import shutil
import os import os
from xml_reader import Xml_reader from xml_reader import Xml_reader
@ -31,18 +32,19 @@ def xml_transfer():
# set a new config.xml # set a new config.xml
if request.method == "POST": if request.method == "POST":
if 'config.xml' not in request.files: if not os.path.exists('/tmp/aped_device'):
raise ReferenceError("no file part") os.mkdir("/tmp/aped_device")
file = request.files["config.xml"] tmp_file = open("/tmp/aped_device/config.xml","w")
if file.filename != 'config.xml': data = request.get_data(as_text=True)
raise NameError("the file recieved does not have the filename config.xml") tmp_file.write(data)
file.save('/tmp/aped_device/config.xml') tmp_file.close()
#check config.xml against the XSD file #check config.xml against the XSD file
if xml_reader.validate('/tmp/aped_device/config.xml','XML/config.xsd'): if xml_reader.validate('/tmp/aped_device/config.xml','XML/config.xsd'):
os.replace('XML/config.xml','XML/config_old.xml') shutil.move('XML/config.xml','XML/config_old.xml')
os.replace('/tmp/aped_device/config.xml','XML/config.xml') shutil.move('/tmp/aped_device/config.xml','XML/config.xml')
else: else:
SyntaxError('the config.xml has invalid content') SyntaxError('the config.xml has invalid content')
return {'error': ''}
except Exception as e: except Exception as e:
return {'error' : str(e)} return {'error' : str(e)}