reldens
Version:
Reldens - MMORPG Platform
49 lines (42 loc) • 1.36 kB
JavaScript
/**
*
* Reldens - MessageFactory
*
*/
const { GameConst } = require('../game/constants');
const { ChatConst } = require('./constants');
const { Logger } = require('@reldens/utils');
class MessageFactory
{
static create(type, message, messageData = {}, from, to)
{
if(!type){
Logger.error('Missing "type" on MessageFactory.', {type, message});
return false;
}
if(!message){
Logger.error('Missing "message" on MessageFactory.', {type, message});
return false;
}
let messageSendModel = {
[GameConst.ACTION_KEY]: ChatConst.CHAT_ACTION,
[ChatConst.TYPES.KEY]: type,
[ChatConst.MESSAGE.KEY]: message,
};
if(from){
messageSendModel[ChatConst.MESSAGE.FROM] = from;
}
if(to){
messageSendModel[ChatConst.MESSAGE.TO] = to;
}
if(0 < Object.keys(messageData).length){
messageSendModel[ChatConst.MESSAGE.DATA.KEY] = messageData;
}
return messageSendModel;
}
static withDataToJson(message, messageData = {})
{
return JSON.stringify(Object.assign({[ChatConst.MESSAGE.KEY]: message.toString()}, messageData));
}
}
module.exports.MessageFactory = MessageFactory;