Built motion from commit 85328c08.|2.5.50
[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 _0x3dbe=['internal','online','lastLoginAt','showWebBar','-online','user','get','UserProfileSection','find','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','resourceId','push','FromId','read','-createdAt','all','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','destroy','then','error','name','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','where','filters','filter','VIRTUAL','options','includeAll','include','findAll','rows','params','merge','catch','create','body','update','describe','messages','lastMessageAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','admin','role','userpic'];(function(_0x387777,_0x356171){var _0x3f84c0=function(_0x4d4423){while(--_0x4d4423){_0x387777['push'](_0x387777['shift']());}};_0x3f84c0(++_0x356171);}(_0x3dbe,0xe6));var _0xe3db=function(_0xdc5c98,_0x4dc10d){_0xdc5c98=_0xdc5c98-0x0;var _0x18d7ee=_0x3dbe[_0xdc5c98];return _0x18d7ee;};'use strict';var emlformat=require(_0xe3db('0x0'));var rimraf=require(_0xe3db('0x1'));var zipdir=require(_0xe3db('0x2'));var jsonpatch=require(_0xe3db('0x3'));var rp=require(_0xe3db('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xe3db('0x5'));var util=require(_0xe3db('0x6'));var path=require('path');var sox=require(_0xe3db('0x7'));var csv=require(_0xe3db('0x8'));var ejs=require(_0xe3db('0x9'));var fs=require('fs');var fs_extra=require(_0xe3db('0xa'));var _=require('lodash');var squel=require(_0xe3db('0xb'));var crypto=require(_0xe3db('0xc'));var jsforce=require(_0xe3db('0xd'));var deskjs=require(_0xe3db('0xe'));var toCsv=require('to-csv');var querystring=require(_0xe3db('0xf'));var Papa=require('papaparse');var Redis=require(_0xe3db('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xe3db('0x11'));var as=require(_0xe3db('0x12'));var hardwareService=require(_0xe3db('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0xe3db('0x14'));var config=require(_0xe3db('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xe3db('0x16'))['db'];config['redis']=_[_0xe3db('0x17')](config[_0xe3db('0x18')],{'host':_0xe3db('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xe3db('0x18')]));require('./chatInternalMessage.socket')[_0xe3db('0x1a')](socket);function respondWithStatusCode(_0x294776,_0x533761){_0x533761=_0x533761||0xcc;return function(_0x17ccb4){if(_0x17ccb4){return _0x294776[_0xe3db('0x1b')](_0x533761);}return _0x294776['status'](_0x533761)['end']();};}function respondWithResult(_0x264e1f,_0x138ce6){_0x138ce6=_0x138ce6||0xc8;return function(_0x51da12){if(_0x51da12){return _0x264e1f[_0xe3db('0x1c')](_0x138ce6)[_0xe3db('0x1d')](_0x51da12);}};}function respondWithFilteredResult(_0x2ed3db,_0xd9e182){return function(_0x4e0a7b){if(_0x4e0a7b){var _0x301903=typeof _0xd9e182[_0xe3db('0x1e')]===_0xe3db('0x1f')&&typeof _0xd9e182[_0xe3db('0x20')]==='undefined';var _0x489b5d=_0x4e0a7b[_0xe3db('0x21')];var _0x4c7b7e=_0x301903?0x0:_0xd9e182[_0xe3db('0x1e')];var _0x43f115=_0x301903?_0x4e0a7b[_0xe3db('0x21')]:_0xd9e182[_0xe3db('0x1e')]+_0xd9e182['limit'];var _0x4ae9c8;if(_0x43f115>=_0x489b5d){_0x43f115=_0x489b5d;_0x4ae9c8=0xc8;}else{_0x4ae9c8=0xce;}_0x2ed3db['status'](_0x4ae9c8);return _0x2ed3db[_0xe3db('0x22')](_0xe3db('0x23'),_0x4c7b7e+'-'+_0x43f115+'/'+_0x489b5d)[_0xe3db('0x1d')](_0x4e0a7b);}return null;};}function patchUpdates(_0x329452){return function(_0x35cd1e){try{jsonpatch[_0xe3db('0x24')](_0x35cd1e,_0x329452,!![]);}catch(_0x74fff8){return BPromise['reject'](_0x74fff8);}return _0x35cd1e['save']();};}function saveUpdates(_0x2c4969,_0x21ff67){return function(_0x581e10){if(_0x581e10){return _0x581e10['update'](_0x2c4969)['then'](function(_0x4e5fb8){return _0x4e5fb8;});}return null;};}function removeEntity(_0xb99584,_0xb88286){return function(_0x36af21){if(_0x36af21){return _0x36af21[_0xe3db('0x25')]()[_0xe3db('0x26')](function(){_0xb99584[_0xe3db('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4913ce,_0x3d4be9){return function(_0x1f0f38){if(!_0x1f0f38){_0x4913ce[_0xe3db('0x1b')](0x194);}return _0x1f0f38;};}function handleError(_0x22804a,_0x1b848c){_0x1b848c=_0x1b848c||0x1f4;return function(_0x32d6f1){logger[_0xe3db('0x27')](_0x32d6f1['stack']);if(_0x32d6f1[_0xe3db('0x28')]){delete _0x32d6f1[_0xe3db('0x28')];}_0x22804a[_0xe3db('0x1c')](_0x1b848c)['send'](_0x32d6f1);};}exports[_0xe3db('0x29')]=function(_0x154764,_0x2594a1){var _0x3616be={},_0x4fb884={},_0x13b032={'count':0x0,'rows':[]};var _0x4cca2b=_[_0xe3db('0x2a')](db[_0xe3db('0x2b')][_0xe3db('0x2c')],function(_0x1e6ec9){return{'name':_0x1e6ec9[_0xe3db('0x2d')],'type':_0x1e6ec9[_0xe3db('0x2e')][_0xe3db('0x2f')]};});_0x4fb884[_0xe3db('0x30')]=_['map'](_0x4cca2b,_0xe3db('0x28'));_0x4fb884[_0xe3db('0x31')]=_[_0xe3db('0x32')](_0x154764['query']);_0x4fb884['filters']=_[_0xe3db('0x33')](_0x4fb884['model'],_0x4fb884['query']);_0x3616be[_0xe3db('0x34')]=_[_0xe3db('0x33')](_0x4fb884[_0xe3db('0x30')],qs['fields'](_0x154764[_0xe3db('0x31')][_0xe3db('0x35')]));_0x3616be[_0xe3db('0x34')]=_0x3616be[_0xe3db('0x34')][_0xe3db('0x36')]?_0x3616be['attributes']:_0x4fb884['model'];if(!_0x154764['query']['hasOwnProperty'](_0xe3db('0x37'))){_0x3616be['limit']=qs['limit'](_0x154764['query'][_0xe3db('0x20')]);_0x3616be[_0xe3db('0x1e')]=qs['offset'](_0x154764[_0xe3db('0x31')][_0xe3db('0x1e')]);}_0x3616be[_0xe3db('0x38')]=qs[_0xe3db('0x39')](_0x154764['query'][_0xe3db('0x39')]);_0x3616be[_0xe3db('0x3a')]=qs[_0xe3db('0x3b')](_['pick'](_0x154764[_0xe3db('0x31')],_0x4fb884[_0xe3db('0x3b')]),_0x4cca2b);if(_0x154764[_0xe3db('0x31')][_0xe3db('0x3c')]){_0x3616be[_0xe3db('0x3a')]=_['merge'](_0x3616be['where'],{'$or':_[_0xe3db('0x2a')](_0x4cca2b,function(_0x316ef1){if(_0x316ef1['type']!==_0xe3db('0x3d')){var _0x5b0226={};_0x5b0226[_0x316ef1['name']]={'$like':'%'+_0x154764[_0xe3db('0x31')][_0xe3db('0x3c')]+'%'};return _0x5b0226;}})});}_0x3616be=_['merge']({},_0x3616be,_0x154764[_0xe3db('0x3e')]);var _0x5b0555={'where':_0x3616be[_0xe3db('0x3a')]};return db[_0xe3db('0x2b')]['count'](_0x5b0555)[_0xe3db('0x26')](function(_0x12c3e2){_0x13b032[_0xe3db('0x21')]=_0x12c3e2;if(_0x154764['query'][_0xe3db('0x3f')]){_0x3616be[_0xe3db('0x40')]=[{'all':!![]}];}return db['ChatInternalMessage'][_0xe3db('0x41')](_0x3616be);})[_0xe3db('0x26')](function(_0x4f9a78){_0x13b032[_0xe3db('0x42')]=_0x4f9a78;return _0x13b032;})[_0xe3db('0x26')](respondWithFilteredResult(_0x2594a1,_0x3616be))['catch'](handleError(_0x2594a1,null));};exports['show']=function(_0x449dbc,_0x20b206){var _0x157e2c={'raw':!![],'where':{'id':_0x449dbc[_0xe3db('0x43')]['id']}},_0x4c6558={};_0x4c6558[_0xe3db('0x30')]=_['keys'](db[_0xe3db('0x2b')][_0xe3db('0x2c')]);_0x4c6558[_0xe3db('0x31')]=_[_0xe3db('0x32')](_0x449dbc[_0xe3db('0x31')]);_0x4c6558['filters']=_[_0xe3db('0x33')](_0x4c6558[_0xe3db('0x30')],_0x4c6558['query']);_0x157e2c[_0xe3db('0x34')]=_['intersection'](_0x4c6558[_0xe3db('0x30')],qs['fields'](_0x449dbc[_0xe3db('0x31')][_0xe3db('0x35')]));_0x157e2c[_0xe3db('0x34')]=_0x157e2c[_0xe3db('0x34')][_0xe3db('0x36')]?_0x157e2c[_0xe3db('0x34')]:_0x4c6558[_0xe3db('0x30')];if(_0x449dbc[_0xe3db('0x31')][_0xe3db('0x3f')]){_0x157e2c[_0xe3db('0x40')]=[{'all':!![]}];}_0x157e2c=_[_0xe3db('0x44')]({},_0x157e2c,_0x449dbc['options']);return db[_0xe3db('0x2b')]['find'](_0x157e2c)[_0xe3db('0x26')](handleEntityNotFound(_0x20b206,null))[_0xe3db('0x26')](respondWithResult(_0x20b206,null))[_0xe3db('0x45')](handleError(_0x20b206,null));};exports[_0xe3db('0x46')]=function(_0x158fcf,_0xeabd5d){return db[_0xe3db('0x2b')][_0xe3db('0x46')](_0x158fcf[_0xe3db('0x47')],{})['then'](respondWithResult(_0xeabd5d,0xc9))['catch'](handleError(_0xeabd5d,null));};exports[_0xe3db('0x48')]=function(_0x25df99,_0x2e2401){if(_0x25df99[_0xe3db('0x47')]['id']){delete _0x25df99[_0xe3db('0x47')]['id'];}return db[_0xe3db('0x2b')]['find']({'where':{'id':_0x25df99[_0xe3db('0x43')]['id']}})[_0xe3db('0x26')](handleEntityNotFound(_0x2e2401,null))[_0xe3db('0x26')](saveUpdates(_0x25df99[_0xe3db('0x47')],null))[_0xe3db('0x26')](respondWithResult(_0x2e2401,null))[_0xe3db('0x45')](handleError(_0x2e2401,null));};exports['destroy']=function(_0x45c93c,_0x3d41e6){return db['ChatInternalMessage']['find']({'where':{'id':_0x45c93c['params']['id']}})[_0xe3db('0x26')](handleEntityNotFound(_0x3d41e6,null))['then'](removeEntity(_0x3d41e6,null))[_0xe3db('0x45')](handleError(_0x3d41e6,null));};exports['describe']=function(_0x535c44,_0x216f1f){return db[_0xe3db('0x2b')][_0xe3db('0x49')]()[_0xe3db('0x26')](respondWithResult(_0x216f1f,null))['catch'](handleError(_0x216f1f,null));};function wrapUser(_0x574f24){return function(_0x1a07e4){var _0x4f28ff=_0x574f24['get']({'plain':!![]});_0x4f28ff[_0xe3db('0x4a')]=[];if(_0x1a07e4){_0x4f28ff[_0xe3db('0x4b')]=_0x1a07e4['createdAt'];_0x4f28ff[_0xe3db('0x4c')]=_0x1a07e4;}else{_0x4f28ff['lastMessageAt']=moment(0x0)[_0xe3db('0x4d')](_0xe3db('0x4e'));_0x4f28ff[_0xe3db('0x4c')]={};}return _0x4f28ff;};}exports[_0xe3db('0x4f')]=function(_0x1a8a79,_0x24a53b,_0x49db42){var _0x1b8b01=[];return db[_0xe3db('0x50')]['findAll']({'where':{'role':[_0xe3db('0x51'),_0xe3db('0x52'),'user']},'attributes':['id','fullname','name',_0xe3db('0x53'),_0xe3db('0x54'),_0xe3db('0x55'),_0xe3db('0x56'),_0xe3db('0x57'),'allowmessenger',_0xe3db('0x58')],'order':qs['sort'](_0xe3db('0x59')),'include':[{'model':db['VoiceQueue'],'as':'VoiceQueues','attributes':['id',_0xe3db('0x28'),_0xe3db('0x2e')],'through':{'attributes':[]}}]})['then'](function(_0x4d3aeb){if(_0x4d3aeb){var _0x242fb3=_0x1a8a79[_0xe3db('0x5a')][_0xe3db('0x5b')]({'plain':!![]});if(!_0x242fb3)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x242fb3[_0xe3db('0x53')]===_0xe3db('0x5a')){return db[_0xe3db('0x5c')][_0xe3db('0x5d')]({'where':{'name':_0xe3db('0x5e'),'userProfileId':_0x242fb3[_0xe3db('0x5f')]},'raw':!![]})['then'](function(_0x449db6){if(_0x449db6){if(_0x449db6[_0xe3db('0x60')]===0x0){return db[_0xe3db('0x61')][_0xe3db('0x41')]({'where':{'sectionId':_0x449db6['id']},'raw':!![]})['then'](function(_0x27edb0){var _0x479006=[];if(_[_0xe3db('0x62')](_0x27edb0)){_0x479006=_[_0xe3db('0x3c')](_0x4d3aeb,function(_0x2a3596){if(_0x2a3596['role']!==_0xe3db('0x51')){return _0x2a3596;}});return _0x479006;}else{for(var _0x4755bd=0x0;_0x4755bd<_0x4d3aeb['length'];_0x4755bd++){var _0x318823=_0x4d3aeb[_0x4755bd];if(_0x318823['role']===_0xe3db('0x51')){var _0x2592e8=_[_0xe3db('0x5d')](_0x27edb0,function(_0x45f4c8){return _0x45f4c8[_0xe3db('0x63')]===_0x318823['id'];});if(_0x2592e8)_0x479006[_0xe3db('0x64')](_0x318823);}else{_0x479006[_0xe3db('0x64')](_0x318823);}}return _0x479006;}});}else{return _0x4d3aeb;}}else{var _0x4140cd=_[_0xe3db('0x3c')](_0x4d3aeb,function(_0x1b9222){if(_0x1b9222['role']!==_0xe3db('0x51')){return _0x1b9222;}});return _0x4140cd;}});}else{return _0x4d3aeb;}}})[_0xe3db('0x26')](function(_0xfcb9a4){var _0x2f2e78=[];if(_0xfcb9a4){_0x1b8b01=_0xfcb9a4;for(var _0x755a24=0x0;_0x755a24<_0xfcb9a4[_0xe3db('0x36')];_0x755a24+=0x1){_0x1b8b01[_0x755a24][_0xe3db('0x4a')]=[];_0x2f2e78[_0xe3db('0x64')](db[_0xe3db('0x2b')][_0xe3db('0x5d')]({'where':{'FromId':[_0x1a8a79[_0xe3db('0x5a')]['id'],_0xfcb9a4[_0x755a24]['id']],'ToId':[_0x1a8a79[_0xe3db('0x5a')]['id'],_0xfcb9a4[_0x755a24]['id']],'ChatGroupId':null},'attributes':['id','createdAt',_0xe3db('0x65'),'ToId',_0xe3db('0x66'),_0xe3db('0x47')],'order':qs['sort'](_0xe3db('0x67')),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0xfcb9a4[_0x755a24])));}return BPromise[_0xe3db('0x68')](_0x2f2e78);}return[];})[_0xe3db('0x26')](function(_0x12be72){return{'rows':_0x12be72,'count':_0x12be72[_0xe3db('0x36')]};})[_0xe3db('0x26')](respondWithResult(_0x24a53b,null))['catch'](handleError(_0x24a53b,null));};