-
Notifications
You must be signed in to change notification settings - Fork 1.8k
/
Copy pathjoin-video.ts
51 lines (47 loc) · 1.51 KB
/
join-video.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import Component from '@glimmer/component';
import { inject as service } from '@ember/service';
import VideoStream from 'open-event-frontend/models/video-stream';
import Event from 'open-event-frontend/models/event';
import Loader from 'open-event-frontend/services/loader';
import { action } from '@ember/object';
import EventService from 'open-event-frontend/services/event';
interface Args {
videoStream: VideoStream;
event: Event;
hasStreams: boolean;
canAccess: boolean;
showSidePanel: () => void
}
export default class JoinVideo extends Component<Args> {
@service router: any;
@service loader!: Loader;
@service confirm: any;
@service l10n: any;
@service session : any;
@service declare event: EventService;
@action
openPanel(): void {
if (this.args.canAccess) {
this.args.showSidePanel?.();
this.eventCheckIn(this.args.event.identifier)
this.router.transitionTo({ queryParams: { side_panel: true } });
} else {
if (this.session.isAuthenticated) {
this.router.transitionTo('public', this.args.event, { queryParams: { video_dialog: true } });
} else {
this.router.transitionTo({ queryParams: { video_dialog: true } });
}
}
}
async eventCheckIn(event_identifier: string) {
try {
const data:any = {
'check_in_type' : 'event',
'is_check_in' : true
};
await this.loader.post(`events/${event_identifier}/virtual/check-in`, data);
} catch (e) {
// Ignore error to prevent stackoverflow
}
}
}