Built motion from commit (unavailable).|2.5.3
[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 _0xf091=['zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','register','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','save','update','then','destroy','error','stack','name','send','index','map','ChatInternalMessage','fieldName','type','model','query','filters','intersection','attributes','length','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','catch','show','params','keys','rawAttributes','fields','options','find','create','body','describe','get','messages','lastMessageAt','createdAt','format','YYYY-MM-DD\x20HH:mm:ss','lastMessage','getUsers','admin','user','fullname','role','internal','online','showWebBar','-online','UserProfileSection','Agents','UserProfileResource','agent','push','FromId','ToId','-createdAt','rimraf'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xf091,0x66));var _0x1f09=function(_0x258c0c,_0x36b1b0){_0x258c0c=_0x258c0c-0x0;var _0x37162b=_0xf091[_0x258c0c];return _0x37162b;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x1f09('0x0'));var zipdir=require(_0x1f09('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x1f09('0x2'));var BPromise=require(_0x1f09('0x3'));var Mustache=require(_0x1f09('0x4'));var util=require(_0x1f09('0x5'));var path=require(_0x1f09('0x6'));var sox=require(_0x1f09('0x7'));var csv=require(_0x1f09('0x8'));var ejs=require(_0x1f09('0x9'));var fs=require('fs');var _=require(_0x1f09('0xa'));var squel=require(_0x1f09('0xb'));var crypto=require(_0x1f09('0xc'));var jsforce=require(_0x1f09('0xd'));var deskjs=require(_0x1f09('0xe'));var toCsv=require(_0x1f09('0x8'));var querystring=require(_0x1f09('0xf'));var Papa=require('papaparse');var Redis=require(_0x1f09('0x10'));var authService=require(_0x1f09('0x11'));var qs=require(_0x1f09('0x12'));var as=require(_0x1f09('0x13'));var hardwareService=require(_0x1f09('0x14'));var logger=require(_0x1f09('0x15'))(_0x1f09('0x16'));var utils=require(_0x1f09('0x17'));var config=require(_0x1f09('0x18'));var db=require(_0x1f09('0x19'))['db'];config['redis']=_[_0x1f09('0x1a')](config[_0x1f09('0x1b')],{'host':_0x1f09('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x1f09('0x1b')]));require('./chatInternalMessage.socket')[_0x1f09('0x1d')](socket);function respondWithStatusCode(_0x474d5e,_0x487b93){_0x487b93=_0x487b93||0xcc;return function(_0x275e8f){if(_0x275e8f){return _0x474d5e[_0x1f09('0x1e')](_0x487b93);}return _0x474d5e[_0x1f09('0x1f')](_0x487b93)[_0x1f09('0x20')]();};}function respondWithResult(_0x26571a,_0x12ded8){_0x12ded8=_0x12ded8||0xc8;return function(_0xda7b3){if(_0xda7b3){return _0x26571a[_0x1f09('0x1f')](_0x12ded8)[_0x1f09('0x21')](_0xda7b3);}};}function respondWithFilteredResult(_0x140b4c,_0x398ae0){return function(_0x46c0ba){if(_0x46c0ba){var _0xbc5d0a=_0x46c0ba[_0x1f09('0x22')],_0x466726=_0x398ae0[_0x1f09('0x23')],_0x380c4a=_0x398ae0[_0x1f09('0x23')]+_0x398ae0[_0x1f09('0x24')],_0xfccfde;if(_0x380c4a>=_0xbc5d0a){_0x380c4a=_0xbc5d0a;_0xfccfde=0xc8;}else{_0xfccfde=0xce;}_0x140b4c[_0x1f09('0x1f')](_0xfccfde);return _0x140b4c['set'](_0x1f09('0x25'),_0x466726+'-'+_0x380c4a+'/'+_0xbc5d0a)['json'](_0x46c0ba);}return null;};}function patchUpdates(_0x10913d){return function(_0x50338b){try{jsonpatch[_0x1f09('0x26')](_0x50338b,_0x10913d,!![]);}catch(_0x2e1830){return BPromise['reject'](_0x2e1830);}return _0x50338b[_0x1f09('0x27')]();};}function saveUpdates(_0x49c947,_0x4c67c6){return function(_0xcbd10e){if(_0xcbd10e){return _0xcbd10e[_0x1f09('0x28')](_0x49c947)[_0x1f09('0x29')](function(_0x56b5c5){return _0x56b5c5;});}return null;};}function removeEntity(_0x1d96ce,_0x51839e){return function(_0x2b7341){if(_0x2b7341){return _0x2b7341[_0x1f09('0x2a')]()['then'](function(){_0x1d96ce[_0x1f09('0x1f')](0xcc)[_0x1f09('0x20')]();});}};}function handleEntityNotFound(_0x3ae910,_0x238097){return function(_0x75077c){if(!_0x75077c){_0x3ae910[_0x1f09('0x1e')](0x194);}return _0x75077c;};}function handleError(_0x33eec1,_0x1cbef0){_0x1cbef0=_0x1cbef0||0x1f4;return function(_0x41ce6d){logger[_0x1f09('0x2b')](_0x41ce6d[_0x1f09('0x2c')]);if(_0x41ce6d[_0x1f09('0x2d')]){delete _0x41ce6d[_0x1f09('0x2d')];}_0x33eec1[_0x1f09('0x1f')](_0x1cbef0)[_0x1f09('0x2e')](_0x41ce6d);};}exports[_0x1f09('0x2f')]=function(_0x196724,_0x4235d1){var _0x33026c={},_0x21984f={},_0x5e17a5={'count':0x0,'rows':[]};var _0x4942d1=_[_0x1f09('0x30')](db[_0x1f09('0x31')]['rawAttributes'],function(_0x25aec){return{'name':_0x25aec[_0x1f09('0x32')],'type':_0x25aec[_0x1f09('0x33')]['key']};});_0x21984f[_0x1f09('0x34')]=_['map'](_0x4942d1,_0x1f09('0x2d'));_0x21984f[_0x1f09('0x35')]=_['keys'](_0x196724[_0x1f09('0x35')]);_0x21984f[_0x1f09('0x36')]=_[_0x1f09('0x37')](_0x21984f['model'],_0x21984f[_0x1f09('0x35')]);_0x33026c[_0x1f09('0x38')]=_[_0x1f09('0x37')](_0x21984f[_0x1f09('0x34')],qs['fields'](_0x196724[_0x1f09('0x35')]['fields']));_0x33026c['attributes']=_0x33026c[_0x1f09('0x38')][_0x1f09('0x39')]?_0x33026c[_0x1f09('0x38')]:_0x21984f['model'];if(!_0x196724[_0x1f09('0x35')][_0x1f09('0x3a')]('nolimit')){_0x33026c[_0x1f09('0x24')]=qs[_0x1f09('0x24')](_0x196724[_0x1f09('0x35')][_0x1f09('0x24')]);_0x33026c[_0x1f09('0x23')]=qs[_0x1f09('0x23')](_0x196724[_0x1f09('0x35')][_0x1f09('0x23')]);}_0x33026c['order']=qs[_0x1f09('0x3b')](_0x196724['query'][_0x1f09('0x3b')]);_0x33026c[_0x1f09('0x3c')]=qs[_0x1f09('0x36')](_[_0x1f09('0x3d')](_0x196724[_0x1f09('0x35')],_0x21984f[_0x1f09('0x36')]),_0x4942d1);if(_0x196724[_0x1f09('0x35')][_0x1f09('0x3e')]){_0x33026c[_0x1f09('0x3c')]=_[_0x1f09('0x3f')](_0x33026c[_0x1f09('0x3c')],{'$or':_['map'](_0x4942d1,function(_0x339307){if(_0x339307[_0x1f09('0x33')]!==_0x1f09('0x40')){var _0x2d803d={};_0x2d803d[_0x339307['name']]={'$like':'%'+_0x196724[_0x1f09('0x35')][_0x1f09('0x3e')]+'%'};return _0x2d803d;}})});}_0x33026c=_[_0x1f09('0x3f')]({},_0x33026c,_0x196724['options']);var _0x520556={'where':_0x33026c[_0x1f09('0x3c')]};return db[_0x1f09('0x31')][_0x1f09('0x22')](_0x520556)[_0x1f09('0x29')](function(_0x5d402d){_0x5e17a5['count']=_0x5d402d;if(_0x196724[_0x1f09('0x35')][_0x1f09('0x41')]){_0x33026c[_0x1f09('0x42')]=[{'all':!![]}];}return db['ChatInternalMessage'][_0x1f09('0x43')](_0x33026c);})[_0x1f09('0x29')](function(_0x1701e4){_0x5e17a5['rows']=_0x1701e4;return _0x5e17a5;})[_0x1f09('0x29')](respondWithFilteredResult(_0x4235d1,_0x33026c))[_0x1f09('0x44')](handleError(_0x4235d1,null));};exports[_0x1f09('0x45')]=function(_0x4bceae,_0x199577){var _0x5cbe36={'raw':!![],'where':{'id':_0x4bceae[_0x1f09('0x46')]['id']}},_0x33653c={};_0x33653c[_0x1f09('0x34')]=_[_0x1f09('0x47')](db[_0x1f09('0x31')][_0x1f09('0x48')]);_0x33653c[_0x1f09('0x35')]=_['keys'](_0x4bceae[_0x1f09('0x35')]);_0x33653c[_0x1f09('0x36')]=_['intersection'](_0x33653c[_0x1f09('0x34')],_0x33653c[_0x1f09('0x35')]);_0x5cbe36[_0x1f09('0x38')]=_[_0x1f09('0x37')](_0x33653c[_0x1f09('0x34')],qs[_0x1f09('0x49')](_0x4bceae[_0x1f09('0x35')][_0x1f09('0x49')]));_0x5cbe36[_0x1f09('0x38')]=_0x5cbe36[_0x1f09('0x38')][_0x1f09('0x39')]?_0x5cbe36[_0x1f09('0x38')]:_0x33653c[_0x1f09('0x34')];if(_0x4bceae[_0x1f09('0x35')][_0x1f09('0x41')]){_0x5cbe36[_0x1f09('0x42')]=[{'all':!![]}];}_0x5cbe36=_[_0x1f09('0x3f')]({},_0x5cbe36,_0x4bceae[_0x1f09('0x4a')]);return db[_0x1f09('0x31')][_0x1f09('0x4b')](_0x5cbe36)['then'](handleEntityNotFound(_0x199577,null))[_0x1f09('0x29')](respondWithResult(_0x199577,null))['catch'](handleError(_0x199577,null));};exports[_0x1f09('0x4c')]=function(_0x386702,_0x3b68f7){return db[_0x1f09('0x31')][_0x1f09('0x4c')](_0x386702[_0x1f09('0x4d')],{})[_0x1f09('0x29')](respondWithResult(_0x3b68f7,0xc9))[_0x1f09('0x44')](handleError(_0x3b68f7,null));};exports[_0x1f09('0x28')]=function(_0x4b5514,_0x2b661b){if(_0x4b5514[_0x1f09('0x4d')]['id']){delete _0x4b5514[_0x1f09('0x4d')]['id'];}return db[_0x1f09('0x31')][_0x1f09('0x4b')]({'where':{'id':_0x4b5514['params']['id']}})[_0x1f09('0x29')](handleEntityNotFound(_0x2b661b,null))['then'](saveUpdates(_0x4b5514['body'],null))[_0x1f09('0x29')](respondWithResult(_0x2b661b,null))[_0x1f09('0x44')](handleError(_0x2b661b,null));};exports[_0x1f09('0x2a')]=function(_0x5e1497,_0x404116){return db[_0x1f09('0x31')][_0x1f09('0x4b')]({'where':{'id':_0x5e1497['params']['id']}})['then'](handleEntityNotFound(_0x404116,null))['then'](removeEntity(_0x404116,null))['catch'](handleError(_0x404116,null));};exports[_0x1f09('0x4e')]=function(_0x2efca1,_0x409cc6){return db[_0x1f09('0x31')][_0x1f09('0x4e')]()[_0x1f09('0x29')](respondWithResult(_0x409cc6,null))[_0x1f09('0x44')](handleError(_0x409cc6,null));};function wrapUser(_0x55718f){return function(_0x1a9db5){var _0x222898=_0x55718f[_0x1f09('0x4f')]({'plain':!![]});_0x222898[_0x1f09('0x50')]=[];if(_0x1a9db5){_0x222898[_0x1f09('0x51')]=_0x1a9db5[_0x1f09('0x52')];_0x222898['lastMessage']=_0x1a9db5;}else{_0x222898[_0x1f09('0x51')]=moment(0x0)[_0x1f09('0x53')](_0x1f09('0x54'));_0x222898[_0x1f09('0x55')]={};}return _0x222898;};}exports[_0x1f09('0x56')]=function(_0x371d54,_0x206ba8,_0x20be10){var _0x3823a9=[];return db['User'][_0x1f09('0x43')]({'where':{'role':['agent',_0x1f09('0x57'),_0x1f09('0x58')]},'attributes':['id',_0x1f09('0x59'),_0x1f09('0x2d'),_0x1f09('0x5a'),'userpic',_0x1f09('0x5b'),_0x1f09('0x5c'),'lastLoginAt','allowmessenger',_0x1f09('0x5d')],'order':qs[_0x1f09('0x3b')](_0x1f09('0x5e')),'include':[{'model':db['VoiceQueue'],'as':'VoiceQueues','attributes':['id',_0x1f09('0x2d'),_0x1f09('0x33')],'through':{'attributes':[]}}]})[_0x1f09('0x29')](function(_0x25aaf2){if(_0x25aaf2){var _0x4c5d95=_0x371d54['user'][_0x1f09('0x4f')]({'plain':!![]});if(!_0x4c5d95)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4c5d95[_0x1f09('0x5a')]===_0x1f09('0x58')){return db[_0x1f09('0x5f')][_0x1f09('0x4b')]({'where':{'name':_0x1f09('0x60'),'userProfileId':_0x4c5d95['userProfileId']},'raw':!![]})['then'](function(_0x36f1c3){if(_0x36f1c3){if(_0x36f1c3['autoAssociation']===0x0){return db[_0x1f09('0x61')]['findAll']({'where':{'sectionId':_0x36f1c3['id']},'raw':!![]})[_0x1f09('0x29')](function(_0x4436a2){var _0xb234e9=[];if(_['isEmpty'](_0x4436a2)){_0xb234e9=_[_0x1f09('0x3e')](_0x25aaf2,function(_0x3a3b6d){if(_0x3a3b6d[_0x1f09('0x5a')]!=='agent'){return _0x3a3b6d;}});return _0xb234e9;}else{for(var _0x3c7281=0x0;_0x3c7281<_0x25aaf2[_0x1f09('0x39')];_0x3c7281++){var _0x1022b1=_0x25aaf2[_0x3c7281];if(_0x1022b1[_0x1f09('0x5a')]===_0x1f09('0x62')){var _0x3275b1=_['find'](_0x4436a2,function(_0x5b2332){return _0x5b2332['resourceId']===_0x1022b1['id'];});if(_0x3275b1)_0xb234e9[_0x1f09('0x63')](_0x1022b1);}else{_0xb234e9[_0x1f09('0x63')](_0x1022b1);}}return _0xb234e9;}});}else{return _0x25aaf2;}}else{var _0x434b31=_[_0x1f09('0x3e')](_0x25aaf2,function(_0xcf0432){if(_0xcf0432[_0x1f09('0x5a')]!==_0x1f09('0x62')){return _0xcf0432;}});return _0x434b31;}});}else{return _0x25aaf2;}}})[_0x1f09('0x29')](function(_0x186420){var _0x4743ba=[];if(_0x186420){_0x3823a9=_0x186420;for(var _0x4890c7=0x0;_0x4890c7<_0x186420[_0x1f09('0x39')];_0x4890c7+=0x1){_0x3823a9[_0x4890c7][_0x1f09('0x50')]=[];_0x4743ba['push'](db[_0x1f09('0x31')][_0x1f09('0x4b')]({'where':{'FromId':[_0x371d54['user']['id'],_0x186420[_0x4890c7]['id']],'ToId':[_0x371d54['user']['id'],_0x186420[_0x4890c7]['id']],'ChatGroupId':null},'attributes':['id',_0x1f09('0x52'),_0x1f09('0x64'),_0x1f09('0x65'),'read',_0x1f09('0x4d')],'order':qs[_0x1f09('0x3b')](_0x1f09('0x66')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x1f09('0x29')](wrapUser(_0x186420[_0x4890c7])));}return BPromise['all'](_0x4743ba);}return[];})['then'](function(_0xb1128e){return{'rows':_0xb1128e,'count':_0xb1128e[_0x1f09('0x39')]};})[_0x1f09('0x29')](respondWithResult(_0x206ba8,null))[_0x1f09('0x44')](handleError(_0x206ba8,null));};