diff options
author | Parker <contact@pkrm.dev> | 2024-02-25 02:15:31 -0600 |
---|---|---|
committer | Parker <contact@pkrm.dev> | 2024-02-25 02:15:31 -0600 |
commit | 0ea4abca33363f0bbdffa181b60beefc247774fa (patch) | |
tree | 0a6dcd17d5a6d7d9fdb1395548fb33cedf559f2c /app/func/link_records.py | |
parent | f3ff78bc8db5d8e7938407a62d56410cc72ce3a7 (diff) |
Creation
Diffstat (limited to 'app/func/link_records.py')
-rw-r--r-- | app/func/link_records.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/app/func/link_records.py b/app/func/link_records.py new file mode 100644 index 0000000..a29f8dd --- /dev/null +++ b/app/func/link_records.py @@ -0,0 +1,24 @@ +import sqlalchemy +import tabulate + +from db import engine + +""" +Retrieve all records associated with a specific link +""" +def link_records(link, owner): + with engine.begin() as conn: + try: + link_owner = conn.execute(sqlalchemy.text('SELECT owner FROM links WHERE link = :link'), [{'link': link}]).fetchone()[0] + except TypeError: + return 'Link does not exist', 200 + + if owner == link_owner: + with engine.begin() as conn: + records = conn.execute(sqlalchemy.text('SELECT timestamp, ip, location, browser, os, user_agent, isp FROM records WHERE owner = :owner and link = :link'), [{'owner': owner, 'link': link}]).fetchall() + if not records: + return 'No records are associated with this link', 200 + else: + return 'You are not the owner of this link', 401 + + return tabulate.tabulate(records, headers=['Timestamp', 'IP', 'Location', 'Browser', 'OS', 'User Agent', 'ISP']), 200
\ No newline at end of file |