Built motion from commit ddca4d0d.|2.5.47
[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 _0xef05=['order','sort','pick','merge','where','VIRTUAL','filter','options','ChatInternalMessage','includeAll','include','findAll','catch','show','params','find','create','body','destroy','describe','get','messages','lastMessage','format','getUsers','User','admin','user','userpic','internal','online','lastLoginAt','showWebBar','-online','VoiceQueue','type','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','agent','resourceId','push','createdAt','FromId','-createdAt','all','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','sendStatus','offset','undefined','limit','count','status','Content-Range','json','apply','reject','save','update','then','end','error','name','send','index','map','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit'];(function(_0x3d9bcd,_0x4e7d0c){var _0x26ec0a=function(_0x4b8358){while(--_0x4b8358){_0x3d9bcd['push'](_0x3d9bcd['shift']());}};_0x26ec0a(++_0x4e7d0c);}(_0xef05,0x10f));var _0x5ef0=function(_0x972563,_0x39ca73){_0x972563=_0x972563-0x0;var _0x38a913=_0xef05[_0x972563];return _0x38a913;};'use strict';var emlformat=require(_0x5ef0('0x0'));var rimraf=require(_0x5ef0('0x1'));var zipdir=require(_0x5ef0('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x5ef0('0x3'));var moment=require(_0x5ef0('0x4'));var BPromise=require(_0x5ef0('0x5'));var Mustache=require(_0x5ef0('0x6'));var util=require(_0x5ef0('0x7'));var path=require(_0x5ef0('0x8'));var sox=require(_0x5ef0('0x9'));var csv=require(_0x5ef0('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5ef0('0xb'));var _=require(_0x5ef0('0xc'));var squel=require(_0x5ef0('0xd'));var crypto=require('crypto');var jsforce=require(_0x5ef0('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x5ef0('0xa'));var querystring=require(_0x5ef0('0xf'));var Papa=require(_0x5ef0('0x10'));var Redis=require(_0x5ef0('0x11'));var authService=require(_0x5ef0('0x12'));var qs=require(_0x5ef0('0x13'));var as=require(_0x5ef0('0x14'));var hardwareService=require(_0x5ef0('0x15'));var logger=require(_0x5ef0('0x16'))(_0x5ef0('0x17'));var utils=require(_0x5ef0('0x18'));var config=require(_0x5ef0('0x19'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x5ef0('0x1a')]=_[_0x5ef0('0x1b')](config['redis'],{'host':_0x5ef0('0x1c'),'port':0x18eb});var socket=require(_0x5ef0('0x1d'))(new Redis(config[_0x5ef0('0x1a')]));require('./chatInternalMessage.socket')['register'](socket);function respondWithStatusCode(_0x4991fd,_0x4f6af4){_0x4f6af4=_0x4f6af4||0xcc;return function(_0x168e40){if(_0x168e40){return _0x4991fd[_0x5ef0('0x1e')](_0x4f6af4);}return _0x4991fd['status'](_0x4f6af4)['end']();};}function respondWithResult(_0x1fec8a,_0x19ad91){_0x19ad91=_0x19ad91||0xc8;return function(_0x4f90c2){if(_0x4f90c2){return _0x1fec8a['status'](_0x19ad91)['json'](_0x4f90c2);}};}function respondWithFilteredResult(_0x25cccd,_0x5e2163){return function(_0x49ee3c){if(_0x49ee3c){var _0x2307d0=typeof _0x5e2163[_0x5ef0('0x1f')]===_0x5ef0('0x20')&&typeof _0x5e2163[_0x5ef0('0x21')]==='undefined';var _0xa79a06=_0x49ee3c[_0x5ef0('0x22')];var _0x3fa01f=_0x2307d0?0x0:_0x5e2163['offset'];var _0x1de195=_0x2307d0?_0x49ee3c[_0x5ef0('0x22')]:_0x5e2163[_0x5ef0('0x1f')]+_0x5e2163[_0x5ef0('0x21')];var _0x1e16fd;if(_0x1de195>=_0xa79a06){_0x1de195=_0xa79a06;_0x1e16fd=0xc8;}else{_0x1e16fd=0xce;}_0x25cccd[_0x5ef0('0x23')](_0x1e16fd);return _0x25cccd['set'](_0x5ef0('0x24'),_0x3fa01f+'-'+_0x1de195+'/'+_0xa79a06)[_0x5ef0('0x25')](_0x49ee3c);}return null;};}function patchUpdates(_0x1682ce){return function(_0x4b889c){try{jsonpatch[_0x5ef0('0x26')](_0x4b889c,_0x1682ce,!![]);}catch(_0x5989e6){return BPromise[_0x5ef0('0x27')](_0x5989e6);}return _0x4b889c[_0x5ef0('0x28')]();};}function saveUpdates(_0x5cb5c5,_0x210511){return function(_0x46d27d){if(_0x46d27d){return _0x46d27d[_0x5ef0('0x29')](_0x5cb5c5)[_0x5ef0('0x2a')](function(_0x290920){return _0x290920;});}return null;};}function removeEntity(_0x1e97d1,_0xf58629){return function(_0x454cde){if(_0x454cde){return _0x454cde['destroy']()[_0x5ef0('0x2a')](function(){_0x1e97d1[_0x5ef0('0x23')](0xcc)[_0x5ef0('0x2b')]();});}};}function handleEntityNotFound(_0x259498,_0x5bc416){return function(_0x11af6e){if(!_0x11af6e){_0x259498[_0x5ef0('0x1e')](0x194);}return _0x11af6e;};}function handleError(_0x2be88e,_0x4e4b89){_0x4e4b89=_0x4e4b89||0x1f4;return function(_0x239930){logger[_0x5ef0('0x2c')](_0x239930['stack']);if(_0x239930['name']){delete _0x239930[_0x5ef0('0x2d')];}_0x2be88e[_0x5ef0('0x23')](_0x4e4b89)[_0x5ef0('0x2e')](_0x239930);};}exports[_0x5ef0('0x2f')]=function(_0x4bbfc3,_0x46eb36){var _0xf7feb9={},_0x34e944={},_0x46589e={'count':0x0,'rows':[]};var _0x20223a=_[_0x5ef0('0x30')](db['ChatInternalMessage'][_0x5ef0('0x31')],function(_0x21d8c1){return{'name':_0x21d8c1[_0x5ef0('0x32')],'type':_0x21d8c1['type'][_0x5ef0('0x33')]};});_0x34e944[_0x5ef0('0x34')]=_[_0x5ef0('0x30')](_0x20223a,_0x5ef0('0x2d'));_0x34e944['query']=_[_0x5ef0('0x35')](_0x4bbfc3[_0x5ef0('0x36')]);_0x34e944[_0x5ef0('0x37')]=_[_0x5ef0('0x38')](_0x34e944[_0x5ef0('0x34')],_0x34e944['query']);_0xf7feb9[_0x5ef0('0x39')]=_[_0x5ef0('0x38')](_0x34e944['model'],qs['fields'](_0x4bbfc3[_0x5ef0('0x36')][_0x5ef0('0x3a')]));_0xf7feb9[_0x5ef0('0x39')]=_0xf7feb9[_0x5ef0('0x39')][_0x5ef0('0x3b')]?_0xf7feb9[_0x5ef0('0x39')]:_0x34e944[_0x5ef0('0x34')];if(!_0x4bbfc3[_0x5ef0('0x36')][_0x5ef0('0x3c')](_0x5ef0('0x3d'))){_0xf7feb9[_0x5ef0('0x21')]=qs[_0x5ef0('0x21')](_0x4bbfc3[_0x5ef0('0x36')]['limit']);_0xf7feb9[_0x5ef0('0x1f')]=qs[_0x5ef0('0x1f')](_0x4bbfc3[_0x5ef0('0x36')][_0x5ef0('0x1f')]);}_0xf7feb9[_0x5ef0('0x3e')]=qs[_0x5ef0('0x3f')](_0x4bbfc3[_0x5ef0('0x36')][_0x5ef0('0x3f')]);_0xf7feb9['where']=qs[_0x5ef0('0x37')](_[_0x5ef0('0x40')](_0x4bbfc3[_0x5ef0('0x36')],_0x34e944[_0x5ef0('0x37')]),_0x20223a);if(_0x4bbfc3['query']['filter']){_0xf7feb9['where']=_[_0x5ef0('0x41')](_0xf7feb9[_0x5ef0('0x42')],{'$or':_['map'](_0x20223a,function(_0x1c3a61){if(_0x1c3a61['type']!==_0x5ef0('0x43')){var _0x47326d={};_0x47326d[_0x1c3a61[_0x5ef0('0x2d')]]={'$like':'%'+_0x4bbfc3['query'][_0x5ef0('0x44')]+'%'};return _0x47326d;}})});}_0xf7feb9=_[_0x5ef0('0x41')]({},_0xf7feb9,_0x4bbfc3[_0x5ef0('0x45')]);var _0x1aca70={'where':_0xf7feb9[_0x5ef0('0x42')]};return db[_0x5ef0('0x46')][_0x5ef0('0x22')](_0x1aca70)[_0x5ef0('0x2a')](function(_0x18a086){_0x46589e[_0x5ef0('0x22')]=_0x18a086;if(_0x4bbfc3[_0x5ef0('0x36')][_0x5ef0('0x47')]){_0xf7feb9[_0x5ef0('0x48')]=[{'all':!![]}];}return db['ChatInternalMessage'][_0x5ef0('0x49')](_0xf7feb9);})['then'](function(_0x14fb97){_0x46589e['rows']=_0x14fb97;return _0x46589e;})[_0x5ef0('0x2a')](respondWithFilteredResult(_0x46eb36,_0xf7feb9))[_0x5ef0('0x4a')](handleError(_0x46eb36,null));};exports[_0x5ef0('0x4b')]=function(_0x1e784e,_0x79d4ba){var _0x5da25b={'raw':!![],'where':{'id':_0x1e784e[_0x5ef0('0x4c')]['id']}},_0x2f94db={};_0x2f94db['model']=_['keys'](db[_0x5ef0('0x46')][_0x5ef0('0x31')]);_0x2f94db[_0x5ef0('0x36')]=_['keys'](_0x1e784e['query']);_0x2f94db['filters']=_[_0x5ef0('0x38')](_0x2f94db['model'],_0x2f94db[_0x5ef0('0x36')]);_0x5da25b[_0x5ef0('0x39')]=_['intersection'](_0x2f94db[_0x5ef0('0x34')],qs[_0x5ef0('0x3a')](_0x1e784e[_0x5ef0('0x36')][_0x5ef0('0x3a')]));_0x5da25b[_0x5ef0('0x39')]=_0x5da25b['attributes'][_0x5ef0('0x3b')]?_0x5da25b[_0x5ef0('0x39')]:_0x2f94db[_0x5ef0('0x34')];if(_0x1e784e[_0x5ef0('0x36')][_0x5ef0('0x47')]){_0x5da25b[_0x5ef0('0x48')]=[{'all':!![]}];}_0x5da25b=_[_0x5ef0('0x41')]({},_0x5da25b,_0x1e784e[_0x5ef0('0x45')]);return db[_0x5ef0('0x46')][_0x5ef0('0x4d')](_0x5da25b)[_0x5ef0('0x2a')](handleEntityNotFound(_0x79d4ba,null))[_0x5ef0('0x2a')](respondWithResult(_0x79d4ba,null))[_0x5ef0('0x4a')](handleError(_0x79d4ba,null));};exports[_0x5ef0('0x4e')]=function(_0x1c09d9,_0x2a9c5d){return db[_0x5ef0('0x46')][_0x5ef0('0x4e')](_0x1c09d9[_0x5ef0('0x4f')],{})[_0x5ef0('0x2a')](respondWithResult(_0x2a9c5d,0xc9))[_0x5ef0('0x4a')](handleError(_0x2a9c5d,null));};exports[_0x5ef0('0x29')]=function(_0x1220ef,_0x242766){if(_0x1220ef['body']['id']){delete _0x1220ef[_0x5ef0('0x4f')]['id'];}return db['ChatInternalMessage'][_0x5ef0('0x4d')]({'where':{'id':_0x1220ef[_0x5ef0('0x4c')]['id']}})[_0x5ef0('0x2a')](handleEntityNotFound(_0x242766,null))[_0x5ef0('0x2a')](saveUpdates(_0x1220ef[_0x5ef0('0x4f')],null))['then'](respondWithResult(_0x242766,null))['catch'](handleError(_0x242766,null));};exports[_0x5ef0('0x50')]=function(_0x3b05c9,_0x54844d){return db[_0x5ef0('0x46')][_0x5ef0('0x4d')]({'where':{'id':_0x3b05c9[_0x5ef0('0x4c')]['id']}})[_0x5ef0('0x2a')](handleEntityNotFound(_0x54844d,null))[_0x5ef0('0x2a')](removeEntity(_0x54844d,null))[_0x5ef0('0x4a')](handleError(_0x54844d,null));};exports[_0x5ef0('0x51')]=function(_0x2934ad,_0x4fdf1e){return db['ChatInternalMessage'][_0x5ef0('0x51')]()[_0x5ef0('0x2a')](respondWithResult(_0x4fdf1e,null))[_0x5ef0('0x4a')](handleError(_0x4fdf1e,null));};function wrapUser(_0x106d93){return function(_0x41ebc3){var _0x523048=_0x106d93[_0x5ef0('0x52')]({'plain':!![]});_0x523048[_0x5ef0('0x53')]=[];if(_0x41ebc3){_0x523048['lastMessageAt']=_0x41ebc3['createdAt'];_0x523048[_0x5ef0('0x54')]=_0x41ebc3;}else{_0x523048['lastMessageAt']=moment(0x0)[_0x5ef0('0x55')]('YYYY-MM-DD\x20HH:mm:ss');_0x523048['lastMessage']={};}return _0x523048;};}exports[_0x5ef0('0x56')]=function(_0x35737a,_0x55ee8a,_0x49b8f3){var _0xaefef4=[];return db[_0x5ef0('0x57')][_0x5ef0('0x49')]({'where':{'role':['agent',_0x5ef0('0x58'),_0x5ef0('0x59')]},'attributes':['id','fullname',_0x5ef0('0x2d'),'role',_0x5ef0('0x5a'),_0x5ef0('0x5b'),_0x5ef0('0x5c'),_0x5ef0('0x5d'),'allowmessenger',_0x5ef0('0x5e')],'order':qs[_0x5ef0('0x3f')](_0x5ef0('0x5f')),'include':[{'model':db[_0x5ef0('0x60')],'as':'VoiceQueues','attributes':['id','name',_0x5ef0('0x61')],'through':{'attributes':[]}}]})['then'](function(_0x303f2c){if(_0x303f2c){var _0x4f64f9=_0x35737a[_0x5ef0('0x59')]['get']({'plain':!![]});if(!_0x4f64f9)throw new Error(_0x5ef0('0x62'));if(_0x4f64f9[_0x5ef0('0x63')]==='user'){return db[_0x5ef0('0x64')][_0x5ef0('0x4d')]({'where':{'name':'Agents','userProfileId':_0x4f64f9[_0x5ef0('0x65')]},'raw':!![]})['then'](function(_0x1490b0){if(_0x1490b0){if(_0x1490b0[_0x5ef0('0x66')]===0x0){return db[_0x5ef0('0x67')]['findAll']({'where':{'sectionId':_0x1490b0['id']},'raw':!![]})[_0x5ef0('0x2a')](function(_0x3b1886){var _0x204da0=[];if(_['isEmpty'](_0x3b1886)){_0x204da0=_['filter'](_0x303f2c,function(_0x39419f){if(_0x39419f[_0x5ef0('0x63')]!==_0x5ef0('0x68')){return _0x39419f;}});return _0x204da0;}else{for(var _0x12b8c2=0x0;_0x12b8c2<_0x303f2c[_0x5ef0('0x3b')];_0x12b8c2++){var _0x5e2dd6=_0x303f2c[_0x12b8c2];if(_0x5e2dd6[_0x5ef0('0x63')]===_0x5ef0('0x68')){var _0x581287=_['find'](_0x3b1886,function(_0x2f736a){return _0x2f736a[_0x5ef0('0x69')]===_0x5e2dd6['id'];});if(_0x581287)_0x204da0[_0x5ef0('0x6a')](_0x5e2dd6);}else{_0x204da0['push'](_0x5e2dd6);}}return _0x204da0;}});}else{return _0x303f2c;}}else{var _0x5b8167=_[_0x5ef0('0x44')](_0x303f2c,function(_0xafd798){if(_0xafd798[_0x5ef0('0x63')]!=='agent'){return _0xafd798;}});return _0x5b8167;}});}else{return _0x303f2c;}}})['then'](function(_0x4e5278){var _0x2d2385=[];if(_0x4e5278){_0xaefef4=_0x4e5278;for(var _0x17c654=0x0;_0x17c654<_0x4e5278[_0x5ef0('0x3b')];_0x17c654+=0x1){_0xaefef4[_0x17c654][_0x5ef0('0x53')]=[];_0x2d2385[_0x5ef0('0x6a')](db[_0x5ef0('0x46')][_0x5ef0('0x4d')]({'where':{'FromId':[_0x35737a['user']['id'],_0x4e5278[_0x17c654]['id']],'ToId':[_0x35737a[_0x5ef0('0x59')]['id'],_0x4e5278[_0x17c654]['id']],'ChatGroupId':null},'attributes':['id',_0x5ef0('0x6b'),_0x5ef0('0x6c'),'ToId','read','body'],'order':qs[_0x5ef0('0x3f')](_0x5ef0('0x6d')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x5ef0('0x2a')](wrapUser(_0x4e5278[_0x17c654])));}return BPromise[_0x5ef0('0x6e')](_0x2d2385);}return[];})[_0x5ef0('0x2a')](function(_0x57b987){return{'rows':_0x57b987,'count':_0x57b987[_0x5ef0('0x3b')]};})[_0x5ef0('0x2a')](respondWithResult(_0x55ee8a,null))[_0x5ef0('0x4a')](handleError(_0x55ee8a,null));};