Skip to content
Snippets Groups Projects
Unverified Commit 86300a97 authored by Ave O's avatar Ave O
Browse files

Fix shorten, improve domains, make list work with multiple domain

parent 94d9ac94
No related branches found
No related tags found
No related merge requests found
...@@ -11,13 +11,23 @@ bp = Blueprint('files') ...@@ -11,13 +11,23 @@ bp = Blueprint('files')
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
async def domain_list(request):
"""Returns a dictionary with domain IDs mapped to domain names"""
domain_info = await request.app.db.fetch("""
SELECT domain_id, domain
FROM domains
""")
return dict(domain_info)
@bp.get('/api/list') @bp.get('/api/list')
async def list_handler(request): async def list_handler(request):
"""Get list of files.""" """Get list of files."""
user_id = await token_check(request) user_id = await token_check(request)
domains = await domain_list(request)
user_files = await request.app.db.fetch(""" user_files = await request.app.db.fetch("""
SELECT fspath SELECT fspath, domain
FROM files FROM files
WHERE uploader = $1 WHERE uploader = $1
AND deleted = false AND deleted = false
...@@ -25,19 +35,24 @@ async def list_handler(request): ...@@ -25,19 +35,24 @@ async def list_handler(request):
""", user_id) """, user_id)
user_shortens = await request.app.db.fetch(""" user_shortens = await request.app.db.fetch("""
SELECT filename, redirto SELECT filename, redirto, domain
FROM shortens FROM shortens
WHERE uploader = $1 WHERE uploader = $1
AND deleted = false AND deleted = false
ORDER BY shorten_id DESC ORDER BY shorten_id DESC
""", user_id) """, user_id)
filenames = [os.path.basename(ufile['fspath']) for ufile in user_files] filenames = [f"https://{domains[ufile['domain']]}/i/"
f"{os.path.basename(ufile['fspath'])}" for ufile in user_files]
shortens = [{f"https://{domains[ushorten['domain']]}/s/"
f"{ushorten['filename']}": ushorten["redirto"]}
for ushorten in user_shortens]
return response.json({ return response.json({
'success': True, 'success': True,
'files': filenames, 'files': filenames,
'shortens': user_shortens 'shortens': shortens
}) })
......
...@@ -21,9 +21,7 @@ async def domainlist_handler(request): ...@@ -21,9 +21,7 @@ async def domainlist_handler(request):
FROM domains FROM domains
""" + adm_string) """ + adm_string)
domains = [{record["domain_id"]: record["domain"]} for return response.json({"domains": dict(domain_records)})
record in domain_records]
return response.json({"domains": domains})
@bp.get('/api/profile') @bp.get('/api/profile')
......
...@@ -75,12 +75,6 @@ async def shorten_handler(request): ...@@ -75,12 +75,6 @@ async def shorten_handler(request):
redir_rname = await gen_filename(request) redir_rname = await gen_filename(request)
redir_id = get_snowflake() redir_id = get_snowflake()
await request.app.db.execute("""
INSERT INTO shortens (shorten_id, filename,
uploader, redirto)
VALUES ($1, $2, $3, $4)
""", redir_id, redir_rname, user_id, url_toredir)
# get domain ID from user and return it # get domain ID from user and return it
domain_id = await request.app.db.fetchval(""" domain_id = await request.app.db.fetchval("""
SELECT domain SELECT domain
...@@ -88,6 +82,12 @@ async def shorten_handler(request): ...@@ -88,6 +82,12 @@ async def shorten_handler(request):
WHERE user_id = $1 WHERE user_id = $1
""", user_id) """, user_id)
await request.app.db.execute("""
INSERT INTO shortens (shorten_id, filename,
uploader, redirto, domain)
VALUES ($1, $2, $3, $4, $5)
""", redir_id, redir_rname, user_id, url_toredir, domain_id)
domain = await request.app.db.fetchval(""" domain = await request.app.db.fetchval("""
SELECT domain SELECT domain
FROM domains FROM domains
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment