Built motion from commit (unavailable).|2.5.29
[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 _0x0f46=['../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','then','end','error','stack','name','index','map','ChatInternalMessage','fieldName','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filter','where','merge','VIRTUAL','includeAll','include','rows','catch','show','params','rawAttributes','find','update','body','destroy','describe','get','messages','lastMessageAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','findAll','agent','admin','user','fullname','role','userpic','internal','online','allowmessenger','showWebBar','-online','type','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','autoAssociation','UserProfileResource','resourceId','push','ToId','-createdAt','all','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x537f06,_0x389dc1){var _0x3862f9=function(_0x543d05){while(--_0x543d05){_0x537f06['push'](_0x537f06['shift']());}};_0x3862f9(++_0x389dc1);}(_0x0f46,0xc3));var _0x60f4=function(_0x332793,_0x452131){_0x332793=_0x332793-0x0;var _0x28204b=_0x0f46[_0x332793];return _0x28204b;};'use strict';var emlformat=require(_0x60f4('0x0'));var rimraf=require(_0x60f4('0x1'));var zipdir=require(_0x60f4('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x60f4('0x3'));var moment=require(_0x60f4('0x4'));var BPromise=require(_0x60f4('0x5'));var Mustache=require(_0x60f4('0x6'));var util=require('util');var path=require('path');var sox=require(_0x60f4('0x7'));var csv=require(_0x60f4('0x8'));var ejs=require(_0x60f4('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x60f4('0xa'));var squel=require('squel');var crypto=require(_0x60f4('0xb'));var jsforce=require(_0x60f4('0xc'));var deskjs=require(_0x60f4('0xd'));var toCsv=require(_0x60f4('0x8'));var querystring=require(_0x60f4('0xe'));var Papa=require(_0x60f4('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x60f4('0x10'));var as=require(_0x60f4('0x11'));var hardwareService=require(_0x60f4('0x12'));var logger=require(_0x60f4('0x13'))(_0x60f4('0x14'));var utils=require('../../config/utils');var config=require(_0x60f4('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x60f4('0x16'))['db'];config[_0x60f4('0x17')]=_[_0x60f4('0x18')](config['redis'],{'host':_0x60f4('0x19'),'port':0x18eb});var socket=require(_0x60f4('0x1a'))(new Redis(config[_0x60f4('0x17')]));require('./chatInternalMessage.socket')[_0x60f4('0x1b')](socket);function respondWithStatusCode(_0x4a84ae,_0x2eafbf){_0x2eafbf=_0x2eafbf||0xcc;return function(_0x4732da){if(_0x4732da){return _0x4a84ae[_0x60f4('0x1c')](_0x2eafbf);}return _0x4a84ae[_0x60f4('0x1d')](_0x2eafbf)['end']();};}function respondWithResult(_0x434516,_0x186313){_0x186313=_0x186313||0xc8;return function(_0x34da10){if(_0x34da10){return _0x434516['status'](_0x186313)[_0x60f4('0x1e')](_0x34da10);}};}function respondWithFilteredResult(_0x2dee53,_0x67ddef){return function(_0x471201){if(_0x471201){var _0x5a7e7e=typeof _0x67ddef['offset']===_0x60f4('0x1f')&&typeof _0x67ddef[_0x60f4('0x20')]===_0x60f4('0x1f');var _0x485b82=_0x471201[_0x60f4('0x21')];var _0x582f49=_0x5a7e7e?0x0:_0x67ddef[_0x60f4('0x22')];var _0x200b47=_0x5a7e7e?_0x471201[_0x60f4('0x21')]:_0x67ddef[_0x60f4('0x22')]+_0x67ddef[_0x60f4('0x20')];var _0x402a19;if(_0x200b47>=_0x485b82){_0x200b47=_0x485b82;_0x402a19=0xc8;}else{_0x402a19=0xce;}_0x2dee53[_0x60f4('0x1d')](_0x402a19);return _0x2dee53[_0x60f4('0x23')](_0x60f4('0x24'),_0x582f49+'-'+_0x200b47+'/'+_0x485b82)['json'](_0x471201);}return null;};}function patchUpdates(_0x3f7afb){return function(_0x4b6b46){try{jsonpatch[_0x60f4('0x25')](_0x4b6b46,_0x3f7afb,!![]);}catch(_0x284c7a){return BPromise['reject'](_0x284c7a);}return _0x4b6b46['save']();};}function saveUpdates(_0x2ca5ea,_0x2c6958){return function(_0x7a8ac2){if(_0x7a8ac2){return _0x7a8ac2['update'](_0x2ca5ea)[_0x60f4('0x26')](function(_0x514d48){return _0x514d48;});}return null;};}function removeEntity(_0x24c134,_0x2d5745){return function(_0x2cd963){if(_0x2cd963){return _0x2cd963['destroy']()[_0x60f4('0x26')](function(){_0x24c134[_0x60f4('0x1d')](0xcc)[_0x60f4('0x27')]();});}};}function handleEntityNotFound(_0x35821e,_0x1c2173){return function(_0x30f8b2){if(!_0x30f8b2){_0x35821e[_0x60f4('0x1c')](0x194);}return _0x30f8b2;};}function handleError(_0xc3f79c,_0x1eb3dc){_0x1eb3dc=_0x1eb3dc||0x1f4;return function(_0x1c7fcc){logger[_0x60f4('0x28')](_0x1c7fcc[_0x60f4('0x29')]);if(_0x1c7fcc[_0x60f4('0x2a')]){delete _0x1c7fcc['name'];}_0xc3f79c['status'](_0x1eb3dc)['send'](_0x1c7fcc);};}exports[_0x60f4('0x2b')]=function(_0x1799ed,_0x20a07a){var _0x2ce95d={},_0x1b03b7={},_0x284aa6={'count':0x0,'rows':[]};var _0x54d062=_[_0x60f4('0x2c')](db[_0x60f4('0x2d')]['rawAttributes'],function(_0x255931){return{'name':_0x255931[_0x60f4('0x2e')],'type':_0x255931['type'][_0x60f4('0x2f')]};});_0x1b03b7[_0x60f4('0x30')]=_[_0x60f4('0x2c')](_0x54d062,_0x60f4('0x2a'));_0x1b03b7['query']=_[_0x60f4('0x31')](_0x1799ed[_0x60f4('0x32')]);_0x1b03b7[_0x60f4('0x33')]=_[_0x60f4('0x34')](_0x1b03b7['model'],_0x1b03b7[_0x60f4('0x32')]);_0x2ce95d['attributes']=_[_0x60f4('0x34')](_0x1b03b7[_0x60f4('0x30')],qs[_0x60f4('0x35')](_0x1799ed['query'][_0x60f4('0x35')]));_0x2ce95d['attributes']=_0x2ce95d[_0x60f4('0x36')][_0x60f4('0x37')]?_0x2ce95d[_0x60f4('0x36')]:_0x1b03b7[_0x60f4('0x30')];if(!_0x1799ed[_0x60f4('0x32')][_0x60f4('0x38')](_0x60f4('0x39'))){_0x2ce95d[_0x60f4('0x20')]=qs[_0x60f4('0x20')](_0x1799ed['query'][_0x60f4('0x20')]);_0x2ce95d[_0x60f4('0x22')]=qs[_0x60f4('0x22')](_0x1799ed['query'][_0x60f4('0x22')]);}_0x2ce95d[_0x60f4('0x3a')]=qs[_0x60f4('0x3b')](_0x1799ed[_0x60f4('0x32')][_0x60f4('0x3b')]);_0x2ce95d['where']=qs[_0x60f4('0x33')](_['pick'](_0x1799ed[_0x60f4('0x32')],_0x1b03b7['filters']),_0x54d062);if(_0x1799ed[_0x60f4('0x32')][_0x60f4('0x3c')]){_0x2ce95d[_0x60f4('0x3d')]=_[_0x60f4('0x3e')](_0x2ce95d[_0x60f4('0x3d')],{'$or':_['map'](_0x54d062,function(_0x3a3026){if(_0x3a3026['type']!==_0x60f4('0x3f')){var _0x25de1b={};_0x25de1b[_0x3a3026[_0x60f4('0x2a')]]={'$like':'%'+_0x1799ed[_0x60f4('0x32')][_0x60f4('0x3c')]+'%'};return _0x25de1b;}})});}_0x2ce95d=_[_0x60f4('0x3e')]({},_0x2ce95d,_0x1799ed['options']);var _0xdc9632={'where':_0x2ce95d[_0x60f4('0x3d')]};return db[_0x60f4('0x2d')][_0x60f4('0x21')](_0xdc9632)[_0x60f4('0x26')](function(_0x24ff57){_0x284aa6[_0x60f4('0x21')]=_0x24ff57;if(_0x1799ed['query'][_0x60f4('0x40')]){_0x2ce95d[_0x60f4('0x41')]=[{'all':!![]}];}return db['ChatInternalMessage']['findAll'](_0x2ce95d);})[_0x60f4('0x26')](function(_0x2736c3){_0x284aa6[_0x60f4('0x42')]=_0x2736c3;return _0x284aa6;})[_0x60f4('0x26')](respondWithFilteredResult(_0x20a07a,_0x2ce95d))[_0x60f4('0x43')](handleError(_0x20a07a,null));};exports[_0x60f4('0x44')]=function(_0xd5b50b,_0x5211db){var _0x9de75f={'raw':!![],'where':{'id':_0xd5b50b[_0x60f4('0x45')]['id']}},_0x539c0c={};_0x539c0c[_0x60f4('0x30')]=_[_0x60f4('0x31')](db['ChatInternalMessage'][_0x60f4('0x46')]);_0x539c0c[_0x60f4('0x32')]=_[_0x60f4('0x31')](_0xd5b50b[_0x60f4('0x32')]);_0x539c0c[_0x60f4('0x33')]=_[_0x60f4('0x34')](_0x539c0c[_0x60f4('0x30')],_0x539c0c[_0x60f4('0x32')]);_0x9de75f[_0x60f4('0x36')]=_[_0x60f4('0x34')](_0x539c0c[_0x60f4('0x30')],qs[_0x60f4('0x35')](_0xd5b50b[_0x60f4('0x32')][_0x60f4('0x35')]));_0x9de75f[_0x60f4('0x36')]=_0x9de75f[_0x60f4('0x36')][_0x60f4('0x37')]?_0x9de75f[_0x60f4('0x36')]:_0x539c0c[_0x60f4('0x30')];if(_0xd5b50b[_0x60f4('0x32')][_0x60f4('0x40')]){_0x9de75f['include']=[{'all':!![]}];}_0x9de75f=_[_0x60f4('0x3e')]({},_0x9de75f,_0xd5b50b['options']);return db['ChatInternalMessage'][_0x60f4('0x47')](_0x9de75f)[_0x60f4('0x26')](handleEntityNotFound(_0x5211db,null))[_0x60f4('0x26')](respondWithResult(_0x5211db,null))[_0x60f4('0x43')](handleError(_0x5211db,null));};exports['create']=function(_0x5c3343,_0x113385){return db[_0x60f4('0x2d')]['create'](_0x5c3343['body'],{})[_0x60f4('0x26')](respondWithResult(_0x113385,0xc9))['catch'](handleError(_0x113385,null));};exports[_0x60f4('0x48')]=function(_0x2315ea,_0x2a886e){if(_0x2315ea['body']['id']){delete _0x2315ea[_0x60f4('0x49')]['id'];}return db['ChatInternalMessage']['find']({'where':{'id':_0x2315ea[_0x60f4('0x45')]['id']}})[_0x60f4('0x26')](handleEntityNotFound(_0x2a886e,null))[_0x60f4('0x26')](saveUpdates(_0x2315ea['body'],null))[_0x60f4('0x26')](respondWithResult(_0x2a886e,null))[_0x60f4('0x43')](handleError(_0x2a886e,null));};exports[_0x60f4('0x4a')]=function(_0x32543d,_0x37fc25){return db[_0x60f4('0x2d')]['find']({'where':{'id':_0x32543d[_0x60f4('0x45')]['id']}})['then'](handleEntityNotFound(_0x37fc25,null))[_0x60f4('0x26')](removeEntity(_0x37fc25,null))['catch'](handleError(_0x37fc25,null));};exports[_0x60f4('0x4b')]=function(_0xa13c28,_0x4d0069){return db[_0x60f4('0x2d')][_0x60f4('0x4b')]()['then'](respondWithResult(_0x4d0069,null))['catch'](handleError(_0x4d0069,null));};function wrapUser(_0x32bdd0){return function(_0x128c28){var _0x3c65ea=_0x32bdd0[_0x60f4('0x4c')]({'plain':!![]});_0x3c65ea[_0x60f4('0x4d')]=[];if(_0x128c28){_0x3c65ea[_0x60f4('0x4e')]=_0x128c28['createdAt'];_0x3c65ea[_0x60f4('0x4f')]=_0x128c28;}else{_0x3c65ea[_0x60f4('0x4e')]=moment(0x0)[_0x60f4('0x50')](_0x60f4('0x51'));_0x3c65ea[_0x60f4('0x4f')]={};}return _0x3c65ea;};}exports[_0x60f4('0x52')]=function(_0x317a3f,_0x4dc463,_0x4ed817){var _0x32cfbd=[];return db[_0x60f4('0x53')][_0x60f4('0x54')]({'where':{'role':[_0x60f4('0x55'),_0x60f4('0x56'),_0x60f4('0x57')]},'attributes':['id',_0x60f4('0x58'),_0x60f4('0x2a'),_0x60f4('0x59'),_0x60f4('0x5a'),_0x60f4('0x5b'),_0x60f4('0x5c'),'lastLoginAt',_0x60f4('0x5d'),_0x60f4('0x5e')],'order':qs[_0x60f4('0x3b')](_0x60f4('0x5f')),'include':[{'model':db['VoiceQueue'],'as':'VoiceQueues','attributes':['id',_0x60f4('0x2a'),_0x60f4('0x60')],'through':{'attributes':[]}}]})['then'](function(_0x31e753){if(_0x31e753){var _0x21d42c=_0x317a3f[_0x60f4('0x57')][_0x60f4('0x4c')]({'plain':!![]});if(!_0x21d42c)throw new Error(_0x60f4('0x61'));if(_0x21d42c['role']===_0x60f4('0x57')){return db[_0x60f4('0x62')]['find']({'where':{'name':_0x60f4('0x63'),'userProfileId':_0x21d42c['userProfileId']},'raw':!![]})[_0x60f4('0x26')](function(_0x6cda34){if(_0x6cda34){if(_0x6cda34[_0x60f4('0x64')]===0x0){return db[_0x60f4('0x65')][_0x60f4('0x54')]({'where':{'sectionId':_0x6cda34['id']},'raw':!![]})['then'](function(_0x5c22af){var _0x551aa6=[];if(_['isEmpty'](_0x5c22af)){_0x551aa6=_[_0x60f4('0x3c')](_0x31e753,function(_0x1c8530){if(_0x1c8530[_0x60f4('0x59')]!==_0x60f4('0x55')){return _0x1c8530;}});return _0x551aa6;}else{for(var _0x2aa14c=0x0;_0x2aa14c<_0x31e753[_0x60f4('0x37')];_0x2aa14c++){var _0x1f80f8=_0x31e753[_0x2aa14c];if(_0x1f80f8[_0x60f4('0x59')]===_0x60f4('0x55')){var _0x23c9e8=_[_0x60f4('0x47')](_0x5c22af,function(_0x535d01){return _0x535d01[_0x60f4('0x66')]===_0x1f80f8['id'];});if(_0x23c9e8)_0x551aa6[_0x60f4('0x67')](_0x1f80f8);}else{_0x551aa6[_0x60f4('0x67')](_0x1f80f8);}}return _0x551aa6;}});}else{return _0x31e753;}}else{var _0x2f5028=_[_0x60f4('0x3c')](_0x31e753,function(_0x250ea7){if(_0x250ea7[_0x60f4('0x59')]!=='agent'){return _0x250ea7;}});return _0x2f5028;}});}else{return _0x31e753;}}})[_0x60f4('0x26')](function(_0x475e22){var _0x252145=[];if(_0x475e22){_0x32cfbd=_0x475e22;for(var _0x330b05=0x0;_0x330b05<_0x475e22['length'];_0x330b05+=0x1){_0x32cfbd[_0x330b05]['messages']=[];_0x252145[_0x60f4('0x67')](db[_0x60f4('0x2d')][_0x60f4('0x47')]({'where':{'FromId':[_0x317a3f['user']['id'],_0x475e22[_0x330b05]['id']],'ToId':[_0x317a3f[_0x60f4('0x57')]['id'],_0x475e22[_0x330b05]['id']],'ChatGroupId':null},'attributes':['id','createdAt','FromId',_0x60f4('0x68'),'read',_0x60f4('0x49')],'order':qs[_0x60f4('0x3b')](_0x60f4('0x69')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x60f4('0x26')](wrapUser(_0x475e22[_0x330b05])));}return BPromise[_0x60f4('0x6a')](_0x252145);}return[];})[_0x60f4('0x26')](function(_0x2ed82b){return{'rows':_0x2ed82b,'count':_0x2ed82b[_0x60f4('0x37')]};})[_0x60f4('0x26')](respondWithResult(_0x4dc463,null))[_0x60f4('0x43')](handleError(_0x4dc463,null));};