def put(self, request, *args, **kwargs): base_dir = ".temp/" try: serializer = FileUploadSerializer(data=request.data) if serializer.is_valid(): file_name = request.data['name'] file_data = request.data['data']['data'] file_path = base_dir + file_name file = open(file_path, 'wb') file.write(bytes(bytearray(file_data))) file.close() file_storage = FileStorage() files = file_storage.get_file_list_in_specific_folder( request.user.email) remove_file = "" for f in files: if f['title'] == file_name: remove_file = f break if remove_file != "": print(remove_file['id']) file_storage.delete_file_by_id(remove_file['id']) file_storage.upload_file_with_path_in_specific_folder( file_path, request.user.email) if os.path.exists(file_path): os.remove(file_path) return JsonResponse({'message': request.data}, status=status.HTTP_200_OK) else: return JsonResponse( {'message': "Service unavaible"}, status=status.HTTP_503_SERVICE_UNAVAILABLE) else: return JsonResponse( {'message': "Service unavaible"}, status=status.HTTP_503_SERVICE_UNAVAILABLE) return JsonResponse({'message': "Request's data is wrong"}, status=status.HTTP_401_UNAUTHORIZED) except: JsonResponse( { 'error_message': "Somethings Error", 'errors_code': 400, }, status=status.HTTP_402_PAYMENT_REQUIRED)
def delete(self, request, *args, **kwargs): try: serializer = FileRemoveSerializer(data=request.data) if serializer.is_valid(): file_name = request.data['name'] file_storage = FileStorage() files = file_storage.get_file_list_in_specific_folder( request.user.email + "@" + "data") remove_file = "" for f in files: if f['title'] == file_name: remove_file = f break if remove_file != "": file_storage.delete_file_by_id(remove_file['id']) return JsonResponse({'message': request.data}, status=status.HTTP_200_OK) else: return JsonResponse( {'message': "Service unavaible"}, status=status.HTTP_503_SERVICE_UNAVAILABLE) return JsonResponse({'message': "Request's data is wrong"}, status=status.HTTP_401_UNAUTHORIZED) except: JsonResponse( { 'error_message': "Somethings Error", 'errors_code': 400, }, status=status.HTTP_402_PAYMENT_REQUIRED)