From 05e0ab1f7b99eb9942407f6feccb9c8b0ee38bc5 Mon Sep 17 00:00:00 2001 From: elweyn Date: Tue, 4 Apr 2023 19:09:09 +0200 Subject: [PATCH] Query email to last createdAt for given event type --- backend/src/graphql/resolver/util/eventList.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 backend/src/graphql/resolver/util/eventList.ts diff --git a/backend/src/graphql/resolver/util/eventList.ts b/backend/src/graphql/resolver/util/eventList.ts new file mode 100644 index 000000000..856d327eb --- /dev/null +++ b/backend/src/graphql/resolver/util/eventList.ts @@ -0,0 +1,16 @@ +import { Event as DbEvent } from '@entity/Event' +import { User } from '@entity/User' +import { UserContact } from '@entity/UserContact' + +export const lastDateTimeEvents = async (eventType: string): Promise => { + return DbEvent + .createQueryBuilder('event') + .select('MAX(event.created_at)', 'value') + .leftJoin(User, 'user', 'affected_user_id = user.id') + .leftJoin(UserContact, 'usercontact', 'user.id = usercontact.user_id') + .addSelect('usercontact.email', 'email') + .where('event.type = :eventType', { eventType }) + .andWhere('usercontact.email IS NOT NULL') + .groupBy('event.affected_user_id') + .getRawMany() +} \ No newline at end of file