- 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
42 lines
1.5 KiB
Python
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
|