c9fb28f955cef88fbb4678d101f3ac391d42e06d
[motion2.git] / server / api / chatInternalMessage / chatInternalMessage.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x8e8f=['localhost','socket.io-emitter','./chatInternalMessage.socket','register','status','count','offset','limit','set','apply','reject','save','update','then','destroy','error','name','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','keys','length','body','find','params','describe','get','messages','lastMessageAt','lastMessage','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','user','role','userpic','internal','online','showWebBar','VoiceQueue','VoiceQueues','Agents','userProfileId','autoAssociation','isEmpty','resourceId','push','read','html-pdf','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','redis','defaults'];(function(_0xa1e02d,_0x234922){var _0x39f995=function(_0x547f32){while(--_0x547f32){_0xa1e02d['push'](_0xa1e02d['shift']());}};_0x39f995(++_0x234922);}(_0x8e8f,0x10e));var _0xf8e8=function(_0x117798,_0x1c9a8c){_0x117798=_0x117798-0x0;var _0x489679=_0x8e8f[_0x117798];return _0x489679;};'use strict';var pdf=require(_0xf8e8('0x0'));var emlformat=require(_0xf8e8('0x1'));var rimraf=require(_0xf8e8('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf8e8('0x3'));var rp=require('request-promise');var moment=require(_0xf8e8('0x4'));var BPromise=require(_0xf8e8('0x5'));var Mustache=require(_0xf8e8('0x6'));var util=require(_0xf8e8('0x7'));var path=require(_0xf8e8('0x8'));var sox=require(_0xf8e8('0x9'));var csv=require(_0xf8e8('0xa'));var ejs=require(_0xf8e8('0xb'));var fs=require('fs');var _=require(_0xf8e8('0xc'));var squel=require(_0xf8e8('0xd'));var crypto=require(_0xf8e8('0xe'));var jsforce=require(_0xf8e8('0xf'));var deskjs=require(_0xf8e8('0x10'));var toCsv=require(_0xf8e8('0xa'));var querystring=require(_0xf8e8('0x11'));var Papa=require(_0xf8e8('0x12'));var Redis=require(_0xf8e8('0x13'));var authService=require(_0xf8e8('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf8e8('0x15'));var logger=require(_0xf8e8('0x16'))('api');var utils=require(_0xf8e8('0x17'));var config=require(_0xf8e8('0x18'));var db=require('../../mysqldb')['db'];config[_0xf8e8('0x19')]=_[_0xf8e8('0x1a')](config['redis'],{'host':_0xf8e8('0x1b'),'port':0x18eb});var socket=require(_0xf8e8('0x1c'))(new Redis(config[_0xf8e8('0x19')]));require(_0xf8e8('0x1d'))[_0xf8e8('0x1e')](socket);function respondWithStatusCode(_0xf9b911,_0xd86688){_0xd86688=_0xd86688||0xcc;return function(_0x417f7f){if(_0x417f7f){return _0xf9b911['sendStatus'](_0xd86688);}return _0xf9b911[_0xf8e8('0x1f')](_0xd86688)['end']();};}function respondWithResult(_0x391f2a,_0x11ad49){_0x11ad49=_0x11ad49||0xc8;return function(_0x422a2c){if(_0x422a2c){return _0x391f2a[_0xf8e8('0x1f')](_0x11ad49)['json'](_0x422a2c);}};}function respondWithFilteredResult(_0x3da076,_0x36caa8){return function(_0x1e71dc){if(_0x1e71dc){var _0x55ce87=_0x1e71dc[_0xf8e8('0x20')],_0x39b5e3=_0x36caa8[_0xf8e8('0x21')],_0xc2007c=_0x36caa8[_0xf8e8('0x21')]+_0x36caa8[_0xf8e8('0x22')],_0x14a93b;if(_0xc2007c>=_0x55ce87){_0xc2007c=_0x55ce87;_0x14a93b=0xc8;}else{_0x14a93b=0xce;}_0x3da076[_0xf8e8('0x1f')](_0x14a93b);return _0x3da076[_0xf8e8('0x23')]('Content-Range',_0x39b5e3+'-'+_0xc2007c+'/'+_0x55ce87)['json'](_0x1e71dc);}return null;};}function patchUpdates(_0x2f587e){return function(_0x28241d){try{jsonpatch[_0xf8e8('0x24')](_0x28241d,_0x2f587e,!![]);}catch(_0x2f942c){return BPromise[_0xf8e8('0x25')](_0x2f942c);}return _0x28241d[_0xf8e8('0x26')]();};}function saveUpdates(_0x8d175,_0x323988){return function(_0x2fd197){if(_0x2fd197){return _0x2fd197[_0xf8e8('0x27')](_0x8d175)[_0xf8e8('0x28')](function(_0x2806b8){return _0x2806b8;});}return null;};}function removeEntity(_0x1e461a,_0x384000){return function(_0x24cffb){if(_0x24cffb){return _0x24cffb[_0xf8e8('0x29')]()[_0xf8e8('0x28')](function(){_0x1e461a['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2a1bd0,_0x5daa2f){return function(_0x71dfd7){if(!_0x71dfd7){_0x2a1bd0['sendStatus'](0x194);}return _0x71dfd7;};}function handleError(_0x375467,_0x5ad3cc){_0x5ad3cc=_0x5ad3cc||0x1f4;return function(_0x1378ca){logger[_0xf8e8('0x2a')](_0x1378ca['stack']);if(_0x1378ca['name']){delete _0x1378ca[_0xf8e8('0x2b')];}_0x375467[_0xf8e8('0x1f')](_0x5ad3cc)['send'](_0x1378ca);};}exports[_0xf8e8('0x2c')]=function(_0x1c369e,_0x3d00d4){var _0x46b7a5={},_0x3f05e8={},_0x3d44c4={'count':0x0,'rows':[]};var _0x16a316=_[_0xf8e8('0x2d')](db[_0xf8e8('0x2e')][_0xf8e8('0x2f')],function(_0x5410bf){return{'name':_0x5410bf[_0xf8e8('0x30')],'type':_0x5410bf[_0xf8e8('0x31')][_0xf8e8('0x32')]};});_0x3f05e8[_0xf8e8('0x33')]=_[_0xf8e8('0x2d')](_0x16a316,'name');_0x3f05e8[_0xf8e8('0x34')]=_['keys'](_0x1c369e[_0xf8e8('0x34')]);_0x3f05e8[_0xf8e8('0x35')]=_[_0xf8e8('0x36')](_0x3f05e8[_0xf8e8('0x33')],_0x3f05e8[_0xf8e8('0x34')]);_0x46b7a5[_0xf8e8('0x37')]=_[_0xf8e8('0x36')](_0x3f05e8[_0xf8e8('0x33')],qs['fields'](_0x1c369e[_0xf8e8('0x34')][_0xf8e8('0x38')]));_0x46b7a5['attributes']=_0x46b7a5[_0xf8e8('0x37')]['length']?_0x46b7a5[_0xf8e8('0x37')]:_0x3f05e8[_0xf8e8('0x33')];if(!_0x1c369e[_0xf8e8('0x34')]['hasOwnProperty']('nolimit')){_0x46b7a5['limit']=qs[_0xf8e8('0x22')](_0x1c369e[_0xf8e8('0x34')][_0xf8e8('0x22')]);_0x46b7a5['offset']=qs['offset'](_0x1c369e[_0xf8e8('0x34')]['offset']);}_0x46b7a5['order']=qs[_0xf8e8('0x39')](_0x1c369e[_0xf8e8('0x34')][_0xf8e8('0x39')]);_0x46b7a5['where']=qs['filters'](_[_0xf8e8('0x3a')](_0x1c369e[_0xf8e8('0x34')],_0x3f05e8[_0xf8e8('0x35')]),_0x16a316);if(_0x1c369e['query'][_0xf8e8('0x3b')]){_0x46b7a5[_0xf8e8('0x3c')]=_[_0xf8e8('0x3d')](_0x46b7a5['where'],{'$or':_[_0xf8e8('0x2d')](_0x16a316,function(_0x4ebc3f){if(_0x4ebc3f[_0xf8e8('0x31')]!==_0xf8e8('0x3e')){var _0x5e4b40={};_0x5e4b40[_0x4ebc3f['name']]={'$like':'%'+_0x1c369e[_0xf8e8('0x34')]['filter']+'%'};return _0x5e4b40;}})});}_0x46b7a5=_[_0xf8e8('0x3d')]({},_0x46b7a5,_0x1c369e[_0xf8e8('0x3f')]);var _0x54cf35={'where':_0x46b7a5[_0xf8e8('0x3c')]};return db[_0xf8e8('0x2e')][_0xf8e8('0x20')](_0x54cf35)['then'](function(_0x5194c7){_0x3d44c4[_0xf8e8('0x20')]=_0x5194c7;if(_0x1c369e['query'][_0xf8e8('0x40')]){_0x46b7a5[_0xf8e8('0x41')]=[{'all':!![]}];}return db[_0xf8e8('0x2e')][_0xf8e8('0x42')](_0x46b7a5);})[_0xf8e8('0x28')](function(_0x200c71){_0x3d44c4[_0xf8e8('0x43')]=_0x200c71;return _0x3d44c4;})[_0xf8e8('0x28')](respondWithFilteredResult(_0x3d00d4,_0x46b7a5))[_0xf8e8('0x44')](handleError(_0x3d00d4,null));};exports[_0xf8e8('0x45')]=function(_0x4809f6,_0x2a5b52){var _0x36ce8b={'raw':!![],'where':{'id':_0x4809f6['params']['id']}},_0x1334b6={};_0x1334b6[_0xf8e8('0x33')]=_[_0xf8e8('0x46')](db[_0xf8e8('0x2e')]['rawAttributes']);_0x1334b6[_0xf8e8('0x34')]=_[_0xf8e8('0x46')](_0x4809f6[_0xf8e8('0x34')]);_0x1334b6[_0xf8e8('0x35')]=_[_0xf8e8('0x36')](_0x1334b6[_0xf8e8('0x33')],_0x1334b6[_0xf8e8('0x34')]);_0x36ce8b[_0xf8e8('0x37')]=_['intersection'](_0x1334b6[_0xf8e8('0x33')],qs[_0xf8e8('0x38')](_0x4809f6['query'][_0xf8e8('0x38')]));_0x36ce8b['attributes']=_0x36ce8b['attributes'][_0xf8e8('0x47')]?_0x36ce8b[_0xf8e8('0x37')]:_0x1334b6[_0xf8e8('0x33')];if(_0x4809f6[_0xf8e8('0x34')]['includeAll']){_0x36ce8b[_0xf8e8('0x41')]=[{'all':!![]}];}_0x36ce8b=_[_0xf8e8('0x3d')]({},_0x36ce8b,_0x4809f6[_0xf8e8('0x3f')]);return db[_0xf8e8('0x2e')]['find'](_0x36ce8b)['then'](handleEntityNotFound(_0x2a5b52,null))['then'](respondWithResult(_0x2a5b52,null))[_0xf8e8('0x44')](handleError(_0x2a5b52,null));};exports['create']=function(_0x1fc8df,_0x32b66b){return db[_0xf8e8('0x2e')]['create'](_0x1fc8df[_0xf8e8('0x48')],{})['then'](respondWithResult(_0x32b66b,0xc9))[_0xf8e8('0x44')](handleError(_0x32b66b,null));};exports[_0xf8e8('0x27')]=function(_0x364317,_0x5d59ca){if(_0x364317[_0xf8e8('0x48')]['id']){delete _0x364317[_0xf8e8('0x48')]['id'];}return db[_0xf8e8('0x2e')][_0xf8e8('0x49')]({'where':{'id':_0x364317[_0xf8e8('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5d59ca,null))[_0xf8e8('0x28')](saveUpdates(_0x364317['body'],null))[_0xf8e8('0x28')](respondWithResult(_0x5d59ca,null))[_0xf8e8('0x44')](handleError(_0x5d59ca,null));};exports[_0xf8e8('0x29')]=function(_0x28ff4d,_0x57b99b){return db[_0xf8e8('0x2e')][_0xf8e8('0x49')]({'where':{'id':_0x28ff4d[_0xf8e8('0x4a')]['id']}})[_0xf8e8('0x28')](handleEntityNotFound(_0x57b99b,null))[_0xf8e8('0x28')](removeEntity(_0x57b99b,null))[_0xf8e8('0x44')](handleError(_0x57b99b,null));};exports[_0xf8e8('0x4b')]=function(_0x47cb10,_0x2697b2){return db['ChatInternalMessage'][_0xf8e8('0x4b')]()[_0xf8e8('0x28')](respondWithResult(_0x2697b2,null))[_0xf8e8('0x44')](handleError(_0x2697b2,null));};function wrapUser(_0x5df49b){return function(_0x3b528c){var _0x411094=_0x5df49b[_0xf8e8('0x4c')]({'plain':!![]});_0x411094[_0xf8e8('0x4d')]=[];if(_0x3b528c){_0x411094[_0xf8e8('0x4e')]=_0x3b528c['createdAt'];_0x411094[_0xf8e8('0x4f')]=_0x3b528c;}else{_0x411094['lastMessageAt']=moment(0x0)['format'](_0xf8e8('0x50'));_0x411094[_0xf8e8('0x4f')]={};}return _0x411094;};}exports[_0xf8e8('0x51')]=function(_0x3ee3eb,_0x37f890,_0x184fc9){var _0x5617d9=[];return db[_0xf8e8('0x52')][_0xf8e8('0x42')]({'where':{'role':[_0xf8e8('0x53'),'admin',_0xf8e8('0x54')]},'attributes':['id','fullname',_0xf8e8('0x2b'),_0xf8e8('0x55'),_0xf8e8('0x56'),_0xf8e8('0x57'),_0xf8e8('0x58'),'lastLoginAt','allowmessenger',_0xf8e8('0x59')],'order':qs[_0xf8e8('0x39')]('-online'),'include':[{'model':db[_0xf8e8('0x5a')],'as':_0xf8e8('0x5b'),'attributes':['id',_0xf8e8('0x2b'),_0xf8e8('0x31')],'through':{'attributes':[]}}]})[_0xf8e8('0x28')](function(_0x7a3f1e){if(_0x7a3f1e){var _0x524ed0=_0x3ee3eb[_0xf8e8('0x54')][_0xf8e8('0x4c')]({'plain':!![]});if(!_0x524ed0)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x524ed0[_0xf8e8('0x55')]===_0xf8e8('0x54')){return db['UserProfileSection'][_0xf8e8('0x49')]({'where':{'name':_0xf8e8('0x5c'),'userProfileId':_0x524ed0[_0xf8e8('0x5d')]},'raw':!![]})[_0xf8e8('0x28')](function(_0x20d448){if(_0x20d448){if(_0x20d448[_0xf8e8('0x5e')]===0x0){return db['UserProfileResource'][_0xf8e8('0x42')]({'where':{'sectionId':_0x20d448['id']},'raw':!![]})[_0xf8e8('0x28')](function(_0xaef8ac){var _0x38fabc=[];if(_[_0xf8e8('0x5f')](_0xaef8ac)){_0x38fabc=_['filter'](_0x7a3f1e,function(_0x49dd6f){if(_0x49dd6f[_0xf8e8('0x55')]!==_0xf8e8('0x53')){return _0x49dd6f;}});return _0x38fabc;}else{for(var _0x2b1dd5=0x0;_0x2b1dd5<_0x7a3f1e[_0xf8e8('0x47')];_0x2b1dd5++){var _0x535d31=_0x7a3f1e[_0x2b1dd5];if(_0x535d31[_0xf8e8('0x55')]===_0xf8e8('0x53')){var _0x4f2a63=_['find'](_0xaef8ac,function(_0x466e50){return _0x466e50[_0xf8e8('0x60')]===_0x535d31['id'];});if(_0x4f2a63)_0x38fabc[_0xf8e8('0x61')](_0x535d31);}else{_0x38fabc[_0xf8e8('0x61')](_0x535d31);}}return _0x38fabc;}});}else{return _0x7a3f1e;}}else{var _0x30cff4=_['filter'](_0x7a3f1e,function(_0x3417c9){if(_0x3417c9[_0xf8e8('0x55')]!==_0xf8e8('0x53')){return _0x3417c9;}});return _0x30cff4;}});}else{return _0x7a3f1e;}}})['then'](function(_0x1d853f){var _0x40cb8c=[];if(_0x1d853f){_0x5617d9=_0x1d853f;for(var _0x17e953=0x0;_0x17e953<_0x1d853f[_0xf8e8('0x47')];_0x17e953+=0x1){_0x5617d9[_0x17e953]['messages']=[];_0x40cb8c[_0xf8e8('0x61')](db[_0xf8e8('0x2e')][_0xf8e8('0x49')]({'where':{'FromId':[_0x3ee3eb[_0xf8e8('0x54')]['id'],_0x1d853f[_0x17e953]['id']],'ToId':[_0x3ee3eb['user']['id'],_0x1d853f[_0x17e953]['id']],'ChatGroupId':null},'attributes':['id','createdAt','FromId','ToId',_0xf8e8('0x62'),'body'],'order':qs[_0xf8e8('0x39')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0x1d853f[_0x17e953])));}return BPromise['all'](_0x40cb8c);}return[];})[_0xf8e8('0x28')](function(_0x48cc4b){return{'rows':_0x48cc4b,'count':_0x48cc4b[_0xf8e8('0x47')]};})[_0xf8e8('0x28')](respondWithResult(_0x37f890,null))['catch'](handleError(_0x37f890,null));};