Attempt to log more and find correct paths

This commit is contained in:
decentral1se 2021-06-16 17:02:34 +02:00
parent c1b25603a8
commit f677e27282
Signed by: decentral1se
GPG Key ID: 92DAD76BD9567B8A

View File

@ -1,5 +1,6 @@
import logging
from os import environ
from os.path import basename
import owncloud
from fastapi import FastAPI, Request
@ -43,8 +44,11 @@ nextcloud.login(NEXTCLOUD_USER, NEXTCLOUD_APP_PASSWORD)
def create_share(fpath):
if not nextcloud.is_shared(fpath):
info = nextcloud.share_file_with_link(fpath)
fname = basname(fpath)
fpaths = nextcloud.list("/", depth="infinity")
matching = [f.path for f in fpaths if fname in f.path][0]
if not nextcloud.is_shared(matching):
info = nextcloud.share_file_with_link(matching)
return info.get_link()
return None
@ -53,15 +57,23 @@ def create_share(fpath):
async def home(request: Request):
try:
payload = await request.json()
except Exception:
request.app.state.log.info("Unable to parse request, bailing out")
return {"detail": "unknown request"}
request.app.state.log.info(f"Received: {payload}")
file = payload["file"]
try:
file = payload["rel_path"]
link = create_share(file)
except Exception:
request.app.state.log.info(f"Failed to share {file}"
return {"detail": "failed to create share"}
if link:
request.app.state.log.info(f"Shared {file} on {link}")
else:
request.app.state.log.info(f"{file} already shared or failure!")
except Exception:
return {}
@app.get("/healthz")