1
0
mirror of https://github.com/wbbaddons/Tims-Chat.git synced 2024-12-22 21:40:08 +00:00
Tims-Chat/files_wcf/js/Bastelstu.be/Chat/Message.js

92 lines
1.5 KiB
JavaScript
Raw Normal View History

2018-08-16 22:30:59 +00:00
/*
2021-02-04 22:04:35 +00:00
* Copyright (c) 2010-2021 Tim Düsterhus.
2018-08-16 22:30:59 +00:00
*
* Use of this software is governed by the Business Source License
* included in the LICENSE file.
*
2022-09-17 14:23:02 +00:00
* Change Date: 2026-09-17
2018-08-16 22:30:59 +00:00
*
* On the date above, in accordance with the Business Source
* License, use of this software will be governed by version 2
* or later of the General Public License.
*/
2020-11-01 16:41:19 +00:00
define([
'./Helper',
'WoltLabSuite/Core/Date/Util',
'WoltLabSuite/Core/User',
], function (Helper, DateUtil, User) {
'use strict'
2018-08-16 22:30:59 +00:00
2020-11-01 16:41:19 +00:00
const m = Symbol('message')
2018-08-16 22:30:59 +00:00
class Message {
constructor(MessageType, message) {
this[m] = Helper.deepFreeze(message)
this.MessageType = MessageType
}
get messageID() {
return this[m].messageID
}
get objectType() {
return this[m].objectType
}
getMessageType() {
return this.MessageType[this.objectType.replace(/\./g, '-')]
}
get time() {
return this[m].time
}
get formattedTime() {
return DateUtil.format(this.date, 'H:i:s')
}
get date() {
return new Date(this[m].time * 1000)
}
get link() {
return this[m].link
}
get userID() {
return this[m].userID
}
get username() {
return this[m].username
}
get isIgnored() {
return this[m].isIgnored
}
get isDeleted() {
return this[m].isDeleted
}
get payload() {
return this[m].payload
}
isOwnMessage() {
return this.userID === User.userId
}
wrap() {
return { message: this[m] }
}
toJSON() {
return this[m]
}
}
return Message
2020-11-01 16:41:19 +00:00
})