From 1fad8d911c63ea710ccc77a920deb7e749d8560c Mon Sep 17 00:00:00 2001 From: Holger Trampe Date: Sat, 23 Oct 2021 17:09:44 +0200 Subject: [PATCH] File Exists Test --- api/views.py | 63 +++++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/api/views.py b/api/views.py index 8fc9753..71ad1ba 100644 --- a/api/views.py +++ b/api/views.py @@ -303,37 +303,40 @@ import os def NCAddFiles(request): if request.method == "GET": agency = Agency.objects.get(pk=request.GET.get('agencyid')) - file_to_load = DataFile.objects.get(pk=request.GET.get('fileid')) - datadir_parent = None - datadir_parent_dirnames = [] - if(file_to_load.parent != None): - datadir_parent = file_to_load.parent - datadir_parent_dirnames = [file_to_load.parent.name] - - while(datadir_parent.parent != None): - datadir_parent_dirnames.append(datadir_parent.parent.name) - datadir_parent = datadir_parent.parent - ## Popping last Element - d_prestring = "" - if(len(datadir_parent_dirnames) > 0): - datadir_parent_dirnames.pop(len(datadir_parent_dirnames)-1) - # Turning Array around - datadir_parent_dirnames = datadir_parent_dirnames[::-1] + if(DataFile.objects.filter(pk=request.GET.get('fileid')).exists()): + file_to_load = DataFile.objects.get(pk=request.GET.get('fileid')) + datadir_parent = None + datadir_parent_dirnames = [] + if(file_to_load.parent != None): + datadir_parent = file_to_load.parent + datadir_parent_dirnames = [file_to_load.parent.name] - # Dirs needed for the File - for d in datadir_parent_dirnames: - new_folder = d_prestring + "/" +d - r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk)+ '/' + new_folder, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) - d_prestring += "/" + d - - # Uplod the file! - final_file_path = settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_"+ str(agency.pk) + "/" + d_prestring + "/" + file_to_load.name - with open(file_to_load.file.path, 'rb') as f: - r = requests.put(final_file_path, data=f, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) - if(len(r.text) == 0): - return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' angelegt.'}) - else: - return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' konnte nicht angelegt. Bitte manuell prüfen!'}) + while(datadir_parent.parent != None): + datadir_parent_dirnames.append(datadir_parent.parent.name) + datadir_parent = datadir_parent.parent + ## Popping last Element + d_prestring = "" + if(len(datadir_parent_dirnames) > 0): + datadir_parent_dirnames.pop(len(datadir_parent_dirnames)-1) + # Turning Array around + datadir_parent_dirnames = datadir_parent_dirnames[::-1] + + # Dirs needed for the File + for d in datadir_parent_dirnames: + new_folder = d_prestring + "/" +d + r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk)+ '/' + new_folder, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) + d_prestring += "/" + d + + # Uplod the file! + final_file_path = settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_"+ str(agency.pk) + "/" + d_prestring + "/" + file_to_load.name + with open(file_to_load.file.path, 'rb') as f: + r = requests.put(final_file_path, data=f, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) + if(len(r.text) == 0): + return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' angelegt.'}) + else: + return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' konnte nicht angelegt. Bitte manuell prüfen!'}) + else: + return JsonResponse({'status' : True, 'message': 'Datei ' + str(request.GET.get('fileid')) + ' konnte nicht in Django gefunden werden. Bitte manuell prüfen!'}) return JsonResponse({"status" : "NO AUTH"})