send json body instead of multipart

This commit is contained in:
liamcottle
2025-01-01 20:26:03 +13:00
parent de049aead5
commit 65dfd6c540
2 changed files with 16 additions and 38 deletions

View File

@@ -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

View File

@@ -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();