openreplay/api/chalicelib/core/announcements.py
KRAIEM Taha Yassine 192d1231d4 Changes:
- fixed env-vars
- fixed EE signup
- changed EE DB structure
- changed FOS DB structure
- fixed announcements
- use minio for api
- use minio for sourcemaps-reader
- share env-vars with sourcemaps-reader
2021-05-09 02:23:26 +02:00

42 lines
1.5 KiB
Python

from chalicelib.utils import pg_client
from chalicelib.utils import helper
from chalicelib.utils.helper import environ
from chalicelib.utils.TimeUTC import TimeUTC
def get_all(user_id):
with pg_client.PostgresClient() as cur:
query = cur.mogrify("""
SELECT a.*, u.last >= (EXTRACT(EPOCH FROM a.created_at)*1000) AS viewed
FROM public.announcements AS a,
(SELECT COALESCE(CAST(data ->> 'lastAnnouncementView' AS bigint), 0)
FROM public.users
WHERE user_id = %(userId)s
LIMIT 1) AS u(last)
ORDER BY a.created_at DESC;""",
{"userId": user_id})
cur.execute(
query
)
announcements = helper.list_to_camel_case(cur.fetchall())
for a in announcements:
a["createdAt"] = TimeUTC.datetime_to_timestamp(a["createdAt"])
if a["imageUrl"] is not None and len(a["imageUrl"]) > 0:
a["imageUrl"] = environ["announcement_url"] + a["imageUrl"]
return announcements
def view(user_id):
with pg_client.PostgresClient() as cur:
query = cur.mogrify("""
UPDATE public.users
SET data=data ||
('{"lastAnnouncementView":' ||
(EXTRACT(EPOCH FROM timezone('utc'::text, now())) * 1000)::bigint - 20 * 000 ||
'}')::jsonb
WHERE user_id = %(userId)s;""",
{"userId": user_id})
cur.execute(
query
)
return True