2b13167208b947b8e7d085da7576bd59349610cb
[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 _0xfeaf=['UserProfileResource','isEmpty','resourceId','push','FromId','read','-createdAt','all','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','desk.js','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','sendStatus','end','json','count','offset','set','Content-Range','apply','reject','save','update','then','status','error','stack','name','send','index','map','ChatInternalMessage','fieldName','type','model','query','fields','length','attributes','hasOwnProperty','nolimit','limit','order','sort','where','filters','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','params','keys','rawAttributes','intersection','find','catch','create','body','describe','messages','lastMessageAt','createdAt','format','lastMessage','getUsers','User','agent','user','fullname','role','userpic','internal','online','allowmessenger','showWebBar','-online','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','Agents','userProfileId'];(function(_0xc83a19,_0x40f352){var _0x489adf=function(_0x3375f0){while(--_0x3375f0){_0xc83a19['push'](_0xc83a19['shift']());}};_0x489adf(++_0x40f352);}(_0xfeaf,0x73));var _0xffea=function(_0x2cb008,_0x4480b1){_0x2cb008=_0x2cb008-0x0;var _0x5b3c72=_0xfeaf[_0x2cb008];return _0x5b3c72;};'use strict';var pdf=require(_0xffea('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xffea('0x1'));var zipdir=require(_0xffea('0x2'));var jsonpatch=require(_0xffea('0x3'));var rp=require(_0xffea('0x4'));var moment=require(_0xffea('0x5'));var BPromise=require(_0xffea('0x6'));var Mustache=require(_0xffea('0x7'));var util=require(_0xffea('0x8'));var path=require(_0xffea('0x9'));var sox=require(_0xffea('0xa'));var csv=require(_0xffea('0xb'));var ejs=require(_0xffea('0xc'));var fs=require('fs');var _=require(_0xffea('0xd'));var squel=require('squel');var crypto=require(_0xffea('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xffea('0xf'));var toCsv=require(_0xffea('0xb'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xffea('0x10'));var qs=require(_0xffea('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xffea('0x12'));var logger=require(_0xffea('0x13'))(_0xffea('0x14'));var utils=require(_0xffea('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0xffea('0x16')]=_[_0xffea('0x17')](config[_0xffea('0x16')],{'host':_0xffea('0x18'),'port':0x18eb});var socket=require(_0xffea('0x19'))(new Redis(config['redis']));require(_0xffea('0x1a'))['register'](socket);function respondWithStatusCode(_0xf58b0b,_0x481627){_0x481627=_0x481627||0xcc;return function(_0x810622){if(_0x810622){return _0xf58b0b[_0xffea('0x1b')](_0x481627);}return _0xf58b0b['status'](_0x481627)[_0xffea('0x1c')]();};}function respondWithResult(_0x4bfedb,_0x3150d0){_0x3150d0=_0x3150d0||0xc8;return function(_0x809d1d){if(_0x809d1d){return _0x4bfedb['status'](_0x3150d0)[_0xffea('0x1d')](_0x809d1d);}};}function respondWithFilteredResult(_0x5e20d9,_0x490397){return function(_0x35c089){if(_0x35c089){var _0x1a1bbd=_0x35c089[_0xffea('0x1e')],_0x569245=_0x490397[_0xffea('0x1f')],_0x13116b=_0x490397[_0xffea('0x1f')]+_0x490397['limit'],_0x215721;if(_0x13116b>=_0x1a1bbd){_0x13116b=_0x1a1bbd;_0x215721=0xc8;}else{_0x215721=0xce;}_0x5e20d9['status'](_0x215721);return _0x5e20d9[_0xffea('0x20')](_0xffea('0x21'),_0x569245+'-'+_0x13116b+'/'+_0x1a1bbd)[_0xffea('0x1d')](_0x35c089);}return null;};}function patchUpdates(_0x119844){return function(_0x52885c){try{jsonpatch[_0xffea('0x22')](_0x52885c,_0x119844,!![]);}catch(_0x44ea7f){return BPromise[_0xffea('0x23')](_0x44ea7f);}return _0x52885c[_0xffea('0x24')]();};}function saveUpdates(_0x17ccc8,_0x1c841b){return function(_0x567f60){if(_0x567f60){return _0x567f60[_0xffea('0x25')](_0x17ccc8)[_0xffea('0x26')](function(_0xa9de44){return _0xa9de44;});}return null;};}function removeEntity(_0x5cdd1b,_0x322a65){return function(_0x338efe){if(_0x338efe){return _0x338efe['destroy']()[_0xffea('0x26')](function(){_0x5cdd1b[_0xffea('0x27')](0xcc)['end']();});}};}function handleEntityNotFound(_0xcc39bc,_0x21def0){return function(_0xd3de7e){if(!_0xd3de7e){_0xcc39bc[_0xffea('0x1b')](0x194);}return _0xd3de7e;};}function handleError(_0x3e97d7,_0x590e74){_0x590e74=_0x590e74||0x1f4;return function(_0x1c8923){logger[_0xffea('0x28')](_0x1c8923[_0xffea('0x29')]);if(_0x1c8923['name']){delete _0x1c8923[_0xffea('0x2a')];}_0x3e97d7[_0xffea('0x27')](_0x590e74)[_0xffea('0x2b')](_0x1c8923);};}exports[_0xffea('0x2c')]=function(_0xddc041,_0x235609){var _0x4471ca={},_0x1532fc={},_0x11d16b={'count':0x0,'rows':[]};var _0x34cca2=_[_0xffea('0x2d')](db[_0xffea('0x2e')]['rawAttributes'],function(_0x282afd){return{'name':_0x282afd[_0xffea('0x2f')],'type':_0x282afd[_0xffea('0x30')]['key']};});_0x1532fc[_0xffea('0x31')]=_[_0xffea('0x2d')](_0x34cca2,_0xffea('0x2a'));_0x1532fc[_0xffea('0x32')]=_['keys'](_0xddc041[_0xffea('0x32')]);_0x1532fc['filters']=_['intersection'](_0x1532fc[_0xffea('0x31')],_0x1532fc[_0xffea('0x32')]);_0x4471ca['attributes']=_['intersection'](_0x1532fc['model'],qs['fields'](_0xddc041[_0xffea('0x32')][_0xffea('0x33')]));_0x4471ca['attributes']=_0x4471ca['attributes'][_0xffea('0x34')]?_0x4471ca[_0xffea('0x35')]:_0x1532fc[_0xffea('0x31')];if(!_0xddc041[_0xffea('0x32')][_0xffea('0x36')](_0xffea('0x37'))){_0x4471ca['limit']=qs[_0xffea('0x38')](_0xddc041['query'][_0xffea('0x38')]);_0x4471ca['offset']=qs[_0xffea('0x1f')](_0xddc041[_0xffea('0x32')][_0xffea('0x1f')]);}_0x4471ca[_0xffea('0x39')]=qs['sort'](_0xddc041['query'][_0xffea('0x3a')]);_0x4471ca[_0xffea('0x3b')]=qs[_0xffea('0x3c')](_['pick'](_0xddc041[_0xffea('0x32')],_0x1532fc[_0xffea('0x3c')]),_0x34cca2);if(_0xddc041[_0xffea('0x32')][_0xffea('0x3d')]){_0x4471ca[_0xffea('0x3b')]=_[_0xffea('0x3e')](_0x4471ca[_0xffea('0x3b')],{'$or':_[_0xffea('0x2d')](_0x34cca2,function(_0x5b29a2){if(_0x5b29a2[_0xffea('0x30')]!==_0xffea('0x3f')){var _0x56284c={};_0x56284c[_0x5b29a2[_0xffea('0x2a')]]={'$like':'%'+_0xddc041[_0xffea('0x32')][_0xffea('0x3d')]+'%'};return _0x56284c;}})});}_0x4471ca=_[_0xffea('0x3e')]({},_0x4471ca,_0xddc041[_0xffea('0x40')]);var _0x9a4606={'where':_0x4471ca[_0xffea('0x3b')]};return db['ChatInternalMessage']['count'](_0x9a4606)['then'](function(_0xf20854){_0x11d16b['count']=_0xf20854;if(_0xddc041[_0xffea('0x32')][_0xffea('0x41')]){_0x4471ca[_0xffea('0x42')]=[{'all':!![]}];}return db['ChatInternalMessage'][_0xffea('0x43')](_0x4471ca);})['then'](function(_0x2ef905){_0x11d16b[_0xffea('0x44')]=_0x2ef905;return _0x11d16b;})[_0xffea('0x26')](respondWithFilteredResult(_0x235609,_0x4471ca))['catch'](handleError(_0x235609,null));};exports['show']=function(_0x3ab783,_0x44e305){var _0x2459f5={'raw':!![],'where':{'id':_0x3ab783[_0xffea('0x45')]['id']}},_0x28c09a={};_0x28c09a[_0xffea('0x31')]=_[_0xffea('0x46')](db[_0xffea('0x2e')][_0xffea('0x47')]);_0x28c09a[_0xffea('0x32')]=_[_0xffea('0x46')](_0x3ab783[_0xffea('0x32')]);_0x28c09a[_0xffea('0x3c')]=_['intersection'](_0x28c09a['model'],_0x28c09a[_0xffea('0x32')]);_0x2459f5[_0xffea('0x35')]=_[_0xffea('0x48')](_0x28c09a[_0xffea('0x31')],qs[_0xffea('0x33')](_0x3ab783['query'][_0xffea('0x33')]));_0x2459f5[_0xffea('0x35')]=_0x2459f5[_0xffea('0x35')][_0xffea('0x34')]?_0x2459f5[_0xffea('0x35')]:_0x28c09a[_0xffea('0x31')];if(_0x3ab783[_0xffea('0x32')][_0xffea('0x41')]){_0x2459f5[_0xffea('0x42')]=[{'all':!![]}];}_0x2459f5=_[_0xffea('0x3e')]({},_0x2459f5,_0x3ab783[_0xffea('0x40')]);return db[_0xffea('0x2e')][_0xffea('0x49')](_0x2459f5)[_0xffea('0x26')](handleEntityNotFound(_0x44e305,null))[_0xffea('0x26')](respondWithResult(_0x44e305,null))[_0xffea('0x4a')](handleError(_0x44e305,null));};exports[_0xffea('0x4b')]=function(_0x1cf037,_0x3d322b){return db[_0xffea('0x2e')][_0xffea('0x4b')](_0x1cf037[_0xffea('0x4c')],{})[_0xffea('0x26')](respondWithResult(_0x3d322b,0xc9))[_0xffea('0x4a')](handleError(_0x3d322b,null));};exports['update']=function(_0xdabd3c,_0x51399c){if(_0xdabd3c[_0xffea('0x4c')]['id']){delete _0xdabd3c['body']['id'];}return db[_0xffea('0x2e')][_0xffea('0x49')]({'where':{'id':_0xdabd3c[_0xffea('0x45')]['id']}})[_0xffea('0x26')](handleEntityNotFound(_0x51399c,null))[_0xffea('0x26')](saveUpdates(_0xdabd3c[_0xffea('0x4c')],null))[_0xffea('0x26')](respondWithResult(_0x51399c,null))[_0xffea('0x4a')](handleError(_0x51399c,null));};exports['destroy']=function(_0x43be6b,_0x5b0fa9){return db['ChatInternalMessage'][_0xffea('0x49')]({'where':{'id':_0x43be6b[_0xffea('0x45')]['id']}})[_0xffea('0x26')](handleEntityNotFound(_0x5b0fa9,null))[_0xffea('0x26')](removeEntity(_0x5b0fa9,null))['catch'](handleError(_0x5b0fa9,null));};exports[_0xffea('0x4d')]=function(_0x3a2356,_0x23324e){return db[_0xffea('0x2e')][_0xffea('0x4d')]()['then'](respondWithResult(_0x23324e,null))[_0xffea('0x4a')](handleError(_0x23324e,null));};function wrapUser(_0x3b5aad){return function(_0x2e81ba){var _0x41b2cc=_0x3b5aad['get']({'plain':!![]});_0x41b2cc[_0xffea('0x4e')]=[];if(_0x2e81ba){_0x41b2cc[_0xffea('0x4f')]=_0x2e81ba[_0xffea('0x50')];_0x41b2cc['lastMessage']=_0x2e81ba;}else{_0x41b2cc[_0xffea('0x4f')]=moment(0x0)[_0xffea('0x51')]('YYYY-MM-DD\x20HH:mm:ss');_0x41b2cc[_0xffea('0x52')]={};}return _0x41b2cc;};}exports[_0xffea('0x53')]=function(_0x41040b,_0x11ed57,_0x554066){var _0x4f49be=[];return db[_0xffea('0x54')][_0xffea('0x43')]({'where':{'role':[_0xffea('0x55'),'admin',_0xffea('0x56')]},'attributes':['id',_0xffea('0x57'),_0xffea('0x2a'),_0xffea('0x58'),_0xffea('0x59'),_0xffea('0x5a'),_0xffea('0x5b'),'lastLoginAt',_0xffea('0x5c'),_0xffea('0x5d')],'order':qs[_0xffea('0x3a')](_0xffea('0x5e')),'include':[{'model':db['VoiceQueue'],'as':_0xffea('0x5f'),'attributes':['id','name',_0xffea('0x30')],'through':{'attributes':[]}}]})[_0xffea('0x26')](function(_0x13d929){if(_0x13d929){var _0x3567b6=_0x41040b[_0xffea('0x56')]['get']({'plain':!![]});if(!_0x3567b6)throw new Error(_0xffea('0x60'));if(_0x3567b6[_0xffea('0x58')]===_0xffea('0x56')){return db['UserProfileSection']['find']({'where':{'name':_0xffea('0x61'),'userProfileId':_0x3567b6[_0xffea('0x62')]},'raw':!![]})['then'](function(_0x1e8489){if(_0x1e8489){if(_0x1e8489['autoAssociation']===0x0){return db[_0xffea('0x63')][_0xffea('0x43')]({'where':{'sectionId':_0x1e8489['id']},'raw':!![]})[_0xffea('0x26')](function(_0x21002f){var _0x3128a1=[];if(_[_0xffea('0x64')](_0x21002f)){_0x3128a1=_[_0xffea('0x3d')](_0x13d929,function(_0x34ef67){if(_0x34ef67[_0xffea('0x58')]!=='agent'){return _0x34ef67;}});return _0x3128a1;}else{for(var _0x38fbb6=0x0;_0x38fbb6<_0x13d929[_0xffea('0x34')];_0x38fbb6++){var _0x5e62f2=_0x13d929[_0x38fbb6];if(_0x5e62f2[_0xffea('0x58')]==='agent'){var _0x593e95=_[_0xffea('0x49')](_0x21002f,function(_0x434a14){return _0x434a14[_0xffea('0x65')]===_0x5e62f2['id'];});if(_0x593e95)_0x3128a1['push'](_0x5e62f2);}else{_0x3128a1[_0xffea('0x66')](_0x5e62f2);}}return _0x3128a1;}});}else{return _0x13d929;}}else{var _0x426528=_['filter'](_0x13d929,function(_0x3f525a){if(_0x3f525a[_0xffea('0x58')]!==_0xffea('0x55')){return _0x3f525a;}});return _0x426528;}});}else{return _0x13d929;}}})[_0xffea('0x26')](function(_0x58c351){var _0x55349c=[];if(_0x58c351){_0x4f49be=_0x58c351;for(var _0x434c55=0x0;_0x434c55<_0x58c351[_0xffea('0x34')];_0x434c55+=0x1){_0x4f49be[_0x434c55][_0xffea('0x4e')]=[];_0x55349c[_0xffea('0x66')](db['ChatInternalMessage'][_0xffea('0x49')]({'where':{'FromId':[_0x41040b['user']['id'],_0x58c351[_0x434c55]['id']],'ToId':[_0x41040b[_0xffea('0x56')]['id'],_0x58c351[_0x434c55]['id']],'ChatGroupId':null},'attributes':['id',_0xffea('0x50'),_0xffea('0x67'),'ToId',_0xffea('0x68'),'body'],'order':qs['sort'](_0xffea('0x69')),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0x58c351[_0x434c55])));}return BPromise[_0xffea('0x6a')](_0x55349c);}return[];})[_0xffea('0x26')](function(_0x4b5a09){return{'rows':_0x4b5a09,'count':_0x4b5a09[_0xffea('0x34')]};})['then'](respondWithResult(_0x11ed57,null))[_0xffea('0x4a')](handleError(_0x11ed57,null));};