Built motion from commit 0555bc41.|2.5.41
[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 _0x8b69=['hasOwnProperty','nolimit','order','sort','where','filters','pick','VIRTUAL','filter','merge','options','includeAll','include','then','catch','show','params','keys','rawAttributes','find','create','body','describe','get','messages','lastMessageAt','createdAt','lastMessage','User','findAll','agent','admin','user','role','userpic','internal','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','isEmpty','length','resourceId','push','FromId','ToId','all','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','defaults','redis','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','save','update','destroy','stack','name','index','ChatInternalMessage','fieldName','type','key','model','map','query','intersection','fields','attributes'];(function(_0x2525c1,_0x1321d9){var _0x1494bf=function(_0x59f169){while(--_0x59f169){_0x2525c1['push'](_0x2525c1['shift']());}};_0x1494bf(++_0x1321d9);}(_0x8b69,0x17b));var _0x98b6=function(_0x49f866,_0x34d69a){_0x49f866=_0x49f866-0x0;var _0x1b311a=_0x8b69[_0x49f866];return _0x1b311a;};'use strict';var emlformat=require(_0x98b6('0x0'));var rimraf=require(_0x98b6('0x1'));var zipdir=require(_0x98b6('0x2'));var jsonpatch=require(_0x98b6('0x3'));var rp=require(_0x98b6('0x4'));var moment=require(_0x98b6('0x5'));var BPromise=require(_0x98b6('0x6'));var Mustache=require(_0x98b6('0x7'));var util=require('util');var path=require(_0x98b6('0x8'));var sox=require(_0x98b6('0x9'));var csv=require(_0x98b6('0xa'));var ejs=require(_0x98b6('0xb'));var fs=require('fs');var fs_extra=require(_0x98b6('0xc'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x98b6('0xd'));var jsforce=require(_0x98b6('0xe'));var deskjs=require(_0x98b6('0xf'));var toCsv=require('to-csv');var querystring=require(_0x98b6('0x10'));var Papa=require(_0x98b6('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x98b6('0x12'));var as=require(_0x98b6('0x13'));var hardwareService=require(_0x98b6('0x14'));var logger=require(_0x98b6('0x15'))(_0x98b6('0x16'));var utils=require('../../config/utils');var config=require(_0x98b6('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x98b6('0x18'))['db'];config['redis']=_[_0x98b6('0x19')](config[_0x98b6('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x98b6('0x1b'))(new Redis(config[_0x98b6('0x1a')]));require(_0x98b6('0x1c'))[_0x98b6('0x1d')](socket);function respondWithStatusCode(_0x305f2c,_0x10e080){_0x10e080=_0x10e080||0xcc;return function(_0x43b6dd){if(_0x43b6dd){return _0x305f2c[_0x98b6('0x1e')](_0x10e080);}return _0x305f2c[_0x98b6('0x1f')](_0x10e080)[_0x98b6('0x20')]();};}function respondWithResult(_0x1de1cb,_0x167213){_0x167213=_0x167213||0xc8;return function(_0x5e766e){if(_0x5e766e){return _0x1de1cb[_0x98b6('0x1f')](_0x167213)['json'](_0x5e766e);}};}function respondWithFilteredResult(_0x4064b8,_0x178e0d){return function(_0x47abad){if(_0x47abad){var _0x5735db=typeof _0x178e0d[_0x98b6('0x21')]===_0x98b6('0x22')&&typeof _0x178e0d[_0x98b6('0x23')]==='undefined';var _0x2c1686=_0x47abad[_0x98b6('0x24')];var _0x66cfcf=_0x5735db?0x0:_0x178e0d[_0x98b6('0x21')];var _0x114d3d=_0x5735db?_0x47abad[_0x98b6('0x24')]:_0x178e0d['offset']+_0x178e0d[_0x98b6('0x23')];var _0x482e74;if(_0x114d3d>=_0x2c1686){_0x114d3d=_0x2c1686;_0x482e74=0xc8;}else{_0x482e74=0xce;}_0x4064b8['status'](_0x482e74);return _0x4064b8[_0x98b6('0x25')](_0x98b6('0x26'),_0x66cfcf+'-'+_0x114d3d+'/'+_0x2c1686)[_0x98b6('0x27')](_0x47abad);}return null;};}function patchUpdates(_0x3ae3fd){return function(_0x10181c){try{jsonpatch['apply'](_0x10181c,_0x3ae3fd,!![]);}catch(_0x390269){return BPromise[_0x98b6('0x28')](_0x390269);}return _0x10181c[_0x98b6('0x29')]();};}function saveUpdates(_0x4e7af9,_0x17d8b8){return function(_0x112602){if(_0x112602){return _0x112602[_0x98b6('0x2a')](_0x4e7af9)['then'](function(_0x297a42){return _0x297a42;});}return null;};}function removeEntity(_0x10243c,_0x1a6f8b){return function(_0x1398d5){if(_0x1398d5){return _0x1398d5[_0x98b6('0x2b')]()['then'](function(){_0x10243c[_0x98b6('0x1f')](0xcc)[_0x98b6('0x20')]();});}};}function handleEntityNotFound(_0x20a858,_0x388992){return function(_0x1467e3){if(!_0x1467e3){_0x20a858[_0x98b6('0x1e')](0x194);}return _0x1467e3;};}function handleError(_0x3d541b,_0xc7ed6d){_0xc7ed6d=_0xc7ed6d||0x1f4;return function(_0x3ba80c){logger['error'](_0x3ba80c[_0x98b6('0x2c')]);if(_0x3ba80c[_0x98b6('0x2d')]){delete _0x3ba80c['name'];}_0x3d541b[_0x98b6('0x1f')](_0xc7ed6d)['send'](_0x3ba80c);};}exports[_0x98b6('0x2e')]=function(_0x2ac986,_0x401253){var _0x3f605b={},_0x384ab0={},_0x37a272={'count':0x0,'rows':[]};var _0x4d940c=_['map'](db[_0x98b6('0x2f')]['rawAttributes'],function(_0x220022){return{'name':_0x220022[_0x98b6('0x30')],'type':_0x220022[_0x98b6('0x31')][_0x98b6('0x32')]};});_0x384ab0[_0x98b6('0x33')]=_[_0x98b6('0x34')](_0x4d940c,_0x98b6('0x2d'));_0x384ab0[_0x98b6('0x35')]=_['keys'](_0x2ac986[_0x98b6('0x35')]);_0x384ab0['filters']=_[_0x98b6('0x36')](_0x384ab0[_0x98b6('0x33')],_0x384ab0[_0x98b6('0x35')]);_0x3f605b['attributes']=_[_0x98b6('0x36')](_0x384ab0[_0x98b6('0x33')],qs[_0x98b6('0x37')](_0x2ac986[_0x98b6('0x35')][_0x98b6('0x37')]));_0x3f605b[_0x98b6('0x38')]=_0x3f605b[_0x98b6('0x38')]['length']?_0x3f605b['attributes']:_0x384ab0['model'];if(!_0x2ac986['query'][_0x98b6('0x39')](_0x98b6('0x3a'))){_0x3f605b[_0x98b6('0x23')]=qs[_0x98b6('0x23')](_0x2ac986[_0x98b6('0x35')]['limit']);_0x3f605b[_0x98b6('0x21')]=qs[_0x98b6('0x21')](_0x2ac986[_0x98b6('0x35')]['offset']);}_0x3f605b[_0x98b6('0x3b')]=qs['sort'](_0x2ac986[_0x98b6('0x35')][_0x98b6('0x3c')]);_0x3f605b[_0x98b6('0x3d')]=qs[_0x98b6('0x3e')](_[_0x98b6('0x3f')](_0x2ac986[_0x98b6('0x35')],_0x384ab0[_0x98b6('0x3e')]),_0x4d940c);if(_0x2ac986[_0x98b6('0x35')]['filter']){_0x3f605b['where']=_['merge'](_0x3f605b[_0x98b6('0x3d')],{'$or':_[_0x98b6('0x34')](_0x4d940c,function(_0x1e3ae6){if(_0x1e3ae6[_0x98b6('0x31')]!==_0x98b6('0x40')){var _0x4b6003={};_0x4b6003[_0x1e3ae6['name']]={'$like':'%'+_0x2ac986[_0x98b6('0x35')][_0x98b6('0x41')]+'%'};return _0x4b6003;}})});}_0x3f605b=_[_0x98b6('0x42')]({},_0x3f605b,_0x2ac986[_0x98b6('0x43')]);var _0x172351={'where':_0x3f605b[_0x98b6('0x3d')]};return db[_0x98b6('0x2f')]['count'](_0x172351)['then'](function(_0x15f08b){_0x37a272[_0x98b6('0x24')]=_0x15f08b;if(_0x2ac986[_0x98b6('0x35')][_0x98b6('0x44')]){_0x3f605b[_0x98b6('0x45')]=[{'all':!![]}];}return db[_0x98b6('0x2f')]['findAll'](_0x3f605b);})[_0x98b6('0x46')](function(_0x4782b0){_0x37a272['rows']=_0x4782b0;return _0x37a272;})['then'](respondWithFilteredResult(_0x401253,_0x3f605b))[_0x98b6('0x47')](handleError(_0x401253,null));};exports[_0x98b6('0x48')]=function(_0x11f5ec,_0x3dd6de){var _0x2ae5a6={'raw':!![],'where':{'id':_0x11f5ec[_0x98b6('0x49')]['id']}},_0x55a115={};_0x55a115['model']=_[_0x98b6('0x4a')](db[_0x98b6('0x2f')][_0x98b6('0x4b')]);_0x55a115[_0x98b6('0x35')]=_[_0x98b6('0x4a')](_0x11f5ec[_0x98b6('0x35')]);_0x55a115[_0x98b6('0x3e')]=_[_0x98b6('0x36')](_0x55a115[_0x98b6('0x33')],_0x55a115[_0x98b6('0x35')]);_0x2ae5a6[_0x98b6('0x38')]=_[_0x98b6('0x36')](_0x55a115[_0x98b6('0x33')],qs[_0x98b6('0x37')](_0x11f5ec[_0x98b6('0x35')]['fields']));_0x2ae5a6[_0x98b6('0x38')]=_0x2ae5a6[_0x98b6('0x38')]['length']?_0x2ae5a6[_0x98b6('0x38')]:_0x55a115['model'];if(_0x11f5ec['query'][_0x98b6('0x44')]){_0x2ae5a6[_0x98b6('0x45')]=[{'all':!![]}];}_0x2ae5a6=_['merge']({},_0x2ae5a6,_0x11f5ec[_0x98b6('0x43')]);return db['ChatInternalMessage'][_0x98b6('0x4c')](_0x2ae5a6)[_0x98b6('0x46')](handleEntityNotFound(_0x3dd6de,null))[_0x98b6('0x46')](respondWithResult(_0x3dd6de,null))[_0x98b6('0x47')](handleError(_0x3dd6de,null));};exports[_0x98b6('0x4d')]=function(_0x34a227,_0x5ed1d3){return db['ChatInternalMessage'][_0x98b6('0x4d')](_0x34a227['body'],{})[_0x98b6('0x46')](respondWithResult(_0x5ed1d3,0xc9))[_0x98b6('0x47')](handleError(_0x5ed1d3,null));};exports['update']=function(_0x2d44fa,_0x535042){if(_0x2d44fa['body']['id']){delete _0x2d44fa[_0x98b6('0x4e')]['id'];}return db[_0x98b6('0x2f')][_0x98b6('0x4c')]({'where':{'id':_0x2d44fa[_0x98b6('0x49')]['id']}})[_0x98b6('0x46')](handleEntityNotFound(_0x535042,null))[_0x98b6('0x46')](saveUpdates(_0x2d44fa[_0x98b6('0x4e')],null))[_0x98b6('0x46')](respondWithResult(_0x535042,null))['catch'](handleError(_0x535042,null));};exports[_0x98b6('0x2b')]=function(_0x12335c,_0x5828ea){return db[_0x98b6('0x2f')][_0x98b6('0x4c')]({'where':{'id':_0x12335c['params']['id']}})['then'](handleEntityNotFound(_0x5828ea,null))[_0x98b6('0x46')](removeEntity(_0x5828ea,null))[_0x98b6('0x47')](handleError(_0x5828ea,null));};exports[_0x98b6('0x4f')]=function(_0x39ff6b,_0x25a5e4){return db[_0x98b6('0x2f')][_0x98b6('0x4f')]()[_0x98b6('0x46')](respondWithResult(_0x25a5e4,null))[_0x98b6('0x47')](handleError(_0x25a5e4,null));};function wrapUser(_0x1bf7de){return function(_0x2c302f){var _0x1635ef=_0x1bf7de[_0x98b6('0x50')]({'plain':!![]});_0x1635ef[_0x98b6('0x51')]=[];if(_0x2c302f){_0x1635ef[_0x98b6('0x52')]=_0x2c302f[_0x98b6('0x53')];_0x1635ef[_0x98b6('0x54')]=_0x2c302f;}else{_0x1635ef[_0x98b6('0x52')]=moment(0x0)['format']('YYYY-MM-DD\x20HH:mm:ss');_0x1635ef[_0x98b6('0x54')]={};}return _0x1635ef;};}exports['getUsers']=function(_0x5adba2,_0x2e30c3,_0x22ba3f){var _0x6a82d4=[];return db[_0x98b6('0x55')][_0x98b6('0x56')]({'where':{'role':[_0x98b6('0x57'),_0x98b6('0x58'),_0x98b6('0x59')]},'attributes':['id','fullname','name',_0x98b6('0x5a'),_0x98b6('0x5b'),_0x98b6('0x5c'),'online',_0x98b6('0x5d'),_0x98b6('0x5e'),_0x98b6('0x5f')],'order':qs[_0x98b6('0x3c')](_0x98b6('0x60')),'include':[{'model':db[_0x98b6('0x61')],'as':_0x98b6('0x62'),'attributes':['id',_0x98b6('0x2d'),'type'],'through':{'attributes':[]}}]})[_0x98b6('0x46')](function(_0xf596c1){if(_0xf596c1){var _0x11a9bf=_0x5adba2[_0x98b6('0x59')][_0x98b6('0x50')]({'plain':!![]});if(!_0x11a9bf)throw new Error(_0x98b6('0x63'));if(_0x11a9bf['role']===_0x98b6('0x59')){return db['UserProfileSection'][_0x98b6('0x4c')]({'where':{'name':'Agents','userProfileId':_0x11a9bf[_0x98b6('0x64')]},'raw':!![]})[_0x98b6('0x46')](function(_0xca60b6){if(_0xca60b6){if(_0xca60b6[_0x98b6('0x65')]===0x0){return db['UserProfileResource']['findAll']({'where':{'sectionId':_0xca60b6['id']},'raw':!![]})['then'](function(_0x4c2844){var _0x32cddb=[];if(_[_0x98b6('0x66')](_0x4c2844)){_0x32cddb=_[_0x98b6('0x41')](_0xf596c1,function(_0x172924){if(_0x172924[_0x98b6('0x5a')]!=='agent'){return _0x172924;}});return _0x32cddb;}else{for(var _0x1cb1c5=0x0;_0x1cb1c5<_0xf596c1[_0x98b6('0x67')];_0x1cb1c5++){var _0xc3795=_0xf596c1[_0x1cb1c5];if(_0xc3795[_0x98b6('0x5a')]===_0x98b6('0x57')){var _0x2c3df2=_[_0x98b6('0x4c')](_0x4c2844,function(_0x55f578){return _0x55f578[_0x98b6('0x68')]===_0xc3795['id'];});if(_0x2c3df2)_0x32cddb[_0x98b6('0x69')](_0xc3795);}else{_0x32cddb['push'](_0xc3795);}}return _0x32cddb;}});}else{return _0xf596c1;}}else{var _0x473a43=_[_0x98b6('0x41')](_0xf596c1,function(_0x274df8){if(_0x274df8[_0x98b6('0x5a')]!==_0x98b6('0x57')){return _0x274df8;}});return _0x473a43;}});}else{return _0xf596c1;}}})[_0x98b6('0x46')](function(_0xec7a9b){var _0x19f6da=[];if(_0xec7a9b){_0x6a82d4=_0xec7a9b;for(var _0x282189=0x0;_0x282189<_0xec7a9b['length'];_0x282189+=0x1){_0x6a82d4[_0x282189]['messages']=[];_0x19f6da[_0x98b6('0x69')](db[_0x98b6('0x2f')]['find']({'where':{'FromId':[_0x5adba2[_0x98b6('0x59')]['id'],_0xec7a9b[_0x282189]['id']],'ToId':[_0x5adba2[_0x98b6('0x59')]['id'],_0xec7a9b[_0x282189]['id']],'ChatGroupId':null},'attributes':['id',_0x98b6('0x53'),_0x98b6('0x6a'),_0x98b6('0x6b'),'read','body'],'order':qs['sort']('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0x98b6('0x46')](wrapUser(_0xec7a9b[_0x282189])));}return BPromise[_0x98b6('0x6c')](_0x19f6da);}return[];})['then'](function(_0x318cce){return{'rows':_0x318cce,'count':_0x318cce[_0x98b6('0x67')]};})['then'](respondWithResult(_0x2e30c3,null))[_0x98b6('0x47')](handleError(_0x2e30c3,null));};