@@ -67,23 +67,25 @@ async function getCallIdFromChannel() {
67
67
}
68
68
69
69
70
- async function addParticipant ( user ) {
70
+ async function addParticipantToCall ( zoomEvent ) {
71
+ const slackUser = toSlackUser ( zoomEvent ) ;
71
72
const call_id = await getCallIdFromChannel ( ) ;
72
- await slack . calls . participants . add ( { id : call_id , users : [ user ] } ) ;
73
+ await slack . calls . participants . add ( { id : call_id , users : [ slackUser ] } ) ;
73
74
}
74
75
75
76
76
- async function removeParticipant ( user ) {
77
+ async function removeParticipantFromCall ( zoomEvent ) {
78
+ const slackUser = toSlackUser ( zoomEvent ) ;
77
79
const call_id = await getCallIdFromChannel ( ) ;
78
- await slack . calls . participants . remove ( { id : call_id , users : [ user ] } ) ;
80
+ await slack . calls . participants . remove ( { id : call_id , users : [ slackUser ] } ) ;
79
81
}
80
82
81
83
82
84
function toSlackUser ( zoomEvent ) {
83
- const zoomName = zoomEvent ?. payload ?. object ?. participant ?. user_name ;
85
+ const zoomDisplayName = zoomEvent ?. payload ?. object ?. participant ?. user_name ;
84
86
return {
85
- external_id : zoomName ,
86
- display_name : zoomName ,
87
+ external_id : zoomDisplayName ,
88
+ display_name : zoomDisplayName ,
87
89
} ;
88
90
}
89
91
@@ -100,30 +102,37 @@ async function getActiveParticipants() {
100
102
}
101
103
102
104
105
+ async function endCall ( ) {
106
+ const call_id = await getCallIdFromChannel ( ) ;
107
+ await slack . calls . end ( { id : call_id } ) ;
108
+ }
109
+
110
+
103
111
exports . handler = async function ( event ) {
104
112
if ( isSlashCommand ( event ) ) {
113
+ // FIXME: Check for /co-working-room end
105
114
const call_id = await handleStartCall ( ) ;
106
115
return { statusCode : 200 , body : JSON . stringify ( call_id ) }
107
116
}
108
117
109
118
// Zoom webhooks
110
119
const zoomEvent = parseBody ( event ) ;
111
120
const zoomEventName = zoomEvent ?. event ;
121
+
112
122
if ( zoomEventName === "endpoint.url_validation" ) {
113
- return json ( 200 , handleValidation ( zoomEvent ) ) ;
123
+ return json ( 200 , handleValidation ( zoomEvent ) ) ; // FIXME: Define `json`
114
124
}
115
125
116
126
else if ( zoomEventName === "meeting.participant_joined" ) {
117
- await addParticipant ( toSlackUser ( zoomEvent ) ) ;
127
+ await addParticipantToCall ( zoomEvent ) ;
118
128
return { statusCode : 204 } ;
119
129
}
120
130
121
131
else if ( zoomEventName === "meeting.participant_left" ) {
122
- await removeParticipant ( toSlackUser ( zoomEvent ) ) ;
132
+ await removeParticipantFromCall ( zoomEvent ) ;
123
133
const active = await getActiveParticipants ( ) ;
124
134
if ( active . length === 0 ) {
125
- const call_id = await getCallIdFromChannel ( ) ;
126
- await slack . calls . end ( { id : call_id } ) ;
135
+ endCall ( ) ;
127
136
}
128
137
return { statusCode : 204 } ;
129
138
}
0 commit comments