997db0090e4a9b5fb9f8ed65b74f9635485db2f3
[motion-next.git] / server / api / chatMessage / chatMessage.controller.js
1 const a80_0x2c92=['fieldName','isNil','order','http','util','CmContact','error','like','register','params','pick','Content-Range','body','readAt','reject','query','update','code','api','index','rawAttributes','sequelize','manual','info','user','sort','name','show','destroy','status','moment','length','merge','SIP/%s','request','ChatMessage,\x20%s,\x20%s','key','channel','attributes','agent','findOne','read1stAt','get','fields','filter','count','../../components/parsers/qs','type','interface','message','acceptmessage','intersection','request\x20sent','read','ChatMessage','parse','ChatInteraction','map','RejectMessage','chat','interaction','ChatInteractionId','catch','acceptMessage','end','VIRTUAL','ChatMessage,\x20%s,\x20%s,\x20%s','where','options','json','then','../../config/logger','UserId','rejectMessage','debug','stringify','EventManager','describe','Contact','filters','role','include','limit','client','includeAll','event','undefined','model','./chatMessage.socket','YYYY-MM-DD\x20HH:mm:ss','null','accept','set','keys','offset','format','create','lodash'];(function(_0x11717c,_0x2c921f){const _0x2b5aa4=function(_0xaaf499){while(--_0xaaf499){_0x11717c['push'](_0x11717c['shift']());}};_0x2b5aa4(++_0x2c921f);}(a80_0x2c92,0x8c));const a80_0x2b5a=function(_0x11717c,_0x2c921f){_0x11717c=_0x11717c-0x0;let _0x2b5aa4=a80_0x2c92[_0x11717c];return _0x2b5aa4;};const _0x5c1db5=a80_0x2b5a;'use strict';const moment=require(_0x5c1db5('0x56')),util=require(_0x5c1db5('0x3c')),_=require(_0x5c1db5('0x37')),qs=require(_0x5c1db5('0x4')),logger=require(_0x5c1db5('0x1d'))(_0x5c1db5('0x4a')),{getSocket}=require('../../rediscache'),db=require('../../mysqldb')['db'],{Op}=require(_0x5c1db5('0x4d')),interaction_log=require(_0x5c1db5('0x1d'))('chat-interactions'),socket=getSocket();require(_0x5c1db5('0x2e'))[_0x5c1db5('0x40')](socket);const jayson=require('jayson/promise'),client=jayson[_0x5c1db5('0x29')][_0x5c1db5('0x3b')]({'port':0x232c}),client9002=jayson[_0x5c1db5('0x29')][_0x5c1db5('0x3b')]({'port':0x232a});function respondWithRpcPromise(_0xaaf499,_0x44d9d3,_0x9f75c6,_0x408af6){return new Promise(function(_0x34b961,_0x1e0e6d){const _0x50a6d1=a80_0x2b5a,_0x4802c1=_0x408af6||client;return _0x4802c1[_0x50a6d1('0x5a')](_0xaaf499,_0x9f75c6)[_0x50a6d1('0x1c')](function(_0x36a0cb){const _0x94f549=_0x50a6d1;logger[_0x94f549('0x4f')](_0x94f549('0x5b'),_0x44d9d3,_0x94f549('0xa')),logger[_0x94f549('0x20')](_0x94f549('0x18'),_0x44d9d3,_0x94f549('0xa'),JSON['stringify'](_0x36a0cb));if(_0x36a0cb[_0x94f549('0x3e')]){if(_0x36a0cb['error'][_0x94f549('0x49')]===0x1f4)return logger[_0x94f549('0x3e')]('ChatMessage,\x20%s,\x20%s',_0x44d9d3,_0x36a0cb[_0x94f549('0x3e')][_0x94f549('0x7')]),_0x1e0e6d(_0x36a0cb['error'][_0x94f549('0x7')]);return logger[_0x94f549('0x3e')]('ChatMessage,\x20%s,\x20%s',_0x44d9d3,_0x36a0cb['error'][_0x94f549('0x7')]),_0x34b961(_0x36a0cb[_0x94f549('0x3e')][_0x94f549('0x7')]);}else logger[_0x94f549('0x4f')](_0x94f549('0x5b'),_0x44d9d3,_0x94f549('0xa')),_0x34b961(_0x36a0cb['result'][_0x94f549('0x7')]);})[_0x50a6d1('0x14')](function(_0x27ce1f){const _0x4af57d=_0x50a6d1;logger[_0x4af57d('0x3e')](_0x4af57d('0x5b'),_0x44d9d3,_0x27ce1f),_0x1e0e6d(_0x27ce1f);});});}function respondWithResult(_0x2852ff,_0xd85a9a){return _0xd85a9a=_0xd85a9a||0xc8,function(_0x308a69){const _0x8a0e66=a80_0x2b5a;if(_0x308a69)return _0x2852ff['status'](_0xd85a9a)[_0x8a0e66('0x1b')](_0x308a69);};}function respondWithFilteredResult(_0x25fa94,_0x426186){return function(_0x45fd52){const _0x2b48ff=a80_0x2b5a;if(_0x45fd52){const _0x5aaf4a=_0x45fd52[_0x2b48ff('0x3')],_0x54b462=_0x426186[_0x2b48ff('0x34')];let _0x194819=_0x426186[_0x2b48ff('0x34')]+_0x426186[_0x2b48ff('0x28')],_0x1e08a8;return _0x194819>=_0x5aaf4a?(_0x194819=_0x5aaf4a,_0x1e08a8=0xc8):_0x1e08a8=0xce,_0x25fa94['status'](_0x1e08a8),_0x25fa94[_0x2b48ff('0x32')](_0x2b48ff('0x43'),_0x54b462+'-'+_0x194819+'/'+_0x5aaf4a)[_0x2b48ff('0x1b')](_0x45fd52);}return null;};}function saveUpdates(_0xd672c1){return function(_0x40791a){const _0x36f9cd=a80_0x2b5a;if(_0x40791a)return _0x40791a[_0x36f9cd('0x48')](_0xd672c1)['then'](function(_0x13eb89){return _0x13eb89;});return null;};}function removeEntity(_0x325044){return function(_0x3d7032){const _0x4e8d17=a80_0x2b5a;if(_0x3d7032)return _0x3d7032[_0x4e8d17('0x54')]()[_0x4e8d17('0x1c')](function(){const _0x49e449=_0x4e8d17;_0x325044[_0x49e449('0x55')](0xcc)[_0x49e449('0x16')]();});};}function handleEntityNotFound(_0x1b6eea){return function(_0xc6e677){return!_0xc6e677&&_0x1b6eea['sendStatus'](0x194),_0xc6e677;};}function handleError(_0x20f820,_0x5c8c97){return _0x5c8c97=_0x5c8c97||0x1f4,function(_0x33eb0a){const _0x3cb480=a80_0x2b5a;logger['error'](_0x33eb0a['stack']),_0x33eb0a[_0x3cb480('0x52')]&&delete _0x33eb0a[_0x3cb480('0x52')],_0x20f820['status'](_0x5c8c97)['send'](_0x33eb0a);};}exports[_0x5c1db5('0x4b')]=function(_0x3ff7c1,_0x9f78f6){const _0x2ca223=_0x5c1db5;let _0x2642bb={};const _0x4d6124={},_0x1d75ca={'count':0x0,'rows':[]},_0x505484=_[_0x2ca223('0xf')](db[_0x2ca223('0xc')]['rawAttributes'],function(_0x37d984){const _0x4d04d=_0x2ca223;return{'name':_0x37d984[_0x4d04d('0x38')],'type':_0x37d984[_0x4d04d('0x5')][_0x4d04d('0x5c')]};});_0x4d6124[_0x2ca223('0x2d')]=_[_0x2ca223('0xf')](_0x505484,_0x2ca223('0x52')),_0x4d6124[_0x2ca223('0x47')]=_[_0x2ca223('0x33')](_0x3ff7c1[_0x2ca223('0x47')]),_0x4d6124[_0x2ca223('0x25')]=_[_0x2ca223('0x9')](_0x4d6124['model'],_0x4d6124[_0x2ca223('0x47')]),_0x2642bb[_0x2ca223('0x5e')]=_['intersection'](_0x4d6124[_0x2ca223('0x2d')],qs[_0x2ca223('0x1')](_0x3ff7c1[_0x2ca223('0x47')]['fields'])),_0x2642bb[_0x2ca223('0x5e')]=_0x2642bb[_0x2ca223('0x5e')][_0x2ca223('0x57')]?_0x2642bb[_0x2ca223('0x5e')]:_0x4d6124[_0x2ca223('0x2d')];typeof _0x3ff7c1['query']['nolimit']===_0x2ca223('0x2c')&&(_0x2642bb[_0x2ca223('0x28')]=qs[_0x2ca223('0x28')](_0x3ff7c1['query']['limit']),_0x2642bb[_0x2ca223('0x34')]=qs[_0x2ca223('0x34')](_0x3ff7c1['query'][_0x2ca223('0x34')]));_0x2642bb[_0x2ca223('0x3a')]=qs[_0x2ca223('0x51')](_0x3ff7c1[_0x2ca223('0x47')][_0x2ca223('0x51')]),_0x2642bb['where']=qs[_0x2ca223('0x25')](_[_0x2ca223('0x42')](_0x3ff7c1[_0x2ca223('0x47')],_0x4d6124[_0x2ca223('0x25')]),_0x505484);_0x3ff7c1[_0x2ca223('0x47')]['filter']&&(_0x2642bb[_0x2ca223('0x19')]=_[_0x2ca223('0x58')](_0x2642bb[_0x2ca223('0x19')],{[Op['or']]:_[_0x2ca223('0xf')](_0x505484,function(_0x51e79d){const _0x20785d=_0x2ca223;if(_0x51e79d['type']!==_0x20785d('0x17')){const _0x5190df={};return _0x5190df[_0x51e79d[_0x20785d('0x52')]]={[Op[_0x20785d('0x3f')]]:'%'+_0x3ff7c1[_0x20785d('0x47')][_0x20785d('0x2')]+'%'},_0x5190df;}})}));_0x2642bb=_['merge']({},_0x2642bb,_0x3ff7c1['options']);const _0x581cde={'where':_0x2642bb[_0x2ca223('0x19')]};return db[_0x2ca223('0xc')][_0x2ca223('0x3')](_0x581cde)[_0x2ca223('0x1c')](function(_0x12cda4){const _0x436ac2=_0x2ca223;return _0x1d75ca[_0x436ac2('0x3')]=_0x12cda4,_0x3ff7c1[_0x436ac2('0x47')]['includeAll']&&(_0x2642bb[_0x436ac2('0x27')]=[{'all':!![]}]),db[_0x436ac2('0xc')]['findAll'](_0x2642bb);})[_0x2ca223('0x1c')](function(_0x28ab5b){return _0x1d75ca['rows']=_0x28ab5b,_0x1d75ca;})[_0x2ca223('0x1c')](respondWithFilteredResult(_0x9f78f6,_0x2642bb))[_0x2ca223('0x14')](handleError(_0x9f78f6,null));},exports[_0x5c1db5('0x53')]=function(_0x3e386d,_0x318ba6){const _0x5ed978=_0x5c1db5;let _0x27c60a={'raw':!![],'where':{'id':_0x3e386d[_0x5ed978('0x41')]['id']}};const _0x5b0678={};return _0x5b0678[_0x5ed978('0x2d')]=_[_0x5ed978('0x33')](db['ChatMessage'][_0x5ed978('0x4c')]),_0x5b0678[_0x5ed978('0x47')]=_[_0x5ed978('0x33')](_0x3e386d['query']),_0x5b0678[_0x5ed978('0x25')]=_[_0x5ed978('0x9')](_0x5b0678[_0x5ed978('0x2d')],_0x5b0678[_0x5ed978('0x47')]),_0x27c60a[_0x5ed978('0x5e')]=_[_0x5ed978('0x9')](_0x5b0678['model'],qs[_0x5ed978('0x1')](_0x3e386d[_0x5ed978('0x47')][_0x5ed978('0x1')])),_0x27c60a[_0x5ed978('0x5e')]=_0x27c60a[_0x5ed978('0x5e')][_0x5ed978('0x57')]?_0x27c60a[_0x5ed978('0x5e')]:_0x5b0678['model'],_0x3e386d[_0x5ed978('0x47')][_0x5ed978('0x2a')]&&(_0x27c60a[_0x5ed978('0x27')]=[{'all':!![]}]),_0x27c60a=_['merge']({},_0x27c60a,_0x3e386d[_0x5ed978('0x1a')]),db[_0x5ed978('0xc')][_0x5ed978('0x60')](_0x27c60a)[_0x5ed978('0x1c')](handleEntityNotFound(_0x318ba6,null))[_0x5ed978('0x1c')](respondWithResult(_0x318ba6,null))[_0x5ed978('0x14')](handleError(_0x318ba6,null));},exports[_0x5c1db5('0x36')]=function(_0x2096b4,_0x3fdbfa){const _0x4b96d0=_0x5c1db5;return db[_0x4b96d0('0xc')][_0x4b96d0('0x36')](_0x2096b4['body'],{})[_0x4b96d0('0x1c')](respondWithResult(_0x3fdbfa,0xc9))[_0x4b96d0('0x14')](handleError(_0x3fdbfa,null));},exports[_0x5c1db5('0x48')]=function(_0x68b284,_0x3a3f30){const _0x46be28=_0x5c1db5;return _0x68b284['body']['id']&&delete _0x68b284[_0x46be28('0x44')]['id'],db[_0x46be28('0xc')][_0x46be28('0x60')]({'where':{'id':_0x68b284['params']['id']}})[_0x46be28('0x1c')](handleEntityNotFound(_0x3a3f30,null))['then'](saveUpdates(_0x68b284[_0x46be28('0x44')],null))[_0x46be28('0x1c')](respondWithResult(_0x3a3f30,null))[_0x46be28('0x14')](handleError(_0x3a3f30,null));},exports[_0x5c1db5('0x54')]=function(_0x11e624,_0xdcacb4){const _0x4b8c9a=_0x5c1db5;return db[_0x4b8c9a('0xc')]['findOne']({'where':{'id':_0x11e624[_0x4b8c9a('0x41')]['id']}})[_0x4b8c9a('0x1c')](handleEntityNotFound(_0xdcacb4,null))[_0x4b8c9a('0x1c')](removeEntity(_0xdcacb4,null))[_0x4b8c9a('0x14')](handleError(_0xdcacb4,null));},exports[_0x5c1db5('0x23')]=function(_0x31ef94,_0x465cea){const _0x514301=_0x5c1db5;return db[_0x514301('0xc')]['describe']()[_0x514301('0x1c')](respondWithResult(_0x465cea,null))[_0x514301('0x14')](handleError(_0x465cea,null));},exports[_0x5c1db5('0x31')]=function(_0xc6ba3,_0xf51035){const _0x3483bb=_0x5c1db5,_0x2dbb56={'channel':_0x3483bb('0x11')};return _0xc6ba3[_0x3483bb('0x44')]['id']&&delete _0xc6ba3['body']['id'],_0xc6ba3['body'][_0x3483bb('0xb')]=!![],_0xc6ba3[_0x3483bb('0x44')][_0x3483bb('0x45')]=moment()[_0x3483bb('0x35')](_0x3483bb('0x2f')),_0xc6ba3[_0x3483bb('0x44')]['UserId']=_0xc6ba3[_0x3483bb('0x44')][_0x3483bb('0x1e')]||_0xc6ba3[_0x3483bb('0x50')]['id'],db[_0x3483bb('0xc')][_0x3483bb('0x60')]({'where':{'id':_0xc6ba3['params']['id'],'UserId':null},'include':[{'model':db[_0x3483bb('0x3d')],'as':_0x3483bb('0x24')}]})[_0x3483bb('0x1c')](handleEntityNotFound(_0xf51035,null))[_0x3483bb('0x1c')](saveUpdates(_0xc6ba3[_0x3483bb('0x44')],null))['then'](function(_0x1c409b){const _0x4bcedf=_0x3483bb;if(_0x1c409b)return _0x2dbb56[_0x4bcedf('0x7')]=_0x1c409b[_0x4bcedf('0x0')]({'plain':!![]}),db[_0x4bcedf('0xe')][_0x4bcedf('0x60')]({'where':{'id':_0x1c409b[_0x4bcedf('0x13')]}});return null;})['then'](handleEntityNotFound(_0xf51035,null))[_0x3483bb('0x1c')](function(_0x57b69b){const _0x3d0ec5=_0x3483bb;if(_0x57b69b)return _0x57b69b[_0x3d0ec5('0x48')]({'UserId':_0xc6ba3['body'][_0x3d0ec5('0x1e')],'read1stAt':_[_0x3d0ec5('0x39')](_0x57b69b[_0x3d0ec5('0x61')])?moment()['format'](_0x3d0ec5('0x2f')):undefined});return null;})[_0x3483bb('0x1c')](function(_0x360e0a){const _0x2e8561=_0x3483bb;if(_0x360e0a)return _0x2dbb56[_0x2e8561('0x12')]=_0x360e0a[_0x2e8561('0x0')]({'plain':!![]}),interaction_log['info']('[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0xc6ba3[_0x2e8561('0x50')]['id'],_0xc6ba3[_0x2e8561('0x50')][_0x2e8561('0x52')],_0xc6ba3[_0x2e8561('0x50')][_0x2e8561('0x26')],_0x2dbb56[_0x2e8561('0x12')]['id'],_0xc6ba3[_0x2e8561('0x44')]?JSON[_0x2e8561('0x21')](_0xc6ba3['body']):_0x2e8561('0x30')),respondWithRpcPromise('AcceptMessage',_0x2e8561('0x15'),_0x2dbb56);return null;})['then'](function(_0xf6e178){const _0x2190c7=_0x3483bb;if(_0xf6e178){if(_0xc6ba3[_0x2190c7('0x44')][_0x2190c7('0x4e')])return _0x2dbb56[_0x2190c7('0x7')][_0x2190c7('0x6')]=util[_0x2190c7('0x35')]('SIP/%s',_0xc6ba3['user'][_0x2190c7('0x52')]),_0x2dbb56[_0x2190c7('0x7')][_0x2190c7('0x5d')]=_0x2dbb56['channel'],_0x2dbb56['message'][_0x2190c7('0x2b')]=_0x2190c7('0x31'),respondWithRpcPromise('EventManager','EventManager',{'event':_0x2190c7('0x8'),'message':_[_0x2190c7('0x58')](_0x2dbb56[_0x2190c7('0x7')],JSON[_0x2190c7('0xd')](_0x2dbb56[_0x2190c7('0x12')]['formData']))},client9002)[_0x2190c7('0x1c')](function(){return _0x2dbb56;});return _0x2dbb56;}return null;})[_0x3483bb('0x1c')](respondWithResult(_0xf51035,null))[_0x3483bb('0x14')](handleError(_0xf51035,null));},exports[_0x5c1db5('0x46')]=function(_0x5cadf7,_0x15d477){const _0x4b402e=_0x5c1db5,_0x2a88ac={'agent':{},'channel':_0x4b402e('0x11')};return _0x5cadf7[_0x4b402e('0x44')]['id']&&delete _0x5cadf7['body']['id'],_0x5cadf7[_0x4b402e('0x44')][_0x4b402e('0x1e')]=_0x5cadf7['body'][_0x4b402e('0x1e')]||_0x5cadf7[_0x4b402e('0x50')]['id'],_0x2a88ac[_0x4b402e('0x5f')]['id']=_0x5cadf7[_0x4b402e('0x44')]['UserId'],db[_0x4b402e('0xc')]['findOne']({'where':{'id':_0x5cadf7[_0x4b402e('0x41')]['id'],'UserId':null}})[_0x4b402e('0x1c')](handleEntityNotFound(_0x15d477,null))[_0x4b402e('0x1c')](function(_0x3b7bff){const _0x3188e5=_0x4b402e;if(_0x3b7bff)return _0x2a88ac[_0x3188e5('0x7')]=_0x3b7bff['get']({'plain':!![]}),db[_0x3188e5('0xe')]['findOne']({'where':{'id':_0x3b7bff[_0x3188e5('0x13')]}});return null;})['then'](handleEntityNotFound(_0x15d477,null))[_0x4b402e('0x1c')](function(_0x17025b){const _0x5172a8=_0x4b402e;if(_0x17025b)return _0x2a88ac['interaction']=_0x17025b[_0x5172a8('0x0')]({'plain':!![]}),interaction_log['info']('[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x5cadf7[_0x5172a8('0x50')]['id'],_0x5cadf7[_0x5172a8('0x50')][_0x5172a8('0x52')],_0x5cadf7[_0x5172a8('0x50')][_0x5172a8('0x26')],_0x2a88ac[_0x5172a8('0x12')]['id'],_0x5cadf7['body']?JSON[_0x5172a8('0x21')](_0x5cadf7[_0x5172a8('0x44')]):_0x5172a8('0x30')),respondWithRpcPromise(_0x5172a8('0x10'),_0x5172a8('0x1f'),_0x2a88ac);return null;})[_0x4b402e('0x1c')](function(_0x4618d3){const _0x1042d8=_0x4b402e;if(_0x4618d3)return _0x4618d3[_0x1042d8('0x7')]['interface']=util[_0x1042d8('0x35')](_0x1042d8('0x59'),_0x5cadf7[_0x1042d8('0x50')][_0x1042d8('0x52')]),_0x4618d3[_0x1042d8('0x7')][_0x1042d8('0x5d')]=_0x2a88ac[_0x1042d8('0x5d')],_0x4618d3[_0x1042d8('0x7')]['event']='reject',respondWithRpcPromise(_0x1042d8('0x22'),_0x1042d8('0x22'),{'event':'rejectmessage','message':_0x4618d3[_0x1042d8('0x7')]},client9002),_0x2a88ac;return null;})[_0x4b402e('0x1c')](respondWithResult(_0x15d477,null))[_0x4b402e('0x14')](handleError(_0x15d477,null));};