Built motion from commit 994c64e1.|2.6.1
[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 _0xb9d7=['include','ChatInternalMessage','findAll','rows','catch','show','params','find','create','body','describe','messages','lastMessageAt','lastMessage','YYYY-MM-DD\x20HH:mm:ss','User','agent','fullname','userpic','internal','online','allowmessenger','showWebBar','sort','-online','VoiceQueue','VoiceQueues','user','role','UserProfileSection','userProfileId','autoAssociation','isEmpty','resourceId','push','createdAt','ToId','-createdAt','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./chatInternalMessage.socket','register','status','end','json','offset','undefined','limit','count','set','reject','save','update','then','destroy','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','where','filter','merge','VIRTUAL','options','includeAll'];(function(_0x496cba,_0x92dd1f){var _0x248927=function(_0x364ffd){while(--_0x364ffd){_0x496cba['push'](_0x496cba['shift']());}};_0x248927(++_0x92dd1f);}(_0xb9d7,0x1b6));var _0x7b9d=function(_0x3740fe,_0x6c543c){_0x3740fe=_0x3740fe-0x0;var _0x55492b=_0xb9d7[_0x3740fe];return _0x55492b;};'use strict';var emlformat=require(_0x7b9d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7b9d('0x1'));var jsonpatch=require(_0x7b9d('0x2'));var rp=require(_0x7b9d('0x3'));var moment=require(_0x7b9d('0x4'));var BPromise=require(_0x7b9d('0x5'));var Mustache=require(_0x7b9d('0x6'));var util=require('util');var path=require('path');var sox=require(_0x7b9d('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x7b9d('0x8'));var crypto=require(_0x7b9d('0x9'));var jsforce=require(_0x7b9d('0xa'));var deskjs=require(_0x7b9d('0xb'));var toCsv=require(_0x7b9d('0xc'));var querystring=require(_0x7b9d('0xd'));var Papa=require(_0x7b9d('0xe'));var Redis=require(_0x7b9d('0xf'));var authService=require(_0x7b9d('0x10'));var qs=require(_0x7b9d('0x11'));var as=require(_0x7b9d('0x12'));var hardwareService=require(_0x7b9d('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0x7b9d('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x7b9d('0x15'));var db=require(_0x7b9d('0x16'))['db'];config[_0x7b9d('0x17')]=_['defaults'](config[_0x7b9d('0x17')],{'host':_0x7b9d('0x18'),'port':0x18eb});var socket=require(_0x7b9d('0x19'))(new Redis(config[_0x7b9d('0x17')]));require(_0x7b9d('0x1a'))[_0x7b9d('0x1b')](socket);function respondWithStatusCode(_0x2d215d,_0x5cf714){_0x5cf714=_0x5cf714||0xcc;return function(_0x2815fa){if(_0x2815fa){return _0x2d215d['sendStatus'](_0x5cf714);}return _0x2d215d[_0x7b9d('0x1c')](_0x5cf714)[_0x7b9d('0x1d')]();};}function respondWithResult(_0x4cd4f5,_0x22916e){_0x22916e=_0x22916e||0xc8;return function(_0x5b5592){if(_0x5b5592){return _0x4cd4f5['status'](_0x22916e)[_0x7b9d('0x1e')](_0x5b5592);}};}function respondWithFilteredResult(_0x3f31b7,_0x5c3674){return function(_0x4a28b8){if(_0x4a28b8){var _0x2a7c82=typeof _0x5c3674[_0x7b9d('0x1f')]===_0x7b9d('0x20')&&typeof _0x5c3674[_0x7b9d('0x21')]===_0x7b9d('0x20');var _0x20bf11=_0x4a28b8[_0x7b9d('0x22')];var _0x530254=_0x2a7c82?0x0:_0x5c3674[_0x7b9d('0x1f')];var _0x111948=_0x2a7c82?_0x4a28b8['count']:_0x5c3674[_0x7b9d('0x1f')]+_0x5c3674[_0x7b9d('0x21')];var _0x418c15;if(_0x111948>=_0x20bf11){_0x111948=_0x20bf11;_0x418c15=0xc8;}else{_0x418c15=0xce;}_0x3f31b7[_0x7b9d('0x1c')](_0x418c15);return _0x3f31b7[_0x7b9d('0x23')]('Content-Range',_0x530254+'-'+_0x111948+'/'+_0x20bf11)[_0x7b9d('0x1e')](_0x4a28b8);}return null;};}function patchUpdates(_0x3ad83f){return function(_0x16dbfe){try{jsonpatch['apply'](_0x16dbfe,_0x3ad83f,!![]);}catch(_0x38e2cf){return BPromise[_0x7b9d('0x24')](_0x38e2cf);}return _0x16dbfe[_0x7b9d('0x25')]();};}function saveUpdates(_0x27ccb6,_0x1d2e0b){return function(_0x4b9cf1){if(_0x4b9cf1){return _0x4b9cf1[_0x7b9d('0x26')](_0x27ccb6)[_0x7b9d('0x27')](function(_0x1b1a84){return _0x1b1a84;});}return null;};}function removeEntity(_0x2653de,_0x55e4b7){return function(_0x29e85b){if(_0x29e85b){return _0x29e85b[_0x7b9d('0x28')]()[_0x7b9d('0x27')](function(){_0x2653de['status'](0xcc)[_0x7b9d('0x1d')]();});}};}function handleEntityNotFound(_0x5cf5f2,_0x18bf83){return function(_0x5687a2){if(!_0x5687a2){_0x5cf5f2['sendStatus'](0x194);}return _0x5687a2;};}function handleError(_0x171d58,_0x141bca){_0x141bca=_0x141bca||0x1f4;return function(_0x408998){logger['error'](_0x408998['stack']);if(_0x408998['name']){delete _0x408998[_0x7b9d('0x29')];}_0x171d58['status'](_0x141bca)['send'](_0x408998);};}exports[_0x7b9d('0x2a')]=function(_0x1be79f,_0x549697){var _0x39ee49={},_0x2559c7={},_0x4166b5={'count':0x0,'rows':[]};var _0xb13f76=_[_0x7b9d('0x2b')](db['ChatInternalMessage'][_0x7b9d('0x2c')],function(_0x3d6be9){return{'name':_0x3d6be9[_0x7b9d('0x2d')],'type':_0x3d6be9[_0x7b9d('0x2e')][_0x7b9d('0x2f')]};});_0x2559c7[_0x7b9d('0x30')]=_['map'](_0xb13f76,'name');_0x2559c7[_0x7b9d('0x31')]=_[_0x7b9d('0x32')](_0x1be79f[_0x7b9d('0x31')]);_0x2559c7[_0x7b9d('0x33')]=_[_0x7b9d('0x34')](_0x2559c7[_0x7b9d('0x30')],_0x2559c7[_0x7b9d('0x31')]);_0x39ee49[_0x7b9d('0x35')]=_['intersection'](_0x2559c7[_0x7b9d('0x30')],qs[_0x7b9d('0x36')](_0x1be79f[_0x7b9d('0x31')]['fields']));_0x39ee49[_0x7b9d('0x35')]=_0x39ee49[_0x7b9d('0x35')][_0x7b9d('0x37')]?_0x39ee49['attributes']:_0x2559c7[_0x7b9d('0x30')];if(!_0x1be79f['query']['hasOwnProperty']('nolimit')){_0x39ee49[_0x7b9d('0x21')]=qs[_0x7b9d('0x21')](_0x1be79f[_0x7b9d('0x31')][_0x7b9d('0x21')]);_0x39ee49[_0x7b9d('0x1f')]=qs['offset'](_0x1be79f[_0x7b9d('0x31')][_0x7b9d('0x1f')]);}_0x39ee49['order']=qs['sort'](_0x1be79f[_0x7b9d('0x31')]['sort']);_0x39ee49[_0x7b9d('0x38')]=qs[_0x7b9d('0x33')](_['pick'](_0x1be79f['query'],_0x2559c7['filters']),_0xb13f76);if(_0x1be79f[_0x7b9d('0x31')][_0x7b9d('0x39')]){_0x39ee49[_0x7b9d('0x38')]=_[_0x7b9d('0x3a')](_0x39ee49[_0x7b9d('0x38')],{'$or':_['map'](_0xb13f76,function(_0x22a713){if(_0x22a713[_0x7b9d('0x2e')]!==_0x7b9d('0x3b')){var _0xc7b6b2={};_0xc7b6b2[_0x22a713[_0x7b9d('0x29')]]={'$like':'%'+_0x1be79f[_0x7b9d('0x31')][_0x7b9d('0x39')]+'%'};return _0xc7b6b2;}})});}_0x39ee49=_['merge']({},_0x39ee49,_0x1be79f[_0x7b9d('0x3c')]);var _0x378cc7={'where':_0x39ee49[_0x7b9d('0x38')]};return db['ChatInternalMessage']['count'](_0x378cc7)[_0x7b9d('0x27')](function(_0x4c79ac){_0x4166b5[_0x7b9d('0x22')]=_0x4c79ac;if(_0x1be79f[_0x7b9d('0x31')][_0x7b9d('0x3d')]){_0x39ee49[_0x7b9d('0x3e')]=[{'all':!![]}];}return db[_0x7b9d('0x3f')][_0x7b9d('0x40')](_0x39ee49);})[_0x7b9d('0x27')](function(_0x15004d){_0x4166b5[_0x7b9d('0x41')]=_0x15004d;return _0x4166b5;})['then'](respondWithFilteredResult(_0x549697,_0x39ee49))[_0x7b9d('0x42')](handleError(_0x549697,null));};exports[_0x7b9d('0x43')]=function(_0x822f1d,_0x5330e5){var _0x7625cf={'raw':!![],'where':{'id':_0x822f1d[_0x7b9d('0x44')]['id']}},_0x24c4d4={};_0x24c4d4[_0x7b9d('0x30')]=_['keys'](db[_0x7b9d('0x3f')][_0x7b9d('0x2c')]);_0x24c4d4[_0x7b9d('0x31')]=_[_0x7b9d('0x32')](_0x822f1d[_0x7b9d('0x31')]);_0x24c4d4[_0x7b9d('0x33')]=_[_0x7b9d('0x34')](_0x24c4d4['model'],_0x24c4d4[_0x7b9d('0x31')]);_0x7625cf['attributes']=_[_0x7b9d('0x34')](_0x24c4d4[_0x7b9d('0x30')],qs[_0x7b9d('0x36')](_0x822f1d[_0x7b9d('0x31')][_0x7b9d('0x36')]));_0x7625cf['attributes']=_0x7625cf[_0x7b9d('0x35')][_0x7b9d('0x37')]?_0x7625cf[_0x7b9d('0x35')]:_0x24c4d4[_0x7b9d('0x30')];if(_0x822f1d[_0x7b9d('0x31')][_0x7b9d('0x3d')]){_0x7625cf['include']=[{'all':!![]}];}_0x7625cf=_[_0x7b9d('0x3a')]({},_0x7625cf,_0x822f1d[_0x7b9d('0x3c')]);return db[_0x7b9d('0x3f')][_0x7b9d('0x45')](_0x7625cf)[_0x7b9d('0x27')](handleEntityNotFound(_0x5330e5,null))[_0x7b9d('0x27')](respondWithResult(_0x5330e5,null))['catch'](handleError(_0x5330e5,null));};exports[_0x7b9d('0x46')]=function(_0x26a446,_0x20f3ad){return db[_0x7b9d('0x3f')][_0x7b9d('0x46')](_0x26a446[_0x7b9d('0x47')],{})[_0x7b9d('0x27')](respondWithResult(_0x20f3ad,0xc9))[_0x7b9d('0x42')](handleError(_0x20f3ad,null));};exports[_0x7b9d('0x26')]=function(_0x32fd36,_0x3e062b){if(_0x32fd36[_0x7b9d('0x47')]['id']){delete _0x32fd36[_0x7b9d('0x47')]['id'];}return db['ChatInternalMessage'][_0x7b9d('0x45')]({'where':{'id':_0x32fd36[_0x7b9d('0x44')]['id']}})[_0x7b9d('0x27')](handleEntityNotFound(_0x3e062b,null))[_0x7b9d('0x27')](saveUpdates(_0x32fd36[_0x7b9d('0x47')],null))[_0x7b9d('0x27')](respondWithResult(_0x3e062b,null))[_0x7b9d('0x42')](handleError(_0x3e062b,null));};exports['destroy']=function(_0x23b7cd,_0x3e4b70){return db[_0x7b9d('0x3f')][_0x7b9d('0x45')]({'where':{'id':_0x23b7cd[_0x7b9d('0x44')]['id']}})[_0x7b9d('0x27')](handleEntityNotFound(_0x3e4b70,null))['then'](removeEntity(_0x3e4b70,null))[_0x7b9d('0x42')](handleError(_0x3e4b70,null));};exports[_0x7b9d('0x48')]=function(_0xb2d71c,_0x207529){return db[_0x7b9d('0x3f')][_0x7b9d('0x48')]()[_0x7b9d('0x27')](respondWithResult(_0x207529,null))[_0x7b9d('0x42')](handleError(_0x207529,null));};function wrapUser(_0x4454f4){return function(_0x47d843){var _0x12e032=_0x4454f4['get']({'plain':!![]});_0x12e032[_0x7b9d('0x49')]=[];if(_0x47d843){_0x12e032[_0x7b9d('0x4a')]=_0x47d843['createdAt'];_0x12e032[_0x7b9d('0x4b')]=_0x47d843;}else{_0x12e032['lastMessageAt']=moment(0x0)['format'](_0x7b9d('0x4c'));_0x12e032[_0x7b9d('0x4b')]={};}return _0x12e032;};}exports['getUsers']=function(_0x1a980f,_0x506389,_0x54f547){var _0x297342=[];return db[_0x7b9d('0x4d')][_0x7b9d('0x40')]({'where':{'role':[_0x7b9d('0x4e'),'admin','user']},'attributes':['id',_0x7b9d('0x4f'),'name','role',_0x7b9d('0x50'),_0x7b9d('0x51'),_0x7b9d('0x52'),'lastLoginAt',_0x7b9d('0x53'),_0x7b9d('0x54')],'order':qs[_0x7b9d('0x55')](_0x7b9d('0x56')),'include':[{'model':db[_0x7b9d('0x57')],'as':_0x7b9d('0x58'),'attributes':['id','name','type'],'through':{'attributes':[]}}]})[_0x7b9d('0x27')](function(_0x3b22bd){if(_0x3b22bd){var _0x5296aa=_0x1a980f[_0x7b9d('0x59')]['get']({'plain':!![]});if(!_0x5296aa)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5296aa[_0x7b9d('0x5a')]==='user'){return db[_0x7b9d('0x5b')][_0x7b9d('0x45')]({'where':{'name':'Agents','userProfileId':_0x5296aa[_0x7b9d('0x5c')]},'raw':!![]})[_0x7b9d('0x27')](function(_0xecd76e){if(_0xecd76e){if(_0xecd76e[_0x7b9d('0x5d')]===0x0){return db['UserProfileResource'][_0x7b9d('0x40')]({'where':{'sectionId':_0xecd76e['id']},'raw':!![]})[_0x7b9d('0x27')](function(_0x381758){var _0x279111=[];if(_[_0x7b9d('0x5e')](_0x381758)){_0x279111=_[_0x7b9d('0x39')](_0x3b22bd,function(_0xdb327a){if(_0xdb327a[_0x7b9d('0x5a')]!==_0x7b9d('0x4e')){return _0xdb327a;}});return _0x279111;}else{for(var _0x1fbbd7=0x0;_0x1fbbd7<_0x3b22bd['length'];_0x1fbbd7++){var _0x4d33f6=_0x3b22bd[_0x1fbbd7];if(_0x4d33f6['role']==='agent'){var _0x35b0a1=_[_0x7b9d('0x45')](_0x381758,function(_0x4320aa){return _0x4320aa[_0x7b9d('0x5f')]===_0x4d33f6['id'];});if(_0x35b0a1)_0x279111[_0x7b9d('0x60')](_0x4d33f6);}else{_0x279111['push'](_0x4d33f6);}}return _0x279111;}});}else{return _0x3b22bd;}}else{var _0x1eeedc=_[_0x7b9d('0x39')](_0x3b22bd,function(_0x939af){if(_0x939af['role']!==_0x7b9d('0x4e')){return _0x939af;}});return _0x1eeedc;}});}else{return _0x3b22bd;}}})[_0x7b9d('0x27')](function(_0x5b3a7f){var _0x38557a=[];if(_0x5b3a7f){_0x297342=_0x5b3a7f;for(var _0x1d6f1b=0x0;_0x1d6f1b<_0x5b3a7f['length'];_0x1d6f1b+=0x1){_0x297342[_0x1d6f1b]['messages']=[];_0x38557a[_0x7b9d('0x60')](db[_0x7b9d('0x3f')]['find']({'where':{'FromId':[_0x1a980f['user']['id'],_0x5b3a7f[_0x1d6f1b]['id']],'ToId':[_0x1a980f[_0x7b9d('0x59')]['id'],_0x5b3a7f[_0x1d6f1b]['id']],'ChatGroupId':null},'attributes':['id',_0x7b9d('0x61'),'FromId',_0x7b9d('0x62'),'read',_0x7b9d('0x47')],'order':qs[_0x7b9d('0x55')](_0x7b9d('0x63')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x7b9d('0x27')](wrapUser(_0x5b3a7f[_0x1d6f1b])));}return BPromise['all'](_0x38557a);}return[];})[_0x7b9d('0x27')](function(_0x488515){return{'rows':_0x488515,'count':_0x488515[_0x7b9d('0x37')]};})[_0x7b9d('0x27')](respondWithResult(_0x506389,null))['catch'](handleError(_0x506389,null));};