Built motion from commit 0900f080.|2.5.45
[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 _0xc2be=['Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','include','findAll','rows','catch','params','includeAll','options','create','body','find','describe','lastMessageAt','lastMessage','YYYY-MM-DD\x20HH:mm:ss','getUsers','agent','user','role','userpic','lastLoginAt','showWebBar','-online','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','isEmpty','resourceId','push','messages','createdAt','FromId','ToId','-createdAt','all','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','end','json','undefined','limit','count','offset'];(function(_0x250362,_0x7d462f){var _0x48d6ec=function(_0x398ec1){while(--_0x398ec1){_0x250362['push'](_0x250362['shift']());}};_0x48d6ec(++_0x7d462f);}(_0xc2be,0xb6));var _0xec2b=function(_0x9add99,_0x3eda3b){_0x9add99=_0x9add99-0x0;var _0x482653=_0xc2be[_0x9add99];return _0x482653;};'use strict';var emlformat=require(_0xec2b('0x0'));var rimraf=require(_0xec2b('0x1'));var zipdir=require(_0xec2b('0x2'));var jsonpatch=require(_0xec2b('0x3'));var rp=require(_0xec2b('0x4'));var moment=require(_0xec2b('0x5'));var BPromise=require(_0xec2b('0x6'));var Mustache=require(_0xec2b('0x7'));var util=require(_0xec2b('0x8'));var path=require(_0xec2b('0x9'));var sox=require(_0xec2b('0xa'));var csv=require(_0xec2b('0xb'));var ejs=require(_0xec2b('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xec2b('0xd'));var squel=require('squel');var crypto=require(_0xec2b('0xe'));var jsforce=require(_0xec2b('0xf'));var deskjs=require(_0xec2b('0x10'));var toCsv=require(_0xec2b('0xb'));var querystring=require(_0xec2b('0x11'));var Papa=require(_0xec2b('0x12'));var Redis=require(_0xec2b('0x13'));var authService=require('../../components/auth/service');var qs=require(_0xec2b('0x14'));var as=require(_0xec2b('0x15'));var hardwareService=require(_0xec2b('0x16'));var logger=require(_0xec2b('0x17'))('api');var utils=require('../../config/utils');var config=require(_0xec2b('0x18'));var licenseUtil=require(_0xec2b('0x19'));var db=require('../../mysqldb')['db'];config[_0xec2b('0x1a')]=_[_0xec2b('0x1b')](config[_0xec2b('0x1a')],{'host':_0xec2b('0x1c'),'port':0x18eb});var socket=require(_0xec2b('0x1d'))(new Redis(config[_0xec2b('0x1a')]));require(_0xec2b('0x1e'))[_0xec2b('0x1f')](socket);function respondWithStatusCode(_0x156f35,_0x366fab){_0x366fab=_0x366fab||0xcc;return function(_0x350d10){if(_0x350d10){return _0x156f35[_0xec2b('0x20')](_0x366fab);}return _0x156f35[_0xec2b('0x21')](_0x366fab)[_0xec2b('0x22')]();};}function respondWithResult(_0x504468,_0x3eea8e){_0x3eea8e=_0x3eea8e||0xc8;return function(_0x5a0e2d){if(_0x5a0e2d){return _0x504468[_0xec2b('0x21')](_0x3eea8e)[_0xec2b('0x23')](_0x5a0e2d);}};}function respondWithFilteredResult(_0x2183f,_0x29fefc){return function(_0x343bf0){if(_0x343bf0){var _0x362ee6=typeof _0x29fefc['offset']===_0xec2b('0x24')&&typeof _0x29fefc[_0xec2b('0x25')]===_0xec2b('0x24');var _0x1befc3=_0x343bf0[_0xec2b('0x26')];var _0x8c93fa=_0x362ee6?0x0:_0x29fefc[_0xec2b('0x27')];var _0x1f7bd8=_0x362ee6?_0x343bf0[_0xec2b('0x26')]:_0x29fefc[_0xec2b('0x27')]+_0x29fefc['limit'];var _0x3cdafb;if(_0x1f7bd8>=_0x1befc3){_0x1f7bd8=_0x1befc3;_0x3cdafb=0xc8;}else{_0x3cdafb=0xce;}_0x2183f[_0xec2b('0x21')](_0x3cdafb);return _0x2183f['set'](_0xec2b('0x28'),_0x8c93fa+'-'+_0x1f7bd8+'/'+_0x1befc3)[_0xec2b('0x23')](_0x343bf0);}return null;};}function patchUpdates(_0x5519f9){return function(_0x40b9ff){try{jsonpatch[_0xec2b('0x29')](_0x40b9ff,_0x5519f9,!![]);}catch(_0x2620df){return BPromise[_0xec2b('0x2a')](_0x2620df);}return _0x40b9ff[_0xec2b('0x2b')]();};}function saveUpdates(_0xb823a3,_0x410b22){return function(_0x32b570){if(_0x32b570){return _0x32b570[_0xec2b('0x2c')](_0xb823a3)[_0xec2b('0x2d')](function(_0x3f5b80){return _0x3f5b80;});}return null;};}function removeEntity(_0x3ae6d4,_0x32fc82){return function(_0x5c060e){if(_0x5c060e){return _0x5c060e[_0xec2b('0x2e')]()[_0xec2b('0x2d')](function(){_0x3ae6d4[_0xec2b('0x21')](0xcc)[_0xec2b('0x22')]();});}};}function handleEntityNotFound(_0x5063f0,_0x51ab98){return function(_0x49d6ab){if(!_0x49d6ab){_0x5063f0[_0xec2b('0x20')](0x194);}return _0x49d6ab;};}function handleError(_0x8e04df,_0x5c603c){_0x5c603c=_0x5c603c||0x1f4;return function(_0x56da05){logger[_0xec2b('0x2f')](_0x56da05[_0xec2b('0x30')]);if(_0x56da05[_0xec2b('0x31')]){delete _0x56da05[_0xec2b('0x31')];}_0x8e04df[_0xec2b('0x21')](_0x5c603c)[_0xec2b('0x32')](_0x56da05);};}exports[_0xec2b('0x33')]=function(_0x4eb15d,_0x2595a8){var _0x355b18={},_0x5091bf={},_0x1e5e38={'count':0x0,'rows':[]};var _0x137e4a=_[_0xec2b('0x34')](db[_0xec2b('0x35')][_0xec2b('0x36')],function(_0x5919b0){return{'name':_0x5919b0['fieldName'],'type':_0x5919b0[_0xec2b('0x37')]['key']};});_0x5091bf[_0xec2b('0x38')]=_['map'](_0x137e4a,'name');_0x5091bf[_0xec2b('0x39')]=_[_0xec2b('0x3a')](_0x4eb15d[_0xec2b('0x39')]);_0x5091bf[_0xec2b('0x3b')]=_[_0xec2b('0x3c')](_0x5091bf[_0xec2b('0x38')],_0x5091bf[_0xec2b('0x39')]);_0x355b18[_0xec2b('0x3d')]=_['intersection'](_0x5091bf[_0xec2b('0x38')],qs[_0xec2b('0x3e')](_0x4eb15d[_0xec2b('0x39')][_0xec2b('0x3e')]));_0x355b18[_0xec2b('0x3d')]=_0x355b18[_0xec2b('0x3d')][_0xec2b('0x3f')]?_0x355b18['attributes']:_0x5091bf[_0xec2b('0x38')];if(!_0x4eb15d[_0xec2b('0x39')][_0xec2b('0x40')](_0xec2b('0x41'))){_0x355b18[_0xec2b('0x25')]=qs[_0xec2b('0x25')](_0x4eb15d[_0xec2b('0x39')][_0xec2b('0x25')]);_0x355b18['offset']=qs[_0xec2b('0x27')](_0x4eb15d[_0xec2b('0x39')]['offset']);}_0x355b18[_0xec2b('0x42')]=qs[_0xec2b('0x43')](_0x4eb15d[_0xec2b('0x39')]['sort']);_0x355b18[_0xec2b('0x44')]=qs['filters'](_[_0xec2b('0x45')](_0x4eb15d[_0xec2b('0x39')],_0x5091bf['filters']),_0x137e4a);if(_0x4eb15d['query']['filter']){_0x355b18['where']=_[_0xec2b('0x46')](_0x355b18['where'],{'$or':_['map'](_0x137e4a,function(_0x563d90){if(_0x563d90[_0xec2b('0x37')]!==_0xec2b('0x47')){var _0x3ef764={};_0x3ef764[_0x563d90[_0xec2b('0x31')]]={'$like':'%'+_0x4eb15d[_0xec2b('0x39')][_0xec2b('0x48')]+'%'};return _0x3ef764;}})});}_0x355b18=_[_0xec2b('0x46')]({},_0x355b18,_0x4eb15d['options']);var _0x4e65b4={'where':_0x355b18[_0xec2b('0x44')]};return db[_0xec2b('0x35')]['count'](_0x4e65b4)[_0xec2b('0x2d')](function(_0x5ef9c2){_0x1e5e38[_0xec2b('0x26')]=_0x5ef9c2;if(_0x4eb15d['query']['includeAll']){_0x355b18[_0xec2b('0x49')]=[{'all':!![]}];}return db[_0xec2b('0x35')][_0xec2b('0x4a')](_0x355b18);})[_0xec2b('0x2d')](function(_0x2fe3d9){_0x1e5e38[_0xec2b('0x4b')]=_0x2fe3d9;return _0x1e5e38;})[_0xec2b('0x2d')](respondWithFilteredResult(_0x2595a8,_0x355b18))[_0xec2b('0x4c')](handleError(_0x2595a8,null));};exports['show']=function(_0xa34953,_0x3679ff){var _0x195e3d={'raw':!![],'where':{'id':_0xa34953[_0xec2b('0x4d')]['id']}},_0x1b58a7={};_0x1b58a7['model']=_['keys'](db[_0xec2b('0x35')]['rawAttributes']);_0x1b58a7['query']=_[_0xec2b('0x3a')](_0xa34953[_0xec2b('0x39')]);_0x1b58a7[_0xec2b('0x3b')]=_[_0xec2b('0x3c')](_0x1b58a7[_0xec2b('0x38')],_0x1b58a7['query']);_0x195e3d[_0xec2b('0x3d')]=_[_0xec2b('0x3c')](_0x1b58a7[_0xec2b('0x38')],qs[_0xec2b('0x3e')](_0xa34953[_0xec2b('0x39')][_0xec2b('0x3e')]));_0x195e3d['attributes']=_0x195e3d[_0xec2b('0x3d')]['length']?_0x195e3d[_0xec2b('0x3d')]:_0x1b58a7[_0xec2b('0x38')];if(_0xa34953['query'][_0xec2b('0x4e')]){_0x195e3d[_0xec2b('0x49')]=[{'all':!![]}];}_0x195e3d=_[_0xec2b('0x46')]({},_0x195e3d,_0xa34953[_0xec2b('0x4f')]);return db[_0xec2b('0x35')]['find'](_0x195e3d)[_0xec2b('0x2d')](handleEntityNotFound(_0x3679ff,null))['then'](respondWithResult(_0x3679ff,null))[_0xec2b('0x4c')](handleError(_0x3679ff,null));};exports[_0xec2b('0x50')]=function(_0x5851e2,_0x18e109){return db[_0xec2b('0x35')][_0xec2b('0x50')](_0x5851e2[_0xec2b('0x51')],{})[_0xec2b('0x2d')](respondWithResult(_0x18e109,0xc9))[_0xec2b('0x4c')](handleError(_0x18e109,null));};exports['update']=function(_0x5ea7ed,_0x2804f){if(_0x5ea7ed[_0xec2b('0x51')]['id']){delete _0x5ea7ed[_0xec2b('0x51')]['id'];}return db[_0xec2b('0x35')]['find']({'where':{'id':_0x5ea7ed[_0xec2b('0x4d')]['id']}})[_0xec2b('0x2d')](handleEntityNotFound(_0x2804f,null))[_0xec2b('0x2d')](saveUpdates(_0x5ea7ed[_0xec2b('0x51')],null))[_0xec2b('0x2d')](respondWithResult(_0x2804f,null))[_0xec2b('0x4c')](handleError(_0x2804f,null));};exports[_0xec2b('0x2e')]=function(_0x3c6c52,_0x274ec8){return db['ChatInternalMessage'][_0xec2b('0x52')]({'where':{'id':_0x3c6c52['params']['id']}})[_0xec2b('0x2d')](handleEntityNotFound(_0x274ec8,null))[_0xec2b('0x2d')](removeEntity(_0x274ec8,null))['catch'](handleError(_0x274ec8,null));};exports[_0xec2b('0x53')]=function(_0x12f6be,_0x29d62c){return db[_0xec2b('0x35')][_0xec2b('0x53')]()[_0xec2b('0x2d')](respondWithResult(_0x29d62c,null))[_0xec2b('0x4c')](handleError(_0x29d62c,null));};function wrapUser(_0xd014ea){return function(_0x6c8ad0){var _0x167a3b=_0xd014ea['get']({'plain':!![]});_0x167a3b['messages']=[];if(_0x6c8ad0){_0x167a3b[_0xec2b('0x54')]=_0x6c8ad0['createdAt'];_0x167a3b[_0xec2b('0x55')]=_0x6c8ad0;}else{_0x167a3b[_0xec2b('0x54')]=moment(0x0)['format'](_0xec2b('0x56'));_0x167a3b[_0xec2b('0x55')]={};}return _0x167a3b;};}exports[_0xec2b('0x57')]=function(_0x3945bc,_0x5e4725,_0x7e8b73){var _0x33f99f=[];return db['User'][_0xec2b('0x4a')]({'where':{'role':[_0xec2b('0x58'),'admin',_0xec2b('0x59')]},'attributes':['id','fullname',_0xec2b('0x31'),_0xec2b('0x5a'),_0xec2b('0x5b'),'internal','online',_0xec2b('0x5c'),'allowmessenger',_0xec2b('0x5d')],'order':qs['sort'](_0xec2b('0x5e')),'include':[{'model':db[_0xec2b('0x5f')],'as':_0xec2b('0x60'),'attributes':['id',_0xec2b('0x31'),_0xec2b('0x37')],'through':{'attributes':[]}}]})[_0xec2b('0x2d')](function(_0x39799c){if(_0x39799c){var _0x39eccf=_0x3945bc[_0xec2b('0x59')]['get']({'plain':!![]});if(!_0x39eccf)throw new Error(_0xec2b('0x61'));if(_0x39eccf[_0xec2b('0x5a')]===_0xec2b('0x59')){return db[_0xec2b('0x62')]['find']({'where':{'name':'Agents','userProfileId':_0x39eccf[_0xec2b('0x63')]},'raw':!![]})[_0xec2b('0x2d')](function(_0x180cf6){if(_0x180cf6){if(_0x180cf6[_0xec2b('0x64')]===0x0){return db[_0xec2b('0x65')][_0xec2b('0x4a')]({'where':{'sectionId':_0x180cf6['id']},'raw':!![]})['then'](function(_0x5d65b8){var _0x38047c=[];if(_[_0xec2b('0x66')](_0x5d65b8)){_0x38047c=_[_0xec2b('0x48')](_0x39799c,function(_0x323677){if(_0x323677[_0xec2b('0x5a')]!==_0xec2b('0x58')){return _0x323677;}});return _0x38047c;}else{for(var _0x210417=0x0;_0x210417<_0x39799c[_0xec2b('0x3f')];_0x210417++){var _0x902919=_0x39799c[_0x210417];if(_0x902919['role']===_0xec2b('0x58')){var _0x87c7a2=_[_0xec2b('0x52')](_0x5d65b8,function(_0x322188){return _0x322188[_0xec2b('0x67')]===_0x902919['id'];});if(_0x87c7a2)_0x38047c['push'](_0x902919);}else{_0x38047c[_0xec2b('0x68')](_0x902919);}}return _0x38047c;}});}else{return _0x39799c;}}else{var _0x13c33e=_[_0xec2b('0x48')](_0x39799c,function(_0x22f544){if(_0x22f544['role']!==_0xec2b('0x58')){return _0x22f544;}});return _0x13c33e;}});}else{return _0x39799c;}}})[_0xec2b('0x2d')](function(_0x3233fc){var _0x1792d2=[];if(_0x3233fc){_0x33f99f=_0x3233fc;for(var _0x37f332=0x0;_0x37f332<_0x3233fc[_0xec2b('0x3f')];_0x37f332+=0x1){_0x33f99f[_0x37f332][_0xec2b('0x69')]=[];_0x1792d2['push'](db['ChatInternalMessage'][_0xec2b('0x52')]({'where':{'FromId':[_0x3945bc['user']['id'],_0x3233fc[_0x37f332]['id']],'ToId':[_0x3945bc[_0xec2b('0x59')]['id'],_0x3233fc[_0x37f332]['id']],'ChatGroupId':null},'attributes':['id',_0xec2b('0x6a'),_0xec2b('0x6b'),_0xec2b('0x6c'),'read',_0xec2b('0x51')],'order':qs[_0xec2b('0x43')](_0xec2b('0x6d')),'limit':0x1,'offset':0x0,'raw':!![]})[_0xec2b('0x2d')](wrapUser(_0x3233fc[_0x37f332])));}return BPromise[_0xec2b('0x6e')](_0x1792d2);}return[];})[_0xec2b('0x2d')](function(_0x52f1b4){return{'rows':_0x52f1b4,'count':_0x52f1b4[_0xec2b('0x3f')]};})['then'](respondWithResult(_0x5e4725,null))[_0xec2b('0x4c')](handleError(_0x5e4725,null));};