Built motion from commit 19a84241.|2.5.34
[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 _0x2318=['-createdAt','eml-format','zip-dir','request-promise','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','redis','localhost','./chatInternalMessage.socket','register','status','end','json','offset','undefined','count','set','apply','save','update','destroy','then','sendStatus','error','stack','name','send','map','ChatInternalMessage','rawAttributes','fieldName','type','key','query','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','pick','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','keys','find','create','body','get','messages','lastMessageAt','createdAt','lastMessage','YYYY-MM-DD\x20HH:mm:ss','getUsers','findAll','agent','user','role','userpic','internal','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','Agents','userProfileId','autoAssociation','UserProfileResource','filter','push','FromId','ToId','read'];(function(_0x232268,_0x345893){var _0x14884a=function(_0xc28745){while(--_0xc28745){_0x232268['push'](_0x232268['shift']());}};_0x14884a(++_0x345893);}(_0x2318,0x13f));var _0x8231=function(_0x49b530,_0x31e6c9){_0x49b530=_0x49b530-0x0;var _0xf6e436=_0x2318[_0x49b530];return _0xf6e436;};'use strict';var emlformat=require(_0x8231('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8231('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8231('0x2'));var moment=require('moment');var BPromise=require(_0x8231('0x3'));var Mustache=require(_0x8231('0x4'));var util=require(_0x8231('0x5'));var path=require('path');var sox=require(_0x8231('0x6'));var csv=require(_0x8231('0x7'));var ejs=require(_0x8231('0x8'));var fs=require('fs');var fs_extra=require(_0x8231('0x9'));var _=require(_0x8231('0xa'));var squel=require(_0x8231('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x8231('0xc'));var toCsv=require(_0x8231('0x7'));var querystring=require(_0x8231('0xd'));var Papa=require('papaparse');var Redis=require(_0x8231('0xe'));var authService=require(_0x8231('0xf'));var qs=require(_0x8231('0x10'));var as=require(_0x8231('0x11'));var hardwareService=require(_0x8231('0x12'));var logger=require(_0x8231('0x13'))('api');var utils=require(_0x8231('0x14'));var config=require(_0x8231('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x8231('0x16')]=_['defaults'](config[_0x8231('0x16')],{'host':_0x8231('0x17'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x8231('0x16')]));require(_0x8231('0x18'))[_0x8231('0x19')](socket);function respondWithStatusCode(_0x2b53d6,_0x45a880){_0x45a880=_0x45a880||0xcc;return function(_0x2c56ca){if(_0x2c56ca){return _0x2b53d6['sendStatus'](_0x45a880);}return _0x2b53d6[_0x8231('0x1a')](_0x45a880)[_0x8231('0x1b')]();};}function respondWithResult(_0x4b65ed,_0x27ec1b){_0x27ec1b=_0x27ec1b||0xc8;return function(_0xa08746){if(_0xa08746){return _0x4b65ed['status'](_0x27ec1b)[_0x8231('0x1c')](_0xa08746);}};}function respondWithFilteredResult(_0x16cf49,_0x1179aa){return function(_0x4b0f76){if(_0x4b0f76){var _0x557cad=typeof _0x1179aa[_0x8231('0x1d')]===_0x8231('0x1e')&&typeof _0x1179aa['limit']===_0x8231('0x1e');var _0x365684=_0x4b0f76['count'];var _0x309787=_0x557cad?0x0:_0x1179aa[_0x8231('0x1d')];var _0x302059=_0x557cad?_0x4b0f76[_0x8231('0x1f')]:_0x1179aa[_0x8231('0x1d')]+_0x1179aa['limit'];var _0x3fcdda;if(_0x302059>=_0x365684){_0x302059=_0x365684;_0x3fcdda=0xc8;}else{_0x3fcdda=0xce;}_0x16cf49[_0x8231('0x1a')](_0x3fcdda);return _0x16cf49[_0x8231('0x20')]('Content-Range',_0x309787+'-'+_0x302059+'/'+_0x365684)[_0x8231('0x1c')](_0x4b0f76);}return null;};}function patchUpdates(_0x4692ce){return function(_0x2c6c5f){try{jsonpatch[_0x8231('0x21')](_0x2c6c5f,_0x4692ce,!![]);}catch(_0x34c49e){return BPromise['reject'](_0x34c49e);}return _0x2c6c5f[_0x8231('0x22')]();};}function saveUpdates(_0x2f612e,_0x46e006){return function(_0x4a90aa){if(_0x4a90aa){return _0x4a90aa[_0x8231('0x23')](_0x2f612e)['then'](function(_0x3efbcf){return _0x3efbcf;});}return null;};}function removeEntity(_0x5e400d,_0x5b2816){return function(_0x42b4c5){if(_0x42b4c5){return _0x42b4c5[_0x8231('0x24')]()[_0x8231('0x25')](function(){_0x5e400d[_0x8231('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0xe05ce2,_0x12e733){return function(_0x38c8d4){if(!_0x38c8d4){_0xe05ce2[_0x8231('0x26')](0x194);}return _0x38c8d4;};}function handleError(_0x2dd8a0,_0x535ee2){_0x535ee2=_0x535ee2||0x1f4;return function(_0x2125ad){logger[_0x8231('0x27')](_0x2125ad[_0x8231('0x28')]);if(_0x2125ad[_0x8231('0x29')]){delete _0x2125ad[_0x8231('0x29')];}_0x2dd8a0['status'](_0x535ee2)[_0x8231('0x2a')](_0x2125ad);};}exports['index']=function(_0x118790,_0x2b90ac){var _0x544719={},_0x45e20f={},_0x511310={'count':0x0,'rows':[]};var _0x422c94=_[_0x8231('0x2b')](db[_0x8231('0x2c')][_0x8231('0x2d')],function(_0x6d0263){return{'name':_0x6d0263[_0x8231('0x2e')],'type':_0x6d0263[_0x8231('0x2f')][_0x8231('0x30')]};});_0x45e20f['model']=_[_0x8231('0x2b')](_0x422c94,_0x8231('0x29'));_0x45e20f['query']=_['keys'](_0x118790[_0x8231('0x31')]);_0x45e20f['filters']=_[_0x8231('0x32')](_0x45e20f[_0x8231('0x33')],_0x45e20f['query']);_0x544719[_0x8231('0x34')]=_[_0x8231('0x32')](_0x45e20f['model'],qs[_0x8231('0x35')](_0x118790[_0x8231('0x31')][_0x8231('0x35')]));_0x544719['attributes']=_0x544719['attributes'][_0x8231('0x36')]?_0x544719[_0x8231('0x34')]:_0x45e20f['model'];if(!_0x118790[_0x8231('0x31')][_0x8231('0x37')](_0x8231('0x38'))){_0x544719['limit']=qs[_0x8231('0x39')](_0x118790[_0x8231('0x31')][_0x8231('0x39')]);_0x544719[_0x8231('0x1d')]=qs['offset'](_0x118790['query'][_0x8231('0x1d')]);}_0x544719[_0x8231('0x3a')]=qs[_0x8231('0x3b')](_0x118790[_0x8231('0x31')][_0x8231('0x3b')]);_0x544719[_0x8231('0x3c')]=qs[_0x8231('0x3d')](_[_0x8231('0x3e')](_0x118790[_0x8231('0x31')],_0x45e20f[_0x8231('0x3d')]),_0x422c94);if(_0x118790[_0x8231('0x31')]['filter']){_0x544719[_0x8231('0x3c')]=_[_0x8231('0x3f')](_0x544719[_0x8231('0x3c')],{'$or':_[_0x8231('0x2b')](_0x422c94,function(_0x47653c){if(_0x47653c[_0x8231('0x2f')]!==_0x8231('0x40')){var _0x52282c={};_0x52282c[_0x47653c['name']]={'$like':'%'+_0x118790[_0x8231('0x31')]['filter']+'%'};return _0x52282c;}})});}_0x544719=_[_0x8231('0x3f')]({},_0x544719,_0x118790[_0x8231('0x41')]);var _0x2ea822={'where':_0x544719['where']};return db[_0x8231('0x2c')][_0x8231('0x1f')](_0x2ea822)['then'](function(_0x20f7d2){_0x511310[_0x8231('0x1f')]=_0x20f7d2;if(_0x118790[_0x8231('0x31')][_0x8231('0x42')]){_0x544719[_0x8231('0x43')]=[{'all':!![]}];}return db['ChatInternalMessage']['findAll'](_0x544719);})[_0x8231('0x25')](function(_0x4a695e){_0x511310[_0x8231('0x44')]=_0x4a695e;return _0x511310;})[_0x8231('0x25')](respondWithFilteredResult(_0x2b90ac,_0x544719))[_0x8231('0x45')](handleError(_0x2b90ac,null));};exports[_0x8231('0x46')]=function(_0x3f3c8b,_0x68f276){var _0x680bbb={'raw':!![],'where':{'id':_0x3f3c8b[_0x8231('0x47')]['id']}},_0x339190={};_0x339190[_0x8231('0x33')]=_[_0x8231('0x48')](db['ChatInternalMessage']['rawAttributes']);_0x339190[_0x8231('0x31')]=_['keys'](_0x3f3c8b[_0x8231('0x31')]);_0x339190[_0x8231('0x3d')]=_[_0x8231('0x32')](_0x339190[_0x8231('0x33')],_0x339190[_0x8231('0x31')]);_0x680bbb[_0x8231('0x34')]=_[_0x8231('0x32')](_0x339190[_0x8231('0x33')],qs[_0x8231('0x35')](_0x3f3c8b[_0x8231('0x31')]['fields']));_0x680bbb[_0x8231('0x34')]=_0x680bbb['attributes'][_0x8231('0x36')]?_0x680bbb[_0x8231('0x34')]:_0x339190['model'];if(_0x3f3c8b[_0x8231('0x31')]['includeAll']){_0x680bbb[_0x8231('0x43')]=[{'all':!![]}];}_0x680bbb=_[_0x8231('0x3f')]({},_0x680bbb,_0x3f3c8b[_0x8231('0x41')]);return db[_0x8231('0x2c')][_0x8231('0x49')](_0x680bbb)['then'](handleEntityNotFound(_0x68f276,null))[_0x8231('0x25')](respondWithResult(_0x68f276,null))[_0x8231('0x45')](handleError(_0x68f276,null));};exports['create']=function(_0x587727,_0x19bf16){return db[_0x8231('0x2c')][_0x8231('0x4a')](_0x587727['body'],{})[_0x8231('0x25')](respondWithResult(_0x19bf16,0xc9))[_0x8231('0x45')](handleError(_0x19bf16,null));};exports[_0x8231('0x23')]=function(_0x5c29c5,_0x162337){if(_0x5c29c5[_0x8231('0x4b')]['id']){delete _0x5c29c5[_0x8231('0x4b')]['id'];}return db['ChatInternalMessage']['find']({'where':{'id':_0x5c29c5[_0x8231('0x47')]['id']}})[_0x8231('0x25')](handleEntityNotFound(_0x162337,null))['then'](saveUpdates(_0x5c29c5[_0x8231('0x4b')],null))[_0x8231('0x25')](respondWithResult(_0x162337,null))[_0x8231('0x45')](handleError(_0x162337,null));};exports[_0x8231('0x24')]=function(_0x20b04a,_0x2ef1c9){return db['ChatInternalMessage'][_0x8231('0x49')]({'where':{'id':_0x20b04a[_0x8231('0x47')]['id']}})[_0x8231('0x25')](handleEntityNotFound(_0x2ef1c9,null))['then'](removeEntity(_0x2ef1c9,null))['catch'](handleError(_0x2ef1c9,null));};exports['describe']=function(_0x2e8497,_0x3d4e2c){return db['ChatInternalMessage']['describe']()[_0x8231('0x25')](respondWithResult(_0x3d4e2c,null))[_0x8231('0x45')](handleError(_0x3d4e2c,null));};function wrapUser(_0x2fa39f){return function(_0x1b0097){var _0x509eb7=_0x2fa39f[_0x8231('0x4c')]({'plain':!![]});_0x509eb7[_0x8231('0x4d')]=[];if(_0x1b0097){_0x509eb7[_0x8231('0x4e')]=_0x1b0097[_0x8231('0x4f')];_0x509eb7[_0x8231('0x50')]=_0x1b0097;}else{_0x509eb7[_0x8231('0x4e')]=moment(0x0)['format'](_0x8231('0x51'));_0x509eb7[_0x8231('0x50')]={};}return _0x509eb7;};}exports[_0x8231('0x52')]=function(_0x1dedda,_0x5599bc,_0x4137da){var _0x2a0d7b=[];return db['User'][_0x8231('0x53')]({'where':{'role':[_0x8231('0x54'),'admin',_0x8231('0x55')]},'attributes':['id','fullname',_0x8231('0x29'),_0x8231('0x56'),_0x8231('0x57'),_0x8231('0x58'),'online',_0x8231('0x59'),_0x8231('0x5a'),_0x8231('0x5b')],'order':qs['sort'](_0x8231('0x5c')),'include':[{'model':db[_0x8231('0x5d')],'as':_0x8231('0x5e'),'attributes':['id',_0x8231('0x29'),_0x8231('0x2f')],'through':{'attributes':[]}}]})[_0x8231('0x25')](function(_0x1d9502){if(_0x1d9502){var _0x2cd5fd=_0x1dedda[_0x8231('0x55')][_0x8231('0x4c')]({'plain':!![]});if(!_0x2cd5fd)throw new Error(_0x8231('0x5f'));if(_0x2cd5fd[_0x8231('0x56')]===_0x8231('0x55')){return db['UserProfileSection'][_0x8231('0x49')]({'where':{'name':_0x8231('0x60'),'userProfileId':_0x2cd5fd[_0x8231('0x61')]},'raw':!![]})[_0x8231('0x25')](function(_0x38c1dd){if(_0x38c1dd){if(_0x38c1dd[_0x8231('0x62')]===0x0){return db[_0x8231('0x63')][_0x8231('0x53')]({'where':{'sectionId':_0x38c1dd['id']},'raw':!![]})['then'](function(_0x4dc25a){var _0x43dde5=[];if(_['isEmpty'](_0x4dc25a)){_0x43dde5=_[_0x8231('0x64')](_0x1d9502,function(_0x3f3290){if(_0x3f3290[_0x8231('0x56')]!==_0x8231('0x54')){return _0x3f3290;}});return _0x43dde5;}else{for(var _0x3d1c82=0x0;_0x3d1c82<_0x1d9502[_0x8231('0x36')];_0x3d1c82++){var _0x2ad9da=_0x1d9502[_0x3d1c82];if(_0x2ad9da[_0x8231('0x56')]===_0x8231('0x54')){var _0x233cc2=_[_0x8231('0x49')](_0x4dc25a,function(_0x20f0ed){return _0x20f0ed['resourceId']===_0x2ad9da['id'];});if(_0x233cc2)_0x43dde5[_0x8231('0x65')](_0x2ad9da);}else{_0x43dde5[_0x8231('0x65')](_0x2ad9da);}}return _0x43dde5;}});}else{return _0x1d9502;}}else{var _0x497809=_[_0x8231('0x64')](_0x1d9502,function(_0x179d16){if(_0x179d16[_0x8231('0x56')]!==_0x8231('0x54')){return _0x179d16;}});return _0x497809;}});}else{return _0x1d9502;}}})['then'](function(_0x175af8){var _0x387689=[];if(_0x175af8){_0x2a0d7b=_0x175af8;for(var _0x4aacb9=0x0;_0x4aacb9<_0x175af8[_0x8231('0x36')];_0x4aacb9+=0x1){_0x2a0d7b[_0x4aacb9][_0x8231('0x4d')]=[];_0x387689['push'](db[_0x8231('0x2c')][_0x8231('0x49')]({'where':{'FromId':[_0x1dedda['user']['id'],_0x175af8[_0x4aacb9]['id']],'ToId':[_0x1dedda['user']['id'],_0x175af8[_0x4aacb9]['id']],'ChatGroupId':null},'attributes':['id',_0x8231('0x4f'),_0x8231('0x66'),_0x8231('0x67'),_0x8231('0x68'),'body'],'order':qs[_0x8231('0x3b')](_0x8231('0x69')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x8231('0x25')](wrapUser(_0x175af8[_0x4aacb9])));}return BPromise['all'](_0x387689);}return[];})[_0x8231('0x25')](function(_0x37faf2){return{'rows':_0x37faf2,'count':_0x37faf2[_0x8231('0x36')]};})[_0x8231('0x25')](respondWithResult(_0x5599bc,null))[_0x8231('0x45')](handleError(_0x5599bc,null));};