File Exists Test
This commit is contained in:
parent
e42a4bb3e2
commit
1fad8d911c
63
api/views.py
63
api/views.py
|
|
@ -303,37 +303,40 @@ import os
|
||||||
def NCAddFiles(request):
|
def NCAddFiles(request):
|
||||||
if request.method == "GET":
|
if request.method == "GET":
|
||||||
agency = Agency.objects.get(pk=request.GET.get('agencyid'))
|
agency = Agency.objects.get(pk=request.GET.get('agencyid'))
|
||||||
file_to_load = DataFile.objects.get(pk=request.GET.get('fileid'))
|
if(DataFile.objects.filter(pk=request.GET.get('fileid')).exists()):
|
||||||
datadir_parent = None
|
file_to_load = DataFile.objects.get(pk=request.GET.get('fileid'))
|
||||||
datadir_parent_dirnames = []
|
datadir_parent = None
|
||||||
if(file_to_load.parent != None):
|
datadir_parent_dirnames = []
|
||||||
datadir_parent = file_to_load.parent
|
if(file_to_load.parent != None):
|
||||||
datadir_parent_dirnames = [file_to_load.parent.name]
|
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]
|
|
||||||
|
|
||||||
# Dirs needed for the File
|
while(datadir_parent.parent != None):
|
||||||
for d in datadir_parent_dirnames:
|
datadir_parent_dirnames.append(datadir_parent.parent.name)
|
||||||
new_folder = d_prestring + "/" +d
|
datadir_parent = datadir_parent.parent
|
||||||
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))
|
## Popping last Element
|
||||||
d_prestring += "/" + d
|
d_prestring = ""
|
||||||
|
if(len(datadir_parent_dirnames) > 0):
|
||||||
# Uplod the file!
|
datadir_parent_dirnames.pop(len(datadir_parent_dirnames)-1)
|
||||||
final_file_path = settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_"+ str(agency.pk) + "/" + d_prestring + "/" + file_to_load.name
|
# Turning Array around
|
||||||
with open(file_to_load.file.path, 'rb') as f:
|
datadir_parent_dirnames = datadir_parent_dirnames[::-1]
|
||||||
r = requests.put(final_file_path, data=f, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
|
|
||||||
if(len(r.text) == 0):
|
# Dirs needed for the File
|
||||||
return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' angelegt.'})
|
for d in datadir_parent_dirnames:
|
||||||
else:
|
new_folder = d_prestring + "/" +d
|
||||||
return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' konnte nicht angelegt. Bitte manuell prüfen!'})
|
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"})
|
return JsonResponse({"status" : "NO AUTH"})
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue