in source/backend/src/transfer_sftp_backend.py [0:0]
def rename():
try:
logger.info(f'TaskID: {fargate_task_id}(PID:{pid}) - rename(): Request received')
sftp_hostname = app.config.get('sftp_hostname')
usr, passwd = authenticate_request(request)
response_body = {}
request_data = request.get_json()
node_type = request_data['node_type']
current_path = request_data['current_path']
new_path = request_data['new_path']
logger.info(f'TaskID: {fargate_task_id}(PID:{pid}) - rename(): Current Path: {current_path}')
logger.info(f'TaskID: {fargate_task_id}(PID:{pid}) - rename(): New Path: {new_path}')
if new_path != current_path:
if node_type == "folder":
logger.info(f'TaskID: {fargate_task_id}(PID:{pid}) - rename(): Cannot rename a folder')
return bad_request(f'Cannot rename a folder', 500) # cant rename a directory
elif node_type == "file":
if contains_special_characters(request_data['file_name']):
return bad_request("Name contains special characters.", 400)
sftp_connection = get_sftp_connection(usr, passwd, sftp_hostname)
sftp_connection.rename(current_path,new_path)
response_body['message'] = "File renamed successfully."
response_body['new_path'] = new_path
response_body['new_name'] = new_path[new_path.rfind('/')+1:]
logger.debug(f'TaskID: {fargate_task_id}(PID:{pid}) - rename(): File renamed successfully.')
response = jsonify(response_body)
response.status_code = 200
logger.info(f'TaskID: {fargate_task_id}(PID:{pid}) - rename(): Responding back with 200 status code')
else:
logger.info(f'TaskID: {fargate_task_id}(PID:{pid}) - rename(): Bad Input')
return bad_request(f'Bad Input', 500)
else:
response = jsonify("No name change detected.")
logger.info(f'TaskID: {fargate_task_id}(PID:{pid}) - rename(): No name change detected')
response.status_code = 200
return response
except Exception as e:
logger.error(f'TaskID: {fargate_task_id}(PID:{pid}) - rename(): call to /api/rename returned exception {e}')
return bad_request("Bad or Invalid Request", 500)