send json body instead of multipart
This commit is contained in:
38
meshchat.py
38
meshchat.py
@@ -616,16 +616,10 @@ class ReticulumMeshChat:
|
||||
@routes.post("/api/v1/reticulum/interfaces/import-preview")
|
||||
async def import_interfaces_preview(request):
|
||||
try:
|
||||
reader = await request.multipart()
|
||||
|
||||
field = await reader.next()
|
||||
if field.name == 'config':
|
||||
config_text = ''
|
||||
while True:
|
||||
chunk = await field.read_chunk()
|
||||
if not chunk:
|
||||
break
|
||||
config_text += chunk.decode('utf-8')
|
||||
|
||||
# get request data
|
||||
data = await request.json()
|
||||
config_text = data.get('config')
|
||||
|
||||
interfaces = []
|
||||
current_interface = None
|
||||
@@ -665,25 +659,11 @@ class ReticulumMeshChat:
|
||||
@routes.post("/api/v1/reticulum/interfaces/import")
|
||||
async def import_interfaces(request):
|
||||
try:
|
||||
reader = await request.multipart()
|
||||
config_text = None
|
||||
selected_interfaces = None
|
||||
|
||||
while True:
|
||||
field = await reader.next()
|
||||
if field is None:
|
||||
break
|
||||
|
||||
if field.name == 'config':
|
||||
config_text = ''
|
||||
while True:
|
||||
chunk = await field.read_chunk()
|
||||
if not chunk:
|
||||
break
|
||||
config_text += chunk.decode('utf-8')
|
||||
elif field.name == 'selected_interfaces':
|
||||
data = await field.read(decode=True)
|
||||
selected_interfaces = json.loads(data)
|
||||
|
||||
# get request data
|
||||
data = await request.json()
|
||||
config_text = data.get('config')
|
||||
selected_interfaces = data.get('selected_interfaces')
|
||||
|
||||
print(f"Selected interfaces: {selected_interfaces}")
|
||||
current_interface = None
|
||||
|
||||
@@ -109,9 +109,9 @@ export default {
|
||||
try {
|
||||
|
||||
// fetch preview of interfaces to import
|
||||
const formData = new FormData();
|
||||
formData.append('config', file);
|
||||
const response = await window.axios.post('/api/v1/reticulum/interfaces/import-preview', formData);
|
||||
const response = await window.axios.post('/api/v1/reticulum/interfaces/import-preview', {
|
||||
config: await file.text(),
|
||||
});
|
||||
|
||||
// ensure there are some interfaces available to import
|
||||
if(!response.data.interfaces || response.data.interfaces.length === 0){
|
||||
@@ -172,15 +172,13 @@ export default {
|
||||
return;
|
||||
}
|
||||
|
||||
// create form data to send to server
|
||||
const formData = new FormData();
|
||||
formData.append('config', this.selectedFile);
|
||||
formData.append('selected_interfaces', JSON.stringify(this.selectedInterfaces));
|
||||
|
||||
try {
|
||||
|
||||
// import interfaces
|
||||
await window.axios.post('/api/v1/reticulum/interfaces/import', formData);
|
||||
await window.axios.post('/api/v1/reticulum/interfaces/import', {
|
||||
config: await this.selectedFile.text(),
|
||||
selected_interfaces: this.selectedInterfaces,
|
||||
});
|
||||
|
||||
// dismiss modal
|
||||
this.dismiss();
|
||||
|
||||
Reference in New Issue
Block a user