@@ -9,6 +9,7 @@ import { NotificationService } from "@/transient-services/notification/notificat
99import { OfflineryNotification } from "@/types/notification-message.types" ;
1010import { ELanguage } from "@/types/user.types" ;
1111import { formatMultiLanguageDateTimeStringsCET } from "@/utils/date.utils" ;
12+ import { getPointFromTypedCoordinates } from "@/utils/location.utils" ;
1213import { countExpoPushTicketStatuses } from "@/utils/misc.utils" ;
1314import { MailerService } from "@nestjs-modules/mailer" ;
1415import {
@@ -20,7 +21,7 @@ import {
2021} from "@nestjs/common" ;
2122import { InjectRepository } from "@nestjs/typeorm" ;
2223import { I18nService } from "nestjs-i18n" ;
23- import { Repository } from "typeorm" ;
24+ import { MoreThanOrEqual , Repository } from "typeorm" ;
2425import { Event } from "./event.entity" ;
2526
2627@Injectable ( )
@@ -39,6 +40,20 @@ export class EventService {
3940 private readonly mailService : MailerService ,
4041 ) { }
4142
43+ async getAllUpcomingEvents ( ) : Promise < Event [ ] > {
44+ const now = new Date ( ) ;
45+
46+ return this . eventRepository . find ( {
47+ where : {
48+ // @dev upcoming or currently active/running
49+ eventEndDateTime : MoreThanOrEqual ( now ) ,
50+ } ,
51+ order : {
52+ eventStartDateTime : "ASC" ,
53+ } ,
54+ } ) ;
55+ }
56+
4257 async createNewEvent ( newEvent : NewEventDTO ) : Promise < NewEventResponseDTO > {
4358 let responseDTO : NewEventResponseDTO = {
4459 error : 0 ,
@@ -48,6 +63,36 @@ export class EventService {
4863 } ;
4964
5065 try {
66+ const newEventEntity : Event = this . eventRepository . create ( ) ;
67+ await this . eventRepository . save ( newEventEntity ) ; // otherwise relationship constraints don't work
68+ newEventEntity . eventKey = newEvent . eventKey ;
69+ newEventEntity . mapsLink = newEvent . mapsLink ;
70+ newEventEntity . location = getPointFromTypedCoordinates (
71+ newEvent . location ,
72+ ) ;
73+ newEventEntity . venueWithArticleIfNeeded =
74+ await this . multilingualStringService . createTranslations (
75+ newEvent . venueWithArticleIfNeeded ,
76+ newEventEntity . LBL_VENUE_WITH_ARTICLE_IF_NEEDED ,
77+ newEventEntity . entityType ,
78+ newEventEntity . id ,
79+ ) ;
80+
81+ newEventEntity . address =
82+ await this . multilingualStringService . createTranslations (
83+ newEvent . address ,
84+ newEventEntity . LBL_ADDRESS ,
85+ newEventEntity . entityType ,
86+ newEventEntity . id ,
87+ ) ;
88+ newEventEntity . eventStartDateTime = newEvent . eventStartDateTime ;
89+ newEventEntity . eventEndDateTime = newEvent . eventEndDateTime ;
90+ await this . eventRepository . save ( newEventEntity ) ;
91+
92+ this . logger . debug (
93+ `Event ${ newEventEntity . id } persisted. Notifying users now.` ,
94+ ) ;
95+
5196 const notifications : OfflineryNotification [ ] = [ ] ;
5297 const users = await this . userService . findAll ( ) ; // TODO: restrict by region and also only active accounts
5398
@@ -135,30 +180,6 @@ export class EventService {
135180 throw new InternalServerErrorException ( err ) ;
136181 }
137182
138- const newEventEntity : Event = this . eventRepository . create ( ) ;
139- await this . eventRepository . save ( newEventEntity ) ; // otherwise relationship constraints don't work
140- newEventEntity . eventKey = newEvent . eventKey ;
141- newEventEntity . venueWithArticleIfNeeded =
142- await this . multilingualStringService . createTranslations (
143- newEvent . venueWithArticleIfNeeded ,
144- newEventEntity . LBL_VENUE_WITH_ARTICLE_IF_NEEDED ,
145- newEventEntity . entityType ,
146- newEventEntity . id ,
147- ) ;
148-
149- newEventEntity . address =
150- await this . multilingualStringService . createTranslations (
151- newEvent . address ,
152- newEventEntity . LBL_ADDRESS ,
153- newEventEntity . entityType ,
154- newEventEntity . id ,
155- ) ;
156- newEventEntity . eventStartDateTime = newEvent . eventStartDateTime ;
157- newEventEntity . eventEndDateTime = newEvent . eventEndDateTime ;
158- await this . eventRepository . save ( newEventEntity ) ;
159-
160- this . logger . debug ( `Event ${ newEventEntity . id } persisted.` ) ;
161-
162183 return responseDTO ;
163184 }
164185
0 commit comments