Built motion from commit 497d3d92.|2.5.43
[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 _0xe960=['eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','./chatInternalMessage.socket','sendStatus','status','json','offset','limit','undefined','set','Content-Range','apply','save','update','then','destroy','end','error','name','send','index','map','ChatInternalMessage','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','catch','show','params','rawAttributes','find','create','body','describe','get','messages','lastMessageAt','createdAt','lastMessage','format','getUsers','User','findAll','admin','user','fullname','role','userpic','internal','online','lastLoginAt','showWebBar','-online','VoiceQueue','UserProfileSection','Agents','autoAssociation','UserProfileResource','isEmpty','agent','resourceId','push','FromId','ToId'];(function(_0x58ee19,_0xdf0765){var _0x49af25=function(_0x109b5e){while(--_0x109b5e){_0x58ee19['push'](_0x58ee19['shift']());}};_0x49af25(++_0xdf0765);}(_0xe960,0x14a));var _0x0e96=function(_0x138380,_0x4671ce){_0x138380=_0x138380-0x0;var _0x9bf018=_0xe960[_0x138380];return _0x9bf018;};'use strict';var emlformat=require(_0x0e96('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0e96('0x1'));var jsonpatch=require(_0x0e96('0x2'));var rp=require(_0x0e96('0x3'));var moment=require(_0x0e96('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x0e96('0x5'));var util=require(_0x0e96('0x6'));var path=require(_0x0e96('0x7'));var sox=require(_0x0e96('0x8'));var csv=require(_0x0e96('0x9'));var ejs=require(_0x0e96('0xa'));var fs=require('fs');var fs_extra=require(_0x0e96('0xb'));var _=require(_0x0e96('0xc'));var squel=require(_0x0e96('0xd'));var crypto=require('crypto');var jsforce=require(_0x0e96('0xe'));var deskjs=require(_0x0e96('0xf'));var toCsv=require(_0x0e96('0x9'));var querystring=require(_0x0e96('0x10'));var Papa=require(_0x0e96('0x11'));var Redis=require('ioredis');var authService=require(_0x0e96('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0e96('0x13'));var logger=require(_0x0e96('0x14'))(_0x0e96('0x15'));var utils=require(_0x0e96('0x16'));var config=require(_0x0e96('0x17'));var licenseUtil=require(_0x0e96('0x18'));var db=require(_0x0e96('0x19'))['db'];config['redis']=_[_0x0e96('0x1a')](config[_0x0e96('0x1b')],{'host':_0x0e96('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x0e96('0x1b')]));require(_0x0e96('0x1d'))['register'](socket);function respondWithStatusCode(_0x59586f,_0x26ef11){_0x26ef11=_0x26ef11||0xcc;return function(_0x51c072){if(_0x51c072){return _0x59586f[_0x0e96('0x1e')](_0x26ef11);}return _0x59586f[_0x0e96('0x1f')](_0x26ef11)['end']();};}function respondWithResult(_0x343f96,_0x192f3b){_0x192f3b=_0x192f3b||0xc8;return function(_0x18d212){if(_0x18d212){return _0x343f96[_0x0e96('0x1f')](_0x192f3b)[_0x0e96('0x20')](_0x18d212);}};}function respondWithFilteredResult(_0x4c2797,_0x42ac92){return function(_0xa2429e){if(_0xa2429e){var _0x808104=typeof _0x42ac92[_0x0e96('0x21')]==='undefined'&&typeof _0x42ac92[_0x0e96('0x22')]===_0x0e96('0x23');var _0x59a7eb=_0xa2429e['count'];var _0x53d108=_0x808104?0x0:_0x42ac92['offset'];var _0x523d34=_0x808104?_0xa2429e['count']:_0x42ac92[_0x0e96('0x21')]+_0x42ac92[_0x0e96('0x22')];var _0x3780a9;if(_0x523d34>=_0x59a7eb){_0x523d34=_0x59a7eb;_0x3780a9=0xc8;}else{_0x3780a9=0xce;}_0x4c2797['status'](_0x3780a9);return _0x4c2797[_0x0e96('0x24')](_0x0e96('0x25'),_0x53d108+'-'+_0x523d34+'/'+_0x59a7eb)[_0x0e96('0x20')](_0xa2429e);}return null;};}function patchUpdates(_0x402c57){return function(_0x171b0c){try{jsonpatch[_0x0e96('0x26')](_0x171b0c,_0x402c57,!![]);}catch(_0x34913b){return BPromise['reject'](_0x34913b);}return _0x171b0c[_0x0e96('0x27')]();};}function saveUpdates(_0x540f55,_0x2612fd){return function(_0x32095c){if(_0x32095c){return _0x32095c[_0x0e96('0x28')](_0x540f55)[_0x0e96('0x29')](function(_0x42c842){return _0x42c842;});}return null;};}function removeEntity(_0x1e6134,_0x3c718d){return function(_0x2c9c41){if(_0x2c9c41){return _0x2c9c41[_0x0e96('0x2a')]()['then'](function(){_0x1e6134['status'](0xcc)[_0x0e96('0x2b')]();});}};}function handleEntityNotFound(_0x5062f4,_0x4fc7e8){return function(_0x391652){if(!_0x391652){_0x5062f4[_0x0e96('0x1e')](0x194);}return _0x391652;};}function handleError(_0x27d5a2,_0x9240ba){_0x9240ba=_0x9240ba||0x1f4;return function(_0x22f79b){logger[_0x0e96('0x2c')](_0x22f79b['stack']);if(_0x22f79b[_0x0e96('0x2d')]){delete _0x22f79b[_0x0e96('0x2d')];}_0x27d5a2[_0x0e96('0x1f')](_0x9240ba)[_0x0e96('0x2e')](_0x22f79b);};}exports[_0x0e96('0x2f')]=function(_0x2c6cca,_0x8002d9){var _0x4d1823={},_0x3393d7={},_0x2498f2={'count':0x0,'rows':[]};var _0x432556=_[_0x0e96('0x30')](db[_0x0e96('0x31')]['rawAttributes'],function(_0x15c295){return{'name':_0x15c295[_0x0e96('0x32')],'type':_0x15c295[_0x0e96('0x33')]['key']};});_0x3393d7[_0x0e96('0x34')]=_['map'](_0x432556,'name');_0x3393d7[_0x0e96('0x35')]=_[_0x0e96('0x36')](_0x2c6cca[_0x0e96('0x35')]);_0x3393d7[_0x0e96('0x37')]=_[_0x0e96('0x38')](_0x3393d7[_0x0e96('0x34')],_0x3393d7[_0x0e96('0x35')]);_0x4d1823[_0x0e96('0x39')]=_[_0x0e96('0x38')](_0x3393d7[_0x0e96('0x34')],qs[_0x0e96('0x3a')](_0x2c6cca['query'][_0x0e96('0x3a')]));_0x4d1823[_0x0e96('0x39')]=_0x4d1823[_0x0e96('0x39')][_0x0e96('0x3b')]?_0x4d1823[_0x0e96('0x39')]:_0x3393d7[_0x0e96('0x34')];if(!_0x2c6cca[_0x0e96('0x35')][_0x0e96('0x3c')](_0x0e96('0x3d'))){_0x4d1823[_0x0e96('0x22')]=qs['limit'](_0x2c6cca[_0x0e96('0x35')]['limit']);_0x4d1823[_0x0e96('0x21')]=qs[_0x0e96('0x21')](_0x2c6cca[_0x0e96('0x35')][_0x0e96('0x21')]);}_0x4d1823['order']=qs[_0x0e96('0x3e')](_0x2c6cca[_0x0e96('0x35')]['sort']);_0x4d1823[_0x0e96('0x3f')]=qs[_0x0e96('0x37')](_[_0x0e96('0x40')](_0x2c6cca[_0x0e96('0x35')],_0x3393d7[_0x0e96('0x37')]),_0x432556);if(_0x2c6cca[_0x0e96('0x35')][_0x0e96('0x41')]){_0x4d1823['where']=_[_0x0e96('0x42')](_0x4d1823[_0x0e96('0x3f')],{'$or':_[_0x0e96('0x30')](_0x432556,function(_0x1e2f26){if(_0x1e2f26[_0x0e96('0x33')]!==_0x0e96('0x43')){var _0x124045={};_0x124045[_0x1e2f26['name']]={'$like':'%'+_0x2c6cca[_0x0e96('0x35')][_0x0e96('0x41')]+'%'};return _0x124045;}})});}_0x4d1823=_[_0x0e96('0x42')]({},_0x4d1823,_0x2c6cca[_0x0e96('0x44')]);var _0x57fcde={'where':_0x4d1823[_0x0e96('0x3f')]};return db['ChatInternalMessage'][_0x0e96('0x45')](_0x57fcde)['then'](function(_0x19f07b){_0x2498f2[_0x0e96('0x45')]=_0x19f07b;if(_0x2c6cca[_0x0e96('0x35')][_0x0e96('0x46')]){_0x4d1823[_0x0e96('0x47')]=[{'all':!![]}];}return db[_0x0e96('0x31')]['findAll'](_0x4d1823);})[_0x0e96('0x29')](function(_0x4dc2ea){_0x2498f2['rows']=_0x4dc2ea;return _0x2498f2;})[_0x0e96('0x29')](respondWithFilteredResult(_0x8002d9,_0x4d1823))[_0x0e96('0x48')](handleError(_0x8002d9,null));};exports[_0x0e96('0x49')]=function(_0x118f93,_0x399e24){var _0x2b84c2={'raw':!![],'where':{'id':_0x118f93[_0x0e96('0x4a')]['id']}},_0x6a3c5b={};_0x6a3c5b[_0x0e96('0x34')]=_[_0x0e96('0x36')](db[_0x0e96('0x31')][_0x0e96('0x4b')]);_0x6a3c5b[_0x0e96('0x35')]=_['keys'](_0x118f93[_0x0e96('0x35')]);_0x6a3c5b[_0x0e96('0x37')]=_[_0x0e96('0x38')](_0x6a3c5b[_0x0e96('0x34')],_0x6a3c5b[_0x0e96('0x35')]);_0x2b84c2[_0x0e96('0x39')]=_[_0x0e96('0x38')](_0x6a3c5b[_0x0e96('0x34')],qs[_0x0e96('0x3a')](_0x118f93[_0x0e96('0x35')]['fields']));_0x2b84c2[_0x0e96('0x39')]=_0x2b84c2[_0x0e96('0x39')]['length']?_0x2b84c2[_0x0e96('0x39')]:_0x6a3c5b[_0x0e96('0x34')];if(_0x118f93[_0x0e96('0x35')][_0x0e96('0x46')]){_0x2b84c2[_0x0e96('0x47')]=[{'all':!![]}];}_0x2b84c2=_[_0x0e96('0x42')]({},_0x2b84c2,_0x118f93['options']);return db['ChatInternalMessage'][_0x0e96('0x4c')](_0x2b84c2)['then'](handleEntityNotFound(_0x399e24,null))[_0x0e96('0x29')](respondWithResult(_0x399e24,null))['catch'](handleError(_0x399e24,null));};exports[_0x0e96('0x4d')]=function(_0x31088c,_0x295a97){return db['ChatInternalMessage'][_0x0e96('0x4d')](_0x31088c[_0x0e96('0x4e')],{})[_0x0e96('0x29')](respondWithResult(_0x295a97,0xc9))[_0x0e96('0x48')](handleError(_0x295a97,null));};exports[_0x0e96('0x28')]=function(_0x51f9da,_0x1f7e9f){if(_0x51f9da['body']['id']){delete _0x51f9da['body']['id'];}return db['ChatInternalMessage'][_0x0e96('0x4c')]({'where':{'id':_0x51f9da[_0x0e96('0x4a')]['id']}})[_0x0e96('0x29')](handleEntityNotFound(_0x1f7e9f,null))[_0x0e96('0x29')](saveUpdates(_0x51f9da[_0x0e96('0x4e')],null))[_0x0e96('0x29')](respondWithResult(_0x1f7e9f,null))['catch'](handleError(_0x1f7e9f,null));};exports['destroy']=function(_0x318d98,_0x4d5937){return db[_0x0e96('0x31')][_0x0e96('0x4c')]({'where':{'id':_0x318d98['params']['id']}})[_0x0e96('0x29')](handleEntityNotFound(_0x4d5937,null))['then'](removeEntity(_0x4d5937,null))[_0x0e96('0x48')](handleError(_0x4d5937,null));};exports['describe']=function(_0x2a2f5a,_0x25e52b){return db[_0x0e96('0x31')][_0x0e96('0x4f')]()[_0x0e96('0x29')](respondWithResult(_0x25e52b,null))['catch'](handleError(_0x25e52b,null));};function wrapUser(_0x1c5135){return function(_0x284491){var _0x45ee54=_0x1c5135[_0x0e96('0x50')]({'plain':!![]});_0x45ee54[_0x0e96('0x51')]=[];if(_0x284491){_0x45ee54[_0x0e96('0x52')]=_0x284491[_0x0e96('0x53')];_0x45ee54[_0x0e96('0x54')]=_0x284491;}else{_0x45ee54[_0x0e96('0x52')]=moment(0x0)[_0x0e96('0x55')]('YYYY-MM-DD\x20HH:mm:ss');_0x45ee54[_0x0e96('0x54')]={};}return _0x45ee54;};}exports[_0x0e96('0x56')]=function(_0xd36ac0,_0x2d934c,_0x581de5){var _0x4de546=[];return db[_0x0e96('0x57')][_0x0e96('0x58')]({'where':{'role':['agent',_0x0e96('0x59'),_0x0e96('0x5a')]},'attributes':['id',_0x0e96('0x5b'),_0x0e96('0x2d'),_0x0e96('0x5c'),_0x0e96('0x5d'),_0x0e96('0x5e'),_0x0e96('0x5f'),_0x0e96('0x60'),'allowmessenger',_0x0e96('0x61')],'order':qs[_0x0e96('0x3e')](_0x0e96('0x62')),'include':[{'model':db[_0x0e96('0x63')],'as':'VoiceQueues','attributes':['id',_0x0e96('0x2d'),_0x0e96('0x33')],'through':{'attributes':[]}}]})[_0x0e96('0x29')](function(_0x39993f){if(_0x39993f){var _0x5d61d9=_0xd36ac0[_0x0e96('0x5a')][_0x0e96('0x50')]({'plain':!![]});if(!_0x5d61d9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5d61d9[_0x0e96('0x5c')]==='user'){return db[_0x0e96('0x64')][_0x0e96('0x4c')]({'where':{'name':_0x0e96('0x65'),'userProfileId':_0x5d61d9['userProfileId']},'raw':!![]})[_0x0e96('0x29')](function(_0x3bb4b2){if(_0x3bb4b2){if(_0x3bb4b2[_0x0e96('0x66')]===0x0){return db[_0x0e96('0x67')]['findAll']({'where':{'sectionId':_0x3bb4b2['id']},'raw':!![]})[_0x0e96('0x29')](function(_0x2e984e){var _0x56389a=[];if(_[_0x0e96('0x68')](_0x2e984e)){_0x56389a=_[_0x0e96('0x41')](_0x39993f,function(_0x5c47c3){if(_0x5c47c3[_0x0e96('0x5c')]!==_0x0e96('0x69')){return _0x5c47c3;}});return _0x56389a;}else{for(var _0x5c0ff3=0x0;_0x5c0ff3<_0x39993f[_0x0e96('0x3b')];_0x5c0ff3++){var _0x2a69cc=_0x39993f[_0x5c0ff3];if(_0x2a69cc[_0x0e96('0x5c')]==='agent'){var _0x517356=_[_0x0e96('0x4c')](_0x2e984e,function(_0x4fb5bc){return _0x4fb5bc[_0x0e96('0x6a')]===_0x2a69cc['id'];});if(_0x517356)_0x56389a[_0x0e96('0x6b')](_0x2a69cc);}else{_0x56389a[_0x0e96('0x6b')](_0x2a69cc);}}return _0x56389a;}});}else{return _0x39993f;}}else{var _0x54eacc=_[_0x0e96('0x41')](_0x39993f,function(_0x3970ca){if(_0x3970ca[_0x0e96('0x5c')]!==_0x0e96('0x69')){return _0x3970ca;}});return _0x54eacc;}});}else{return _0x39993f;}}})['then'](function(_0x22d51b){var _0x366292=[];if(_0x22d51b){_0x4de546=_0x22d51b;for(var _0x24233f=0x0;_0x24233f<_0x22d51b[_0x0e96('0x3b')];_0x24233f+=0x1){_0x4de546[_0x24233f][_0x0e96('0x51')]=[];_0x366292[_0x0e96('0x6b')](db[_0x0e96('0x31')][_0x0e96('0x4c')]({'where':{'FromId':[_0xd36ac0[_0x0e96('0x5a')]['id'],_0x22d51b[_0x24233f]['id']],'ToId':[_0xd36ac0[_0x0e96('0x5a')]['id'],_0x22d51b[_0x24233f]['id']],'ChatGroupId':null},'attributes':['id','createdAt',_0x0e96('0x6c'),_0x0e96('0x6d'),'read',_0x0e96('0x4e')],'order':qs['sort']('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0x0e96('0x29')](wrapUser(_0x22d51b[_0x24233f])));}return BPromise['all'](_0x366292);}return[];})[_0x0e96('0x29')](function(_0x3bcb02){return{'rows':_0x3bcb02,'count':_0x3bcb02[_0x0e96('0x3b')]};})[_0x0e96('0x29')](respondWithResult(_0x2d934c,null))[_0x0e96('0x48')](handleError(_0x2d934c,null));};