Skip to content

Commit 587407d

Browse files
committed
invite guests
1 parent 3c32210 commit 587407d

File tree

7 files changed

+622
-25
lines changed

7 files changed

+622
-25
lines changed

src/helpers/sendEventEmails.ts

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import { sendEmail } from "../utils/sendEmail"
2+
import { eventCancellationTemplate, eventInvitationTemplate, invitationCancellationTemplate } from "../utils/templates/eventInvitationTemplates";
3+
4+
export async function sendEventInvitations(
5+
email: string,
6+
eventId: string,
7+
eventTitle: string,
8+
hostName: string,
9+
eventStart: string,
10+
eventEnd: string,
11+
eventTimeToStart: string,
12+
eventTimeToEnd: string,
13+
){
14+
try{
15+
const content: string = eventInvitationTemplate(eventId,eventTitle,hostName,eventStart,eventEnd,eventTimeToStart,eventTimeToEnd)
16+
await sendEmail(
17+
email,
18+
'Event Invitation',
19+
content,
20+
null,
21+
process.env.ADMIN_EMAIL,
22+
process.env.ADMIN_PASS,
23+
)
24+
}catch(err){
25+
return err
26+
}
27+
}
28+
29+
export async function sendEventCancellations(
30+
email: string,
31+
eventTitle: string,
32+
){
33+
try{
34+
const content: string = eventCancellationTemplate(eventTitle)
35+
await sendEmail(
36+
email,
37+
'Event Cancelled',
38+
content,
39+
null,
40+
process.env.ADMIN_EMAIL,
41+
process.env.ADMIN_PASS,
42+
)
43+
}catch(err){
44+
return err
45+
}
46+
}
47+
48+
export async function sendInvitationCancellations(
49+
email: string,
50+
eventTitle: string,
51+
){
52+
try{
53+
const content: string = invitationCancellationTemplate(eventTitle)
54+
await sendEmail(
55+
email,
56+
'Invitation Cancelled',
57+
content,
58+
null,
59+
process.env.ADMIN_EMAIL,
60+
process.env.ADMIN_PASS,
61+
)
62+
}catch(err){
63+
return err
64+
}
65+
}

src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import StatisticsResolvers from './resolvers/invitationStatics.resolvers'
4949
import { IResolvers } from '@graphql-tools/utils'
5050
import invitationSchema from './schema/invitation.schema'
5151
import TableViewInvitationResolver from './resolvers/TableViewInvitationResolver'
52+
import eventSchema from './schema/event.schema'
5253

5354

5455
const PORT: number = parseInt(process.env.PORT!) || 4000
@@ -64,6 +65,7 @@ export const typeDefs = mergeTypeDefs([
6465
invitationSchema,
6566
notificationSchema,
6667
statisticsSchema,
68+
eventSchema,
6769
])
6870

6971
export const resolvers = mergeResolvers([

src/models/event.model.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
import mongoose, { Schema } from 'mongoose';
2+
3+
const INVITEE_STATUS = {
4+
PENDING: 'pending',
5+
ACCEPTED: 'accepted',
6+
DECLINED: 'declined'
7+
}
8+
29
const Event = mongoose.model(
310
'Event',
411
new Schema({
@@ -31,6 +38,19 @@ const Event = mongoose.model(
3138
type: String,
3239
required: true,
3340
},
41+
invitees: [
42+
{
43+
email:{
44+
type: String,
45+
required: true
46+
},
47+
status:{
48+
type: String,
49+
enum: INVITEE_STATUS,
50+
default: INVITEE_STATUS.PENDING,
51+
}
52+
}
53+
]
3454
})
3555
);
3656
export { Event };

0 commit comments

Comments
 (0)