939d3f8529f80ea537c5a95c6b3954f67dbf6479
[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 _0x625e=['ToId','read','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','update','then','sendStatus','error','stack','name','send','index','type','key','model','map','query','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','filters','pick','filter','VIRTUAL','options','ChatInternalMessage','includeAll','findAll','catch','show','params','keys','rawAttributes','length','include','merge','find','create','body','destroy','describe','get','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','admin','fullname','role','userpic','internal','online','lastLoginAt','showWebBar','-online','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','userProfileId','UserProfileResource','isEmpty','push','messages','user','FromId'];(function(_0x3b4455,_0x3e4395){var _0x34dd09=function(_0x5006d3){while(--_0x5006d3){_0x3b4455['push'](_0x3b4455['shift']());}};_0x34dd09(++_0x3e4395);}(_0x625e,0x1ca));var _0xe625=function(_0x1ad926,_0x3e1fed){_0x1ad926=_0x1ad926-0x0;var _0x1b81dc=_0x625e[_0x1ad926];return _0x1b81dc;};'use strict';var emlformat=require(_0xe625('0x0'));var rimraf=require(_0xe625('0x1'));var zipdir=require(_0xe625('0x2'));var jsonpatch=require(_0xe625('0x3'));var rp=require(_0xe625('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xe625('0x5'));var util=require(_0xe625('0x6'));var path=require(_0xe625('0x7'));var sox=require(_0xe625('0x8'));var csv=require(_0xe625('0x9'));var ejs=require(_0xe625('0xa'));var fs=require('fs');var fs_extra=require(_0xe625('0xb'));var _=require('lodash');var squel=require(_0xe625('0xc'));var crypto=require(_0xe625('0xd'));var jsforce=require(_0xe625('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xe625('0x9'));var querystring=require(_0xe625('0xf'));var Papa=require('papaparse');var Redis=require(_0xe625('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xe625('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe625('0x12'));var logger=require(_0xe625('0x13'))(_0xe625('0x14'));var utils=require(_0xe625('0x15'));var config=require(_0xe625('0x16'));var licenseUtil=require(_0xe625('0x17'));var db=require(_0xe625('0x18'))['db'];config[_0xe625('0x19')]=_[_0xe625('0x1a')](config[_0xe625('0x19')],{'host':_0xe625('0x1b'),'port':0x18eb});var socket=require(_0xe625('0x1c'))(new Redis(config[_0xe625('0x19')]));require('./chatInternalMessage.socket')[_0xe625('0x1d')](socket);function respondWithStatusCode(_0x17fd14,_0x3b05a8){_0x3b05a8=_0x3b05a8||0xcc;return function(_0x3e3a58){if(_0x3e3a58){return _0x17fd14['sendStatus'](_0x3b05a8);}return _0x17fd14[_0xe625('0x1e')](_0x3b05a8)[_0xe625('0x1f')]();};}function respondWithResult(_0x478076,_0x3683e5){_0x3683e5=_0x3683e5||0xc8;return function(_0x366fe0){if(_0x366fe0){return _0x478076[_0xe625('0x1e')](_0x3683e5)[_0xe625('0x20')](_0x366fe0);}};}function respondWithFilteredResult(_0x440d53,_0x482e88){return function(_0x5a83d7){if(_0x5a83d7){var _0x3957e7=typeof _0x482e88[_0xe625('0x21')]===_0xe625('0x22')&&typeof _0x482e88['limit']==='undefined';var _0x168224=_0x5a83d7['count'];var _0x4f5d23=_0x3957e7?0x0:_0x482e88[_0xe625('0x21')];var _0x41fe5b=_0x3957e7?_0x5a83d7[_0xe625('0x23')]:_0x482e88[_0xe625('0x21')]+_0x482e88[_0xe625('0x24')];var _0x538fb1;if(_0x41fe5b>=_0x168224){_0x41fe5b=_0x168224;_0x538fb1=0xc8;}else{_0x538fb1=0xce;}_0x440d53[_0xe625('0x1e')](_0x538fb1);return _0x440d53[_0xe625('0x25')](_0xe625('0x26'),_0x4f5d23+'-'+_0x41fe5b+'/'+_0x168224)[_0xe625('0x20')](_0x5a83d7);}return null;};}function patchUpdates(_0x4701f5){return function(_0x2f26df){try{jsonpatch[_0xe625('0x27')](_0x2f26df,_0x4701f5,!![]);}catch(_0x42e202){return BPromise['reject'](_0x42e202);}return _0x2f26df[_0xe625('0x28')]();};}function saveUpdates(_0x33ca10,_0x36785c){return function(_0x5c8b22){if(_0x5c8b22){return _0x5c8b22[_0xe625('0x29')](_0x33ca10)[_0xe625('0x2a')](function(_0x57cb91){return _0x57cb91;});}return null;};}function removeEntity(_0x4f6183,_0x21d5d5){return function(_0x59b7a3){if(_0x59b7a3){return _0x59b7a3['destroy']()[_0xe625('0x2a')](function(){_0x4f6183['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1e33ad,_0xbe5949){return function(_0x44d6c0){if(!_0x44d6c0){_0x1e33ad[_0xe625('0x2b')](0x194);}return _0x44d6c0;};}function handleError(_0x162d29,_0x3e43f1){_0x3e43f1=_0x3e43f1||0x1f4;return function(_0x1e2de2){logger[_0xe625('0x2c')](_0x1e2de2[_0xe625('0x2d')]);if(_0x1e2de2[_0xe625('0x2e')]){delete _0x1e2de2[_0xe625('0x2e')];}_0x162d29[_0xe625('0x1e')](_0x3e43f1)[_0xe625('0x2f')](_0x1e2de2);};}exports[_0xe625('0x30')]=function(_0x3af6da,_0x4448a2){var _0x3ffacb={},_0x1489c9={},_0x278a4e={'count':0x0,'rows':[]};var _0x50d981=_['map'](db['ChatInternalMessage']['rawAttributes'],function(_0xcb4c5){return{'name':_0xcb4c5['fieldName'],'type':_0xcb4c5[_0xe625('0x31')][_0xe625('0x32')]};});_0x1489c9[_0xe625('0x33')]=_[_0xe625('0x34')](_0x50d981,_0xe625('0x2e'));_0x1489c9[_0xe625('0x35')]=_['keys'](_0x3af6da[_0xe625('0x35')]);_0x1489c9['filters']=_[_0xe625('0x36')](_0x1489c9[_0xe625('0x33')],_0x1489c9[_0xe625('0x35')]);_0x3ffacb[_0xe625('0x37')]=_['intersection'](_0x1489c9['model'],qs[_0xe625('0x38')](_0x3af6da[_0xe625('0x35')]['fields']));_0x3ffacb['attributes']=_0x3ffacb[_0xe625('0x37')]['length']?_0x3ffacb[_0xe625('0x37')]:_0x1489c9[_0xe625('0x33')];if(!_0x3af6da[_0xe625('0x35')][_0xe625('0x39')](_0xe625('0x3a'))){_0x3ffacb[_0xe625('0x24')]=qs['limit'](_0x3af6da[_0xe625('0x35')][_0xe625('0x24')]);_0x3ffacb[_0xe625('0x21')]=qs[_0xe625('0x21')](_0x3af6da[_0xe625('0x35')][_0xe625('0x21')]);}_0x3ffacb['order']=qs[_0xe625('0x3b')](_0x3af6da[_0xe625('0x35')][_0xe625('0x3b')]);_0x3ffacb[_0xe625('0x3c')]=qs[_0xe625('0x3d')](_[_0xe625('0x3e')](_0x3af6da[_0xe625('0x35')],_0x1489c9[_0xe625('0x3d')]),_0x50d981);if(_0x3af6da['query'][_0xe625('0x3f')]){_0x3ffacb[_0xe625('0x3c')]=_['merge'](_0x3ffacb[_0xe625('0x3c')],{'$or':_['map'](_0x50d981,function(_0x528849){if(_0x528849[_0xe625('0x31')]!==_0xe625('0x40')){var _0x20e49e={};_0x20e49e[_0x528849['name']]={'$like':'%'+_0x3af6da['query']['filter']+'%'};return _0x20e49e;}})});}_0x3ffacb=_['merge']({},_0x3ffacb,_0x3af6da[_0xe625('0x41')]);var _0x3d53bc={'where':_0x3ffacb['where']};return db[_0xe625('0x42')][_0xe625('0x23')](_0x3d53bc)[_0xe625('0x2a')](function(_0x2330f1){_0x278a4e[_0xe625('0x23')]=_0x2330f1;if(_0x3af6da[_0xe625('0x35')][_0xe625('0x43')]){_0x3ffacb['include']=[{'all':!![]}];}return db[_0xe625('0x42')][_0xe625('0x44')](_0x3ffacb);})[_0xe625('0x2a')](function(_0x2a5176){_0x278a4e['rows']=_0x2a5176;return _0x278a4e;})['then'](respondWithFilteredResult(_0x4448a2,_0x3ffacb))[_0xe625('0x45')](handleError(_0x4448a2,null));};exports[_0xe625('0x46')]=function(_0x17fe3b,_0x5e2847){var _0x3a7437={'raw':!![],'where':{'id':_0x17fe3b[_0xe625('0x47')]['id']}},_0x1cd86c={};_0x1cd86c[_0xe625('0x33')]=_[_0xe625('0x48')](db['ChatInternalMessage'][_0xe625('0x49')]);_0x1cd86c['query']=_[_0xe625('0x48')](_0x17fe3b[_0xe625('0x35')]);_0x1cd86c[_0xe625('0x3d')]=_[_0xe625('0x36')](_0x1cd86c[_0xe625('0x33')],_0x1cd86c[_0xe625('0x35')]);_0x3a7437['attributes']=_[_0xe625('0x36')](_0x1cd86c[_0xe625('0x33')],qs[_0xe625('0x38')](_0x17fe3b[_0xe625('0x35')][_0xe625('0x38')]));_0x3a7437[_0xe625('0x37')]=_0x3a7437[_0xe625('0x37')][_0xe625('0x4a')]?_0x3a7437[_0xe625('0x37')]:_0x1cd86c[_0xe625('0x33')];if(_0x17fe3b[_0xe625('0x35')][_0xe625('0x43')]){_0x3a7437[_0xe625('0x4b')]=[{'all':!![]}];}_0x3a7437=_[_0xe625('0x4c')]({},_0x3a7437,_0x17fe3b[_0xe625('0x41')]);return db[_0xe625('0x42')][_0xe625('0x4d')](_0x3a7437)[_0xe625('0x2a')](handleEntityNotFound(_0x5e2847,null))[_0xe625('0x2a')](respondWithResult(_0x5e2847,null))[_0xe625('0x45')](handleError(_0x5e2847,null));};exports['create']=function(_0x484b54,_0x4bebff){return db['ChatInternalMessage'][_0xe625('0x4e')](_0x484b54['body'],{})[_0xe625('0x2a')](respondWithResult(_0x4bebff,0xc9))[_0xe625('0x45')](handleError(_0x4bebff,null));};exports[_0xe625('0x29')]=function(_0x19e610,_0x457259){if(_0x19e610[_0xe625('0x4f')]['id']){delete _0x19e610[_0xe625('0x4f')]['id'];}return db['ChatInternalMessage'][_0xe625('0x4d')]({'where':{'id':_0x19e610[_0xe625('0x47')]['id']}})[_0xe625('0x2a')](handleEntityNotFound(_0x457259,null))[_0xe625('0x2a')](saveUpdates(_0x19e610[_0xe625('0x4f')],null))[_0xe625('0x2a')](respondWithResult(_0x457259,null))[_0xe625('0x45')](handleError(_0x457259,null));};exports[_0xe625('0x50')]=function(_0x35049e,_0x54dcd1){return db['ChatInternalMessage'][_0xe625('0x4d')]({'where':{'id':_0x35049e[_0xe625('0x47')]['id']}})['then'](handleEntityNotFound(_0x54dcd1,null))[_0xe625('0x2a')](removeEntity(_0x54dcd1,null))['catch'](handleError(_0x54dcd1,null));};exports[_0xe625('0x51')]=function(_0x5e6417,_0x52c155){return db[_0xe625('0x42')][_0xe625('0x51')]()[_0xe625('0x2a')](respondWithResult(_0x52c155,null))[_0xe625('0x45')](handleError(_0x52c155,null));};function wrapUser(_0x178f4d){return function(_0x44e4ef){var _0x2d5cca=_0x178f4d[_0xe625('0x52')]({'plain':!![]});_0x2d5cca['messages']=[];if(_0x44e4ef){_0x2d5cca[_0xe625('0x53')]=_0x44e4ef[_0xe625('0x54')];_0x2d5cca[_0xe625('0x55')]=_0x44e4ef;}else{_0x2d5cca[_0xe625('0x53')]=moment(0x0)[_0xe625('0x56')](_0xe625('0x57'));_0x2d5cca[_0xe625('0x55')]={};}return _0x2d5cca;};}exports[_0xe625('0x58')]=function(_0x193cf4,_0x586f0e,_0x3d92eb){var _0x195cb8=[];return db[_0xe625('0x59')][_0xe625('0x44')]({'where':{'role':[_0xe625('0x5a'),_0xe625('0x5b'),'user']},'attributes':['id',_0xe625('0x5c'),_0xe625('0x2e'),_0xe625('0x5d'),_0xe625('0x5e'),_0xe625('0x5f'),_0xe625('0x60'),_0xe625('0x61'),'allowmessenger',_0xe625('0x62')],'order':qs[_0xe625('0x3b')](_0xe625('0x63')),'include':[{'model':db[_0xe625('0x64')],'as':_0xe625('0x65'),'attributes':['id',_0xe625('0x2e'),_0xe625('0x31')],'through':{'attributes':[]}}]})[_0xe625('0x2a')](function(_0x41d69c){if(_0x41d69c){var _0x6916cc=_0x193cf4['user'][_0xe625('0x52')]({'plain':!![]});if(!_0x6916cc)throw new Error(_0xe625('0x66'));if(_0x6916cc[_0xe625('0x5d')]==='user'){return db[_0xe625('0x67')][_0xe625('0x4d')]({'where':{'name':_0xe625('0x68'),'userProfileId':_0x6916cc[_0xe625('0x69')]},'raw':!![]})[_0xe625('0x2a')](function(_0x50caeb){if(_0x50caeb){if(_0x50caeb['autoAssociation']===0x0){return db[_0xe625('0x6a')][_0xe625('0x44')]({'where':{'sectionId':_0x50caeb['id']},'raw':!![]})[_0xe625('0x2a')](function(_0x70482e){var _0x5acdb5=[];if(_[_0xe625('0x6b')](_0x70482e)){_0x5acdb5=_[_0xe625('0x3f')](_0x41d69c,function(_0x3cc305){if(_0x3cc305[_0xe625('0x5d')]!=='agent'){return _0x3cc305;}});return _0x5acdb5;}else{for(var _0x327c90=0x0;_0x327c90<_0x41d69c[_0xe625('0x4a')];_0x327c90++){var _0x311894=_0x41d69c[_0x327c90];if(_0x311894['role']===_0xe625('0x5a')){var _0x34da2b=_[_0xe625('0x4d')](_0x70482e,function(_0x41373b){return _0x41373b['resourceId']===_0x311894['id'];});if(_0x34da2b)_0x5acdb5['push'](_0x311894);}else{_0x5acdb5[_0xe625('0x6c')](_0x311894);}}return _0x5acdb5;}});}else{return _0x41d69c;}}else{var _0xf71963=_[_0xe625('0x3f')](_0x41d69c,function(_0x5c84a2){if(_0x5c84a2[_0xe625('0x5d')]!==_0xe625('0x5a')){return _0x5c84a2;}});return _0xf71963;}});}else{return _0x41d69c;}}})[_0xe625('0x2a')](function(_0x31804c){var _0x79aec1=[];if(_0x31804c){_0x195cb8=_0x31804c;for(var _0x336ccc=0x0;_0x336ccc<_0x31804c[_0xe625('0x4a')];_0x336ccc+=0x1){_0x195cb8[_0x336ccc][_0xe625('0x6d')]=[];_0x79aec1[_0xe625('0x6c')](db[_0xe625('0x42')][_0xe625('0x4d')]({'where':{'FromId':[_0x193cf4[_0xe625('0x6e')]['id'],_0x31804c[_0x336ccc]['id']],'ToId':[_0x193cf4[_0xe625('0x6e')]['id'],_0x31804c[_0x336ccc]['id']],'ChatGroupId':null},'attributes':['id','createdAt',_0xe625('0x6f'),_0xe625('0x70'),_0xe625('0x71'),_0xe625('0x4f')],'order':qs[_0xe625('0x3b')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0x31804c[_0x336ccc])));}return BPromise['all'](_0x79aec1);}return[];})[_0xe625('0x2a')](function(_0x10008c){return{'rows':_0x10008c,'count':_0x10008c[_0xe625('0x4a')]};})[_0xe625('0x2a')](respondWithResult(_0x586f0e,null))[_0xe625('0x45')](handleError(_0x586f0e,null));};