48 lines
1.1 KiB
TypeScript
Raw Normal View History

import { EventType } from '../types/event.type';
2019-11-06 13:48:06 +09:00
export interface Info<T = {}> {
// 이벤트SEQ
seq: number;
// 이벤트타입
type: EventType;
// 발신자SEQ
senderSeq: number;
// 발신일시
2019-10-10 13:35:32 +09:00
sendDate: string;
// 발신내용
sentMessage: string;
2019-11-06 13:48:06 +09:00
// // 발신내용
sentMessageJson?: T;
// 수신자수
receiverCount: number;
}
2019-10-16 16:33:19 +09:00
export function isCopyable(eventType: EventType): boolean {
return (
EventType.Character === eventType || EventType.Translation === eventType
);
}
export function isRecalled(eventType: EventType): boolean {
return EventType.RecalledMessage === eventType;
}
2019-11-06 13:48:06 +09:00
export function isRecallable(event: Info<any>, userSeq: number): boolean {
2019-10-16 16:33:19 +09:00
return (
event.senderSeq === userSeq && event.type !== EventType.RecalledMessage
);
}
export function isForwardable(event: Info, expiredFileStdSeq: number): boolean {
if (event.type === EventType.File) {
if (!!expiredFileStdSeq && expiredFileStdSeq <= event.seq) {
// valid..
return true;
} else {
// expired..
return false;
}
}
return true;
}