Built motion from commit a61a4a20.|2.5.46
[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 _0x7b06=['model','keys','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','VIRTUAL','filter','merge','options','ChatInternalMessage','includeAll','rows','catch','show','params','length','create','body','find','describe','lastMessage','lastMessageAt','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','findAll','agent','admin','fullname','role','userpic','online','allowmessenger','-online','VoiceQueue','VoiceQueues','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','UserProfileResource','resourceId','push','messages','createdAt','FromId','ToId','read','all','eml-format','rimraf','zip-dir','moment','util','path','sox','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','then','destroy','error','stack','name','send','index','map','rawAttributes','type','key'];(function(_0x5e53ae,_0x24af4f){var _0x27a8a2=function(_0xa6a715){while(--_0xa6a715){_0x5e53ae['push'](_0x5e53ae['shift']());}};_0x27a8a2(++_0x24af4f);}(_0x7b06,0x181));var _0x67b0=function(_0x418c3a,_0xafc508){_0x418c3a=_0x418c3a-0x0;var _0x5ebf73=_0x7b06[_0x418c3a];return _0x5ebf73;};'use strict';var emlformat=require(_0x67b0('0x0'));var rimraf=require(_0x67b0('0x1'));var zipdir=require(_0x67b0('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x67b0('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x67b0('0x4'));var path=require(_0x67b0('0x5'));var sox=require(_0x67b0('0x6'));var csv=require(_0x67b0('0x7'));var ejs=require(_0x67b0('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x67b0('0x9'));var crypto=require(_0x67b0('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x67b0('0xb'));var toCsv=require(_0x67b0('0x7'));var querystring=require(_0x67b0('0xc'));var Papa=require(_0x67b0('0xd'));var Redis=require(_0x67b0('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x67b0('0xf'));var as=require(_0x67b0('0x10'));var hardwareService=require(_0x67b0('0x11'));var logger=require(_0x67b0('0x12'))(_0x67b0('0x13'));var utils=require(_0x67b0('0x14'));var config=require(_0x67b0('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x67b0('0x16'))['db'];config['redis']=_[_0x67b0('0x17')](config[_0x67b0('0x18')],{'host':_0x67b0('0x19'),'port':0x18eb});var socket=require(_0x67b0('0x1a'))(new Redis(config[_0x67b0('0x18')]));require('./chatInternalMessage.socket')[_0x67b0('0x1b')](socket);function respondWithStatusCode(_0x8d360e,_0x9517a8){_0x9517a8=_0x9517a8||0xcc;return function(_0x1973af){if(_0x1973af){return _0x8d360e[_0x67b0('0x1c')](_0x9517a8);}return _0x8d360e[_0x67b0('0x1d')](_0x9517a8)[_0x67b0('0x1e')]();};}function respondWithResult(_0x1d51e4,_0x263139){_0x263139=_0x263139||0xc8;return function(_0x1d7ed4){if(_0x1d7ed4){return _0x1d51e4[_0x67b0('0x1d')](_0x263139)[_0x67b0('0x1f')](_0x1d7ed4);}};}function respondWithFilteredResult(_0x3d7683,_0x1470ee){return function(_0x267e49){if(_0x267e49){var _0x18d760=typeof _0x1470ee[_0x67b0('0x20')]===_0x67b0('0x21')&&typeof _0x1470ee[_0x67b0('0x22')]===_0x67b0('0x21');var _0x3efc52=_0x267e49['count'];var _0xa80b78=_0x18d760?0x0:_0x1470ee[_0x67b0('0x20')];var _0x259fe7=_0x18d760?_0x267e49[_0x67b0('0x23')]:_0x1470ee[_0x67b0('0x20')]+_0x1470ee[_0x67b0('0x22')];var _0x4f099c;if(_0x259fe7>=_0x3efc52){_0x259fe7=_0x3efc52;_0x4f099c=0xc8;}else{_0x4f099c=0xce;}_0x3d7683[_0x67b0('0x1d')](_0x4f099c);return _0x3d7683[_0x67b0('0x24')](_0x67b0('0x25'),_0xa80b78+'-'+_0x259fe7+'/'+_0x3efc52)[_0x67b0('0x1f')](_0x267e49);}return null;};}function patchUpdates(_0x1d9ebd){return function(_0x5da6f0){try{jsonpatch['apply'](_0x5da6f0,_0x1d9ebd,!![]);}catch(_0xd7fe35){return BPromise[_0x67b0('0x26')](_0xd7fe35);}return _0x5da6f0[_0x67b0('0x27')]();};}function saveUpdates(_0x4aeabe,_0x1a0a1a){return function(_0x346d08){if(_0x346d08){return _0x346d08['update'](_0x4aeabe)[_0x67b0('0x28')](function(_0x357e77){return _0x357e77;});}return null;};}function removeEntity(_0x23a365,_0xce5c66){return function(_0x3b0806){if(_0x3b0806){return _0x3b0806[_0x67b0('0x29')]()[_0x67b0('0x28')](function(){_0x23a365[_0x67b0('0x1d')](0xcc)[_0x67b0('0x1e')]();});}};}function handleEntityNotFound(_0xd92255,_0x20e38b){return function(_0x16060a){if(!_0x16060a){_0xd92255[_0x67b0('0x1c')](0x194);}return _0x16060a;};}function handleError(_0x1ec0ff,_0x4863f6){_0x4863f6=_0x4863f6||0x1f4;return function(_0x4067a7){logger[_0x67b0('0x2a')](_0x4067a7[_0x67b0('0x2b')]);if(_0x4067a7[_0x67b0('0x2c')]){delete _0x4067a7[_0x67b0('0x2c')];}_0x1ec0ff[_0x67b0('0x1d')](_0x4863f6)[_0x67b0('0x2d')](_0x4067a7);};}exports[_0x67b0('0x2e')]=function(_0x32ca4e,_0x148872){var _0x48d21e={},_0xa8b685={},_0x4068c3={'count':0x0,'rows':[]};var _0x2a903f=_[_0x67b0('0x2f')](db['ChatInternalMessage'][_0x67b0('0x30')],function(_0x3808ee){return{'name':_0x3808ee['fieldName'],'type':_0x3808ee[_0x67b0('0x31')][_0x67b0('0x32')]};});_0xa8b685[_0x67b0('0x33')]=_[_0x67b0('0x2f')](_0x2a903f,_0x67b0('0x2c'));_0xa8b685['query']=_[_0x67b0('0x34')](_0x32ca4e[_0x67b0('0x35')]);_0xa8b685[_0x67b0('0x36')]=_[_0x67b0('0x37')](_0xa8b685[_0x67b0('0x33')],_0xa8b685['query']);_0x48d21e['attributes']=_[_0x67b0('0x37')](_0xa8b685[_0x67b0('0x33')],qs['fields'](_0x32ca4e[_0x67b0('0x35')][_0x67b0('0x38')]));_0x48d21e[_0x67b0('0x39')]=_0x48d21e['attributes']['length']?_0x48d21e[_0x67b0('0x39')]:_0xa8b685['model'];if(!_0x32ca4e['query'][_0x67b0('0x3a')](_0x67b0('0x3b'))){_0x48d21e['limit']=qs[_0x67b0('0x22')](_0x32ca4e[_0x67b0('0x35')]['limit']);_0x48d21e[_0x67b0('0x20')]=qs[_0x67b0('0x20')](_0x32ca4e[_0x67b0('0x35')]['offset']);}_0x48d21e[_0x67b0('0x3c')]=qs['sort'](_0x32ca4e[_0x67b0('0x35')][_0x67b0('0x3d')]);_0x48d21e[_0x67b0('0x3e')]=qs[_0x67b0('0x36')](_[_0x67b0('0x3f')](_0x32ca4e[_0x67b0('0x35')],_0xa8b685[_0x67b0('0x36')]),_0x2a903f);if(_0x32ca4e['query']['filter']){_0x48d21e[_0x67b0('0x3e')]=_['merge'](_0x48d21e[_0x67b0('0x3e')],{'$or':_[_0x67b0('0x2f')](_0x2a903f,function(_0x2e9f05){if(_0x2e9f05['type']!==_0x67b0('0x40')){var _0x4486a7={};_0x4486a7[_0x2e9f05[_0x67b0('0x2c')]]={'$like':'%'+_0x32ca4e['query'][_0x67b0('0x41')]+'%'};return _0x4486a7;}})});}_0x48d21e=_[_0x67b0('0x42')]({},_0x48d21e,_0x32ca4e[_0x67b0('0x43')]);var _0x42a60f={'where':_0x48d21e['where']};return db[_0x67b0('0x44')][_0x67b0('0x23')](_0x42a60f)[_0x67b0('0x28')](function(_0x20f091){_0x4068c3[_0x67b0('0x23')]=_0x20f091;if(_0x32ca4e['query'][_0x67b0('0x45')]){_0x48d21e['include']=[{'all':!![]}];}return db[_0x67b0('0x44')]['findAll'](_0x48d21e);})['then'](function(_0x4e7a39){_0x4068c3[_0x67b0('0x46')]=_0x4e7a39;return _0x4068c3;})[_0x67b0('0x28')](respondWithFilteredResult(_0x148872,_0x48d21e))[_0x67b0('0x47')](handleError(_0x148872,null));};exports[_0x67b0('0x48')]=function(_0x2230a9,_0x2beea4){var _0x3ac73f={'raw':!![],'where':{'id':_0x2230a9[_0x67b0('0x49')]['id']}},_0x4df1ad={};_0x4df1ad['model']=_[_0x67b0('0x34')](db[_0x67b0('0x44')][_0x67b0('0x30')]);_0x4df1ad[_0x67b0('0x35')]=_['keys'](_0x2230a9[_0x67b0('0x35')]);_0x4df1ad['filters']=_['intersection'](_0x4df1ad[_0x67b0('0x33')],_0x4df1ad[_0x67b0('0x35')]);_0x3ac73f[_0x67b0('0x39')]=_[_0x67b0('0x37')](_0x4df1ad[_0x67b0('0x33')],qs[_0x67b0('0x38')](_0x2230a9[_0x67b0('0x35')]['fields']));_0x3ac73f[_0x67b0('0x39')]=_0x3ac73f[_0x67b0('0x39')][_0x67b0('0x4a')]?_0x3ac73f['attributes']:_0x4df1ad[_0x67b0('0x33')];if(_0x2230a9['query'][_0x67b0('0x45')]){_0x3ac73f['include']=[{'all':!![]}];}_0x3ac73f=_['merge']({},_0x3ac73f,_0x2230a9['options']);return db[_0x67b0('0x44')]['find'](_0x3ac73f)[_0x67b0('0x28')](handleEntityNotFound(_0x2beea4,null))[_0x67b0('0x28')](respondWithResult(_0x2beea4,null))[_0x67b0('0x47')](handleError(_0x2beea4,null));};exports[_0x67b0('0x4b')]=function(_0x572cd7,_0x50861d){return db[_0x67b0('0x44')][_0x67b0('0x4b')](_0x572cd7[_0x67b0('0x4c')],{})[_0x67b0('0x28')](respondWithResult(_0x50861d,0xc9))[_0x67b0('0x47')](handleError(_0x50861d,null));};exports['update']=function(_0x28bbc7,_0xb6a90){if(_0x28bbc7[_0x67b0('0x4c')]['id']){delete _0x28bbc7[_0x67b0('0x4c')]['id'];}return db['ChatInternalMessage'][_0x67b0('0x4d')]({'where':{'id':_0x28bbc7[_0x67b0('0x49')]['id']}})[_0x67b0('0x28')](handleEntityNotFound(_0xb6a90,null))[_0x67b0('0x28')](saveUpdates(_0x28bbc7[_0x67b0('0x4c')],null))['then'](respondWithResult(_0xb6a90,null))[_0x67b0('0x47')](handleError(_0xb6a90,null));};exports['destroy']=function(_0x42f68d,_0x4cdf2f){return db[_0x67b0('0x44')][_0x67b0('0x4d')]({'where':{'id':_0x42f68d['params']['id']}})[_0x67b0('0x28')](handleEntityNotFound(_0x4cdf2f,null))['then'](removeEntity(_0x4cdf2f,null))[_0x67b0('0x47')](handleError(_0x4cdf2f,null));};exports[_0x67b0('0x4e')]=function(_0x405cb7,_0xcdaaf5){return db['ChatInternalMessage']['describe']()['then'](respondWithResult(_0xcdaaf5,null))['catch'](handleError(_0xcdaaf5,null));};function wrapUser(_0x21a79c){return function(_0xbbffdd){var _0x4a1ee6=_0x21a79c['get']({'plain':!![]});_0x4a1ee6['messages']=[];if(_0xbbffdd){_0x4a1ee6['lastMessageAt']=_0xbbffdd['createdAt'];_0x4a1ee6[_0x67b0('0x4f')]=_0xbbffdd;}else{_0x4a1ee6[_0x67b0('0x50')]=moment(0x0)['format'](_0x67b0('0x51'));_0x4a1ee6[_0x67b0('0x4f')]={};}return _0x4a1ee6;};}exports[_0x67b0('0x52')]=function(_0x46fabe,_0x55df39,_0x4248ad){var _0x46c868=[];return db[_0x67b0('0x53')][_0x67b0('0x54')]({'where':{'role':[_0x67b0('0x55'),_0x67b0('0x56'),'user']},'attributes':['id',_0x67b0('0x57'),_0x67b0('0x2c'),_0x67b0('0x58'),_0x67b0('0x59'),'internal',_0x67b0('0x5a'),'lastLoginAt',_0x67b0('0x5b'),'showWebBar'],'order':qs['sort'](_0x67b0('0x5c')),'include':[{'model':db[_0x67b0('0x5d')],'as':_0x67b0('0x5e'),'attributes':['id',_0x67b0('0x2c'),'type'],'through':{'attributes':[]}}]})[_0x67b0('0x28')](function(_0x541822){if(_0x541822){var _0x3031d1=_0x46fabe[_0x67b0('0x5f')][_0x67b0('0x60')]({'plain':!![]});if(!_0x3031d1)throw new Error(_0x67b0('0x61'));if(_0x3031d1[_0x67b0('0x58')]===_0x67b0('0x5f')){return db['UserProfileSection'][_0x67b0('0x4d')]({'where':{'name':'Agents','userProfileId':_0x3031d1[_0x67b0('0x62')]},'raw':!![]})[_0x67b0('0x28')](function(_0x14ca70){if(_0x14ca70){if(_0x14ca70[_0x67b0('0x63')]===0x0){return db[_0x67b0('0x64')][_0x67b0('0x54')]({'where':{'sectionId':_0x14ca70['id']},'raw':!![]})['then'](function(_0xd05999){var _0x4bc5ae=[];if(_['isEmpty'](_0xd05999)){_0x4bc5ae=_['filter'](_0x541822,function(_0x25eaa9){if(_0x25eaa9['role']!==_0x67b0('0x55')){return _0x25eaa9;}});return _0x4bc5ae;}else{for(var _0x75eaa9=0x0;_0x75eaa9<_0x541822[_0x67b0('0x4a')];_0x75eaa9++){var _0x37fad1=_0x541822[_0x75eaa9];if(_0x37fad1[_0x67b0('0x58')]===_0x67b0('0x55')){var _0xf42328=_[_0x67b0('0x4d')](_0xd05999,function(_0x5bf7dd){return _0x5bf7dd[_0x67b0('0x65')]===_0x37fad1['id'];});if(_0xf42328)_0x4bc5ae[_0x67b0('0x66')](_0x37fad1);}else{_0x4bc5ae[_0x67b0('0x66')](_0x37fad1);}}return _0x4bc5ae;}});}else{return _0x541822;}}else{var _0x534761=_['filter'](_0x541822,function(_0x365a4c){if(_0x365a4c[_0x67b0('0x58')]!==_0x67b0('0x55')){return _0x365a4c;}});return _0x534761;}});}else{return _0x541822;}}})['then'](function(_0x14e824){var _0x1639f7=[];if(_0x14e824){_0x46c868=_0x14e824;for(var _0x341977=0x0;_0x341977<_0x14e824[_0x67b0('0x4a')];_0x341977+=0x1){_0x46c868[_0x341977][_0x67b0('0x67')]=[];_0x1639f7['push'](db[_0x67b0('0x44')][_0x67b0('0x4d')]({'where':{'FromId':[_0x46fabe[_0x67b0('0x5f')]['id'],_0x14e824[_0x341977]['id']],'ToId':[_0x46fabe[_0x67b0('0x5f')]['id'],_0x14e824[_0x341977]['id']],'ChatGroupId':null},'attributes':['id',_0x67b0('0x68'),_0x67b0('0x69'),_0x67b0('0x6a'),_0x67b0('0x6b'),_0x67b0('0x4c')],'order':qs[_0x67b0('0x3d')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0x67b0('0x28')](wrapUser(_0x14e824[_0x341977])));}return BPromise[_0x67b0('0x6c')](_0x1639f7);}return[];})[_0x67b0('0x28')](function(_0x16c2f6){return{'rows':_0x16c2f6,'count':_0x16c2f6[_0x67b0('0x4a')]};})[_0x67b0('0x28')](respondWithResult(_0x55df39,null))[_0x67b0('0x47')](handleError(_0x55df39,null));};