summaryrefslogtreecommitdiff
path: root/src/server/api/stream/channels/messaging.ts
blob: 8397f849ffd2c4769282a91881b022070455e896 (plain)
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
import autobind from 'autobind-decorator';
import read from '../../common/read-messaging-message';
import Channel from '../channel';

export default class extends Channel {
	public readonly chName = 'messaging';
	public static shouldShare = false;
	public static requireCredential = true;

	private otherpartyId: string;

	@autobind
	public async init(params: any) {
		this.otherpartyId = params.otherparty as string;

		// Subscribe messaging stream
		this.subscriber.on(`messagingStream:${this.user!.id}-${this.otherpartyId}`, data => {
			this.send(data);
		});
	}

	@autobind
	public onMessage(type: string, body: any) {
		switch (type) {
			case 'read':
				read(this.user!.id, this.otherpartyId, body.id);
				break;
		}
	}
}