2019-09-23 14:23:24 +09:00
|
|
|
import { EventType } from '../types/event.type';
|
|
|
|
|
2019-11-06 13:48:06 +09:00
|
|
|
export interface Info<T = {}> {
|
2019-09-23 14:23:24 +09:00
|
|
|
// 이벤트SEQ
|
|
|
|
seq: number;
|
|
|
|
// 이벤트타입
|
|
|
|
type: EventType;
|
|
|
|
// 발신자SEQ
|
|
|
|
senderSeq: number;
|
|
|
|
// 발신일시
|
2019-10-10 13:35:32 +09:00
|
|
|
sendDate: string;
|
2019-09-23 14:23:24 +09:00
|
|
|
// 발신내용
|
|
|
|
sentMessage: string;
|
2019-11-06 13:48:06 +09:00
|
|
|
// // 발신내용
|
|
|
|
sentMessageJson?: T;
|
2019-09-23 14:23:24 +09:00
|
|
|
// 수신자수
|
|
|
|
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
|
|
|
|
);
|
|
|
|
}
|
2019-12-04 14:36:15 +09:00
|
|
|
|
|
|
|
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;
|
|
|
|
}
|