5dccd62ecf00b28edf7fe67f7f4a961a53e537ab
[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 _0x40be=['Content-Range','apply','reject','save','update','then','name','send','index','map','ChatInternalMessage','model','keys','query','filters','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','catch','show','params','intersection','length','options','find','create','body','destroy','describe','get','lastMessageAt','createdAt','format','lastMessage','getUsers','User','agent','admin','user','fullname','userpic','internal','online','lastLoginAt','showWebBar','-online','VoiceQueue','VoiceQueues','type','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Agents','autoAssociation','UserProfileResource','isEmpty','resourceId','push','FromId','ToId','read','-createdAt','all','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','localhost','./chatInternalMessage.socket','sendStatus','status','end','json','count','offset','limit','set'];(function(_0x274894,_0x24cc88){var _0x5d4754=function(_0x1ceddd){while(--_0x1ceddd){_0x274894['push'](_0x274894['shift']());}};_0x5d4754(++_0x24cc88);}(_0x40be,0xb6));var _0xe40b=function(_0x526517,_0x19d576){_0x526517=_0x526517-0x0;var _0x40f88f=_0x40be[_0x526517];return _0x40f88f;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xe40b('0x0'));var rimraf=require(_0xe40b('0x1'));var zipdir=require(_0xe40b('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe40b('0x3'));var moment=require(_0xe40b('0x4'));var BPromise=require(_0xe40b('0x5'));var Mustache=require(_0xe40b('0x6'));var util=require(_0xe40b('0x7'));var path=require('path');var sox=require(_0xe40b('0x8'));var csv=require(_0xe40b('0x9'));var ejs=require(_0xe40b('0xa'));var fs=require('fs');var _=require(_0xe40b('0xb'));var squel=require(_0xe40b('0xc'));var crypto=require(_0xe40b('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xe40b('0x9'));var querystring=require(_0xe40b('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xe40b('0xf'));var qs=require(_0xe40b('0x10'));var as=require(_0xe40b('0x11'));var hardwareService=require(_0xe40b('0x12'));var logger=require(_0xe40b('0x13'))('api');var utils=require('../../config/utils');var config=require(_0xe40b('0x14'));var db=require(_0xe40b('0x15'))['db'];config[_0xe40b('0x16')]=_[_0xe40b('0x17')](config[_0xe40b('0x16')],{'host':_0xe40b('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xe40b('0x16')]));require(_0xe40b('0x19'))['register'](socket);function respondWithStatusCode(_0x154e8c,_0x2007ac){_0x2007ac=_0x2007ac||0xcc;return function(_0x3cf01b){if(_0x3cf01b){return _0x154e8c[_0xe40b('0x1a')](_0x2007ac);}return _0x154e8c[_0xe40b('0x1b')](_0x2007ac)[_0xe40b('0x1c')]();};}function respondWithResult(_0x27fd17,_0x2068d9){_0x2068d9=_0x2068d9||0xc8;return function(_0x1b3b33){if(_0x1b3b33){return _0x27fd17[_0xe40b('0x1b')](_0x2068d9)[_0xe40b('0x1d')](_0x1b3b33);}};}function respondWithFilteredResult(_0x46bf46,_0x2f2c90){return function(_0x1c0191){if(_0x1c0191){var _0x5e1810=_0x1c0191[_0xe40b('0x1e')],_0x20fe68=_0x2f2c90[_0xe40b('0x1f')],_0x3273d3=_0x2f2c90[_0xe40b('0x1f')]+_0x2f2c90[_0xe40b('0x20')],_0x22558e;if(_0x3273d3>=_0x5e1810){_0x3273d3=_0x5e1810;_0x22558e=0xc8;}else{_0x22558e=0xce;}_0x46bf46['status'](_0x22558e);return _0x46bf46[_0xe40b('0x21')](_0xe40b('0x22'),_0x20fe68+'-'+_0x3273d3+'/'+_0x5e1810)['json'](_0x1c0191);}return null;};}function patchUpdates(_0x4e9f35){return function(_0x186832){try{jsonpatch[_0xe40b('0x23')](_0x186832,_0x4e9f35,!![]);}catch(_0x17280f){return BPromise[_0xe40b('0x24')](_0x17280f);}return _0x186832[_0xe40b('0x25')]();};}function saveUpdates(_0x4d2b9c,_0x54bc27){return function(_0x1b4dc0){if(_0x1b4dc0){return _0x1b4dc0[_0xe40b('0x26')](_0x4d2b9c)[_0xe40b('0x27')](function(_0x44fb5d){return _0x44fb5d;});}return null;};}function removeEntity(_0x3ab364,_0x37cd8e){return function(_0x37f061){if(_0x37f061){return _0x37f061['destroy']()['then'](function(){_0x3ab364[_0xe40b('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x41de9b,_0x26c93b){return function(_0x27ceec){if(!_0x27ceec){_0x41de9b[_0xe40b('0x1a')](0x194);}return _0x27ceec;};}function handleError(_0x59a70f,_0x1738cf){_0x1738cf=_0x1738cf||0x1f4;return function(_0x123b01){logger['error'](_0x123b01['stack']);if(_0x123b01[_0xe40b('0x28')]){delete _0x123b01[_0xe40b('0x28')];}_0x59a70f[_0xe40b('0x1b')](_0x1738cf)[_0xe40b('0x29')](_0x123b01);};}exports[_0xe40b('0x2a')]=function(_0x3364f2,_0x12b392){var _0x9ad242={},_0x3434b5={},_0x423274={'count':0x0,'rows':[]};var _0x5c07df=_[_0xe40b('0x2b')](db[_0xe40b('0x2c')]['rawAttributes'],function(_0xd87f85){return{'name':_0xd87f85['fieldName'],'type':_0xd87f85['type']['key']};});_0x3434b5[_0xe40b('0x2d')]=_['map'](_0x5c07df,'name');_0x3434b5['query']=_[_0xe40b('0x2e')](_0x3364f2[_0xe40b('0x2f')]);_0x3434b5[_0xe40b('0x30')]=_['intersection'](_0x3434b5['model'],_0x3434b5[_0xe40b('0x2f')]);_0x9ad242[_0xe40b('0x31')]=_['intersection'](_0x3434b5['model'],qs[_0xe40b('0x32')](_0x3364f2[_0xe40b('0x2f')][_0xe40b('0x32')]));_0x9ad242['attributes']=_0x9ad242[_0xe40b('0x31')]['length']?_0x9ad242['attributes']:_0x3434b5['model'];if(!_0x3364f2['query'][_0xe40b('0x33')](_0xe40b('0x34'))){_0x9ad242['limit']=qs[_0xe40b('0x20')](_0x3364f2['query']['limit']);_0x9ad242[_0xe40b('0x1f')]=qs[_0xe40b('0x1f')](_0x3364f2[_0xe40b('0x2f')][_0xe40b('0x1f')]);}_0x9ad242[_0xe40b('0x35')]=qs[_0xe40b('0x36')](_0x3364f2[_0xe40b('0x2f')][_0xe40b('0x36')]);_0x9ad242[_0xe40b('0x37')]=qs[_0xe40b('0x30')](_[_0xe40b('0x38')](_0x3364f2[_0xe40b('0x2f')],_0x3434b5['filters']));if(_0x3364f2[_0xe40b('0x2f')][_0xe40b('0x39')]){_0x9ad242[_0xe40b('0x37')]=_[_0xe40b('0x3a')](_0x9ad242['where'],{'$or':_[_0xe40b('0x2b')](_0x5c07df,function(_0x3e8ec0){if(_0x3e8ec0['type']!==_0xe40b('0x3b')){var _0x289ae9={};_0x289ae9[_0x3e8ec0['name']]={'$like':'%'+_0x3364f2[_0xe40b('0x2f')][_0xe40b('0x39')]+'%'};return _0x289ae9;}})});}_0x9ad242=_[_0xe40b('0x3a')]({},_0x9ad242,_0x3364f2['options']);var _0x463804={'where':_0x9ad242[_0xe40b('0x37')]};return db[_0xe40b('0x2c')][_0xe40b('0x1e')](_0x463804)['then'](function(_0x1dbadc){_0x423274[_0xe40b('0x1e')]=_0x1dbadc;if(_0x3364f2[_0xe40b('0x2f')][_0xe40b('0x3c')]){_0x9ad242[_0xe40b('0x3d')]=[{'all':!![]}];}return db[_0xe40b('0x2c')][_0xe40b('0x3e')](_0x9ad242);})[_0xe40b('0x27')](function(_0x17af96){_0x423274['rows']=_0x17af96;return _0x423274;})[_0xe40b('0x27')](respondWithFilteredResult(_0x12b392,_0x9ad242))[_0xe40b('0x3f')](handleError(_0x12b392,null));};exports[_0xe40b('0x40')]=function(_0x2d5d66,_0x45f98f){var _0xd63b1e={'raw':!![],'where':{'id':_0x2d5d66[_0xe40b('0x41')]['id']}},_0x53b1b0={};_0x53b1b0[_0xe40b('0x2d')]=_[_0xe40b('0x2e')](db[_0xe40b('0x2c')]['rawAttributes']);_0x53b1b0['query']=_['keys'](_0x2d5d66[_0xe40b('0x2f')]);_0x53b1b0[_0xe40b('0x30')]=_[_0xe40b('0x42')](_0x53b1b0[_0xe40b('0x2d')],_0x53b1b0['query']);_0xd63b1e['attributes']=_['intersection'](_0x53b1b0['model'],qs[_0xe40b('0x32')](_0x2d5d66['query'][_0xe40b('0x32')]));_0xd63b1e['attributes']=_0xd63b1e[_0xe40b('0x31')][_0xe40b('0x43')]?_0xd63b1e[_0xe40b('0x31')]:_0x53b1b0[_0xe40b('0x2d')];if(_0x2d5d66[_0xe40b('0x2f')]['includeAll']){_0xd63b1e[_0xe40b('0x3d')]=[{'all':!![]}];}_0xd63b1e=_[_0xe40b('0x3a')]({},_0xd63b1e,_0x2d5d66[_0xe40b('0x44')]);return db[_0xe40b('0x2c')][_0xe40b('0x45')](_0xd63b1e)['then'](handleEntityNotFound(_0x45f98f,null))[_0xe40b('0x27')](respondWithResult(_0x45f98f,null))[_0xe40b('0x3f')](handleError(_0x45f98f,null));};exports[_0xe40b('0x46')]=function(_0x39643c,_0x58cabf){return db[_0xe40b('0x2c')][_0xe40b('0x46')](_0x39643c[_0xe40b('0x47')],{})['then'](respondWithResult(_0x58cabf,0xc9))[_0xe40b('0x3f')](handleError(_0x58cabf,null));};exports[_0xe40b('0x26')]=function(_0x35a387,_0x531ffa){if(_0x35a387[_0xe40b('0x47')]['id']){delete _0x35a387[_0xe40b('0x47')]['id'];}return db['ChatInternalMessage'][_0xe40b('0x45')]({'where':{'id':_0x35a387[_0xe40b('0x41')]['id']}})['then'](handleEntityNotFound(_0x531ffa,null))['then'](saveUpdates(_0x35a387['body'],null))['then'](respondWithResult(_0x531ffa,null))[_0xe40b('0x3f')](handleError(_0x531ffa,null));};exports[_0xe40b('0x48')]=function(_0x1a4c8d,_0xc9391e){return db[_0xe40b('0x2c')][_0xe40b('0x45')]({'where':{'id':_0x1a4c8d['params']['id']}})[_0xe40b('0x27')](handleEntityNotFound(_0xc9391e,null))[_0xe40b('0x27')](removeEntity(_0xc9391e,null))[_0xe40b('0x3f')](handleError(_0xc9391e,null));};exports[_0xe40b('0x49')]=function(_0x56fc84,_0xe442e9){return db[_0xe40b('0x2c')][_0xe40b('0x49')]()[_0xe40b('0x27')](respondWithResult(_0xe442e9,null))['catch'](handleError(_0xe442e9,null));};function wrapUser(_0x1a729b){return function(_0x544938){var _0x43f02f=_0x1a729b[_0xe40b('0x4a')]({'plain':!![]});_0x43f02f['messages']=[];if(_0x544938){_0x43f02f[_0xe40b('0x4b')]=_0x544938[_0xe40b('0x4c')];_0x43f02f['lastMessage']=_0x544938;}else{_0x43f02f[_0xe40b('0x4b')]=moment(0x0)[_0xe40b('0x4d')]('YYYY-MM-DD\x20HH:mm:ss');_0x43f02f[_0xe40b('0x4e')]={};}return _0x43f02f;};}exports[_0xe40b('0x4f')]=function(_0x2a75bb,_0x23ff0f,_0x1ea97f){var _0x411f66=[];return db[_0xe40b('0x50')][_0xe40b('0x3e')]({'where':{'role':[_0xe40b('0x51'),_0xe40b('0x52'),_0xe40b('0x53')]},'attributes':['id',_0xe40b('0x54'),_0xe40b('0x28'),'role',_0xe40b('0x55'),_0xe40b('0x56'),_0xe40b('0x57'),_0xe40b('0x58'),'allowmessenger',_0xe40b('0x59')],'order':qs[_0xe40b('0x36')](_0xe40b('0x5a')),'include':[{'model':db[_0xe40b('0x5b')],'as':_0xe40b('0x5c'),'attributes':['id',_0xe40b('0x28'),_0xe40b('0x5d')],'through':{'attributes':[]}}]})[_0xe40b('0x27')](function(_0x2adba5){if(_0x2adba5){var _0x4cf7b0=_0x2a75bb['user'][_0xe40b('0x4a')]({'plain':!![]});if(!_0x4cf7b0)throw new Error(_0xe40b('0x5e'));if(_0x4cf7b0[_0xe40b('0x5f')]===_0xe40b('0x53')){return db[_0xe40b('0x60')][_0xe40b('0x45')]({'where':{'name':_0xe40b('0x61'),'userProfileId':_0x4cf7b0['userProfileId']},'raw':!![]})[_0xe40b('0x27')](function(_0x171fdc){if(_0x171fdc){if(_0x171fdc[_0xe40b('0x62')]===0x0){return db[_0xe40b('0x63')]['findAll']({'where':{'sectionId':_0x171fdc['id']},'raw':!![]})[_0xe40b('0x27')](function(_0x4bc2b8){var _0x1c9d3=[];if(_[_0xe40b('0x64')](_0x4bc2b8)){_0x1c9d3=_[_0xe40b('0x39')](_0x2adba5,function(_0x1c4048){if(_0x1c4048[_0xe40b('0x5f')]!==_0xe40b('0x51')){return _0x1c4048;}});return _0x1c9d3;}else{for(var _0xaaf4b8=0x0;_0xaaf4b8<_0x2adba5[_0xe40b('0x43')];_0xaaf4b8++){var _0x5a6433=_0x2adba5[_0xaaf4b8];if(_0x5a6433[_0xe40b('0x5f')]===_0xe40b('0x51')){var _0x32cd16=_[_0xe40b('0x45')](_0x4bc2b8,function(_0x295eea){return _0x295eea[_0xe40b('0x65')]===_0x5a6433['id'];});if(_0x32cd16)_0x1c9d3[_0xe40b('0x66')](_0x5a6433);}else{_0x1c9d3[_0xe40b('0x66')](_0x5a6433);}}return _0x1c9d3;}});}else{return _0x2adba5;}}else{var _0xd502a=_[_0xe40b('0x39')](_0x2adba5,function(_0x4e9493){if(_0x4e9493[_0xe40b('0x5f')]!==_0xe40b('0x51')){return _0x4e9493;}});return _0xd502a;}});}else{return _0x2adba5;}}})[_0xe40b('0x27')](function(_0x4e9a93){var _0x11371c=[];if(_0x4e9a93){_0x411f66=_0x4e9a93;for(var _0x256229=0x0;_0x256229<_0x4e9a93['length'];_0x256229+=0x1){_0x411f66[_0x256229]['messages']=[];_0x11371c['push'](db[_0xe40b('0x2c')][_0xe40b('0x45')]({'where':{'FromId':[_0x2a75bb[_0xe40b('0x53')]['id'],_0x4e9a93[_0x256229]['id']],'ToId':[_0x2a75bb['user']['id'],_0x4e9a93[_0x256229]['id']],'ChatGroupId':null},'attributes':['id',_0xe40b('0x4c'),_0xe40b('0x67'),_0xe40b('0x68'),_0xe40b('0x69'),'body'],'order':qs[_0xe40b('0x36')](_0xe40b('0x6a')),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0x4e9a93[_0x256229])));}return BPromise[_0xe40b('0x6b')](_0x11371c);}return[];})['then'](function(_0x56df86){return{'rows':_0x56df86,'count':_0x56df86[_0xe40b('0x43')]};})[_0xe40b('0x27')](respondWithResult(_0x23ff0f,null))[_0xe40b('0x3f')](handleError(_0x23ff0f,null));};