Built motion from commit (unavailable).|2.5.14
[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 _0x3edc=['User','findAll','agent','admin','fullname','role','userpic','internal','online','-online','VoiceQueue','VoiceQueues','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','resourceId','push','ToId','read','all','html-pdf','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','path','sox','ejs','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','sendStatus','status','end','json','offset','set','Content-Range','apply','reject','update','then','destroy','error','name','index','ChatInternalMessage','rawAttributes','type','map','keys','intersection','model','attributes','query','fields','length','hasOwnProperty','nolimit','limit','order','sort','filters','pick','where','merge','VIRTUAL','filter','options','count','includeAll','include','rows','catch','show','find','create','body','params','describe','get','messages','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x484e36,_0x4482d8){var _0xafc85d=function(_0xaba9c8){while(--_0xaba9c8){_0x484e36['push'](_0x484e36['shift']());}};_0xafc85d(++_0x4482d8);}(_0x3edc,0x160));var _0xc3ed=function(_0x5774be,_0x2259d3){_0x5774be=_0x5774be-0x0;var _0x4914b4=_0x3edc[_0x5774be];return _0x4914b4;};'use strict';var pdf=require(_0xc3ed('0x0'));var emlformat=require(_0xc3ed('0x1'));var rimraf=require(_0xc3ed('0x2'));var zipdir=require(_0xc3ed('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc3ed('0x4'));var moment=require('moment');var BPromise=require(_0xc3ed('0x5'));var Mustache=require(_0xc3ed('0x6'));var util=require('util');var path=require(_0xc3ed('0x7'));var sox=require(_0xc3ed('0x8'));var csv=require('to-csv');var ejs=require(_0xc3ed('0x9'));var fs=require('fs');var _=require(_0xc3ed('0xa'));var squel=require(_0xc3ed('0xb'));var crypto=require(_0xc3ed('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xc3ed('0xd'));var toCsv=require(_0xc3ed('0xe'));var querystring=require(_0xc3ed('0xf'));var Papa=require(_0xc3ed('0x10'));var Redis=require(_0xc3ed('0x11'));var authService=require(_0xc3ed('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xc3ed('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc3ed('0x14'))(_0xc3ed('0x15'));var utils=require(_0xc3ed('0x16'));var config=require(_0xc3ed('0x17'));var licenseUtil=require(_0xc3ed('0x18'));var db=require(_0xc3ed('0x19'))['db'];config[_0xc3ed('0x1a')]=_[_0xc3ed('0x1b')](config[_0xc3ed('0x1a')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc3ed('0x1a')]));require('./chatInternalMessage.socket')['register'](socket);function respondWithStatusCode(_0x2b2ced,_0x13863b){_0x13863b=_0x13863b||0xcc;return function(_0xa88b1a){if(_0xa88b1a){return _0x2b2ced[_0xc3ed('0x1c')](_0x13863b);}return _0x2b2ced[_0xc3ed('0x1d')](_0x13863b)[_0xc3ed('0x1e')]();};}function respondWithResult(_0x442337,_0x2fb91f){_0x2fb91f=_0x2fb91f||0xc8;return function(_0x4a42b1){if(_0x4a42b1){return _0x442337[_0xc3ed('0x1d')](_0x2fb91f)[_0xc3ed('0x1f')](_0x4a42b1);}};}function respondWithFilteredResult(_0x5906fe,_0x13e807){return function(_0x226382){if(_0x226382){var _0x3bddaf=_0x226382['count'],_0x193eb4=_0x13e807[_0xc3ed('0x20')],_0x4115ad=_0x13e807[_0xc3ed('0x20')]+_0x13e807['limit'],_0x168960;if(_0x4115ad>=_0x3bddaf){_0x4115ad=_0x3bddaf;_0x168960=0xc8;}else{_0x168960=0xce;}_0x5906fe[_0xc3ed('0x1d')](_0x168960);return _0x5906fe[_0xc3ed('0x21')](_0xc3ed('0x22'),_0x193eb4+'-'+_0x4115ad+'/'+_0x3bddaf)['json'](_0x226382);}return null;};}function patchUpdates(_0x28983d){return function(_0x422f6d){try{jsonpatch[_0xc3ed('0x23')](_0x422f6d,_0x28983d,!![]);}catch(_0x5f0bb0){return BPromise[_0xc3ed('0x24')](_0x5f0bb0);}return _0x422f6d['save']();};}function saveUpdates(_0x48aff4,_0x383b9a){return function(_0x5c64bb){if(_0x5c64bb){return _0x5c64bb[_0xc3ed('0x25')](_0x48aff4)[_0xc3ed('0x26')](function(_0x5e966d){return _0x5e966d;});}return null;};}function removeEntity(_0x38e83b,_0x309c73){return function(_0x175171){if(_0x175171){return _0x175171[_0xc3ed('0x27')]()[_0xc3ed('0x26')](function(){_0x38e83b[_0xc3ed('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2156d8,_0x1fa221){return function(_0x1382b3){if(!_0x1382b3){_0x2156d8[_0xc3ed('0x1c')](0x194);}return _0x1382b3;};}function handleError(_0x5edf80,_0x400cea){_0x400cea=_0x400cea||0x1f4;return function(_0x4a728f){logger[_0xc3ed('0x28')](_0x4a728f['stack']);if(_0x4a728f[_0xc3ed('0x29')]){delete _0x4a728f[_0xc3ed('0x29')];}_0x5edf80['status'](_0x400cea)['send'](_0x4a728f);};}exports[_0xc3ed('0x2a')]=function(_0x89699a,_0x3074e8){var _0xf56e0={},_0x39de49={},_0x97e912={'count':0x0,'rows':[]};var _0x2482d8=_['map'](db[_0xc3ed('0x2b')][_0xc3ed('0x2c')],function(_0x563711){return{'name':_0x563711['fieldName'],'type':_0x563711[_0xc3ed('0x2d')]['key']};});_0x39de49['model']=_[_0xc3ed('0x2e')](_0x2482d8,'name');_0x39de49['query']=_[_0xc3ed('0x2f')](_0x89699a['query']);_0x39de49['filters']=_[_0xc3ed('0x30')](_0x39de49[_0xc3ed('0x31')],_0x39de49['query']);_0xf56e0[_0xc3ed('0x32')]=_[_0xc3ed('0x30')](_0x39de49[_0xc3ed('0x31')],qs['fields'](_0x89699a[_0xc3ed('0x33')][_0xc3ed('0x34')]));_0xf56e0[_0xc3ed('0x32')]=_0xf56e0[_0xc3ed('0x32')][_0xc3ed('0x35')]?_0xf56e0[_0xc3ed('0x32')]:_0x39de49[_0xc3ed('0x31')];if(!_0x89699a[_0xc3ed('0x33')][_0xc3ed('0x36')](_0xc3ed('0x37'))){_0xf56e0[_0xc3ed('0x38')]=qs[_0xc3ed('0x38')](_0x89699a[_0xc3ed('0x33')][_0xc3ed('0x38')]);_0xf56e0[_0xc3ed('0x20')]=qs[_0xc3ed('0x20')](_0x89699a[_0xc3ed('0x33')]['offset']);}_0xf56e0[_0xc3ed('0x39')]=qs[_0xc3ed('0x3a')](_0x89699a[_0xc3ed('0x33')][_0xc3ed('0x3a')]);_0xf56e0['where']=qs[_0xc3ed('0x3b')](_[_0xc3ed('0x3c')](_0x89699a[_0xc3ed('0x33')],_0x39de49['filters']),_0x2482d8);if(_0x89699a[_0xc3ed('0x33')]['filter']){_0xf56e0[_0xc3ed('0x3d')]=_[_0xc3ed('0x3e')](_0xf56e0[_0xc3ed('0x3d')],{'$or':_['map'](_0x2482d8,function(_0x44ac51){if(_0x44ac51[_0xc3ed('0x2d')]!==_0xc3ed('0x3f')){var _0x3f0e61={};_0x3f0e61[_0x44ac51[_0xc3ed('0x29')]]={'$like':'%'+_0x89699a[_0xc3ed('0x33')][_0xc3ed('0x40')]+'%'};return _0x3f0e61;}})});}_0xf56e0=_['merge']({},_0xf56e0,_0x89699a[_0xc3ed('0x41')]);var _0x50b8ff={'where':_0xf56e0[_0xc3ed('0x3d')]};return db[_0xc3ed('0x2b')][_0xc3ed('0x42')](_0x50b8ff)['then'](function(_0x404ee1){_0x97e912[_0xc3ed('0x42')]=_0x404ee1;if(_0x89699a[_0xc3ed('0x33')][_0xc3ed('0x43')]){_0xf56e0[_0xc3ed('0x44')]=[{'all':!![]}];}return db[_0xc3ed('0x2b')]['findAll'](_0xf56e0);})[_0xc3ed('0x26')](function(_0x45a304){_0x97e912[_0xc3ed('0x45')]=_0x45a304;return _0x97e912;})['then'](respondWithFilteredResult(_0x3074e8,_0xf56e0))[_0xc3ed('0x46')](handleError(_0x3074e8,null));};exports[_0xc3ed('0x47')]=function(_0x42f51d,_0x5c40c1){var _0x33b058={'raw':!![],'where':{'id':_0x42f51d['params']['id']}},_0x1a0e13={};_0x1a0e13[_0xc3ed('0x31')]=_[_0xc3ed('0x2f')](db[_0xc3ed('0x2b')][_0xc3ed('0x2c')]);_0x1a0e13['query']=_[_0xc3ed('0x2f')](_0x42f51d[_0xc3ed('0x33')]);_0x1a0e13[_0xc3ed('0x3b')]=_[_0xc3ed('0x30')](_0x1a0e13[_0xc3ed('0x31')],_0x1a0e13[_0xc3ed('0x33')]);_0x33b058[_0xc3ed('0x32')]=_[_0xc3ed('0x30')](_0x1a0e13[_0xc3ed('0x31')],qs[_0xc3ed('0x34')](_0x42f51d[_0xc3ed('0x33')][_0xc3ed('0x34')]));_0x33b058[_0xc3ed('0x32')]=_0x33b058[_0xc3ed('0x32')]['length']?_0x33b058['attributes']:_0x1a0e13[_0xc3ed('0x31')];if(_0x42f51d[_0xc3ed('0x33')]['includeAll']){_0x33b058[_0xc3ed('0x44')]=[{'all':!![]}];}_0x33b058=_[_0xc3ed('0x3e')]({},_0x33b058,_0x42f51d[_0xc3ed('0x41')]);return db['ChatInternalMessage'][_0xc3ed('0x48')](_0x33b058)[_0xc3ed('0x26')](handleEntityNotFound(_0x5c40c1,null))[_0xc3ed('0x26')](respondWithResult(_0x5c40c1,null))['catch'](handleError(_0x5c40c1,null));};exports[_0xc3ed('0x49')]=function(_0x8bf2f1,_0x354a91){return db[_0xc3ed('0x2b')][_0xc3ed('0x49')](_0x8bf2f1['body'],{})['then'](respondWithResult(_0x354a91,0xc9))[_0xc3ed('0x46')](handleError(_0x354a91,null));};exports[_0xc3ed('0x25')]=function(_0x5997ec,_0x188530){if(_0x5997ec[_0xc3ed('0x4a')]['id']){delete _0x5997ec[_0xc3ed('0x4a')]['id'];}return db[_0xc3ed('0x2b')]['find']({'where':{'id':_0x5997ec[_0xc3ed('0x4b')]['id']}})[_0xc3ed('0x26')](handleEntityNotFound(_0x188530,null))[_0xc3ed('0x26')](saveUpdates(_0x5997ec['body'],null))[_0xc3ed('0x26')](respondWithResult(_0x188530,null))['catch'](handleError(_0x188530,null));};exports['destroy']=function(_0x3e13fa,_0x243c13){return db[_0xc3ed('0x2b')][_0xc3ed('0x48')]({'where':{'id':_0x3e13fa[_0xc3ed('0x4b')]['id']}})['then'](handleEntityNotFound(_0x243c13,null))[_0xc3ed('0x26')](removeEntity(_0x243c13,null))[_0xc3ed('0x46')](handleError(_0x243c13,null));};exports[_0xc3ed('0x4c')]=function(_0x214085,_0x3831cf){return db[_0xc3ed('0x2b')][_0xc3ed('0x4c')]()[_0xc3ed('0x26')](respondWithResult(_0x3831cf,null))[_0xc3ed('0x46')](handleError(_0x3831cf,null));};function wrapUser(_0x59ab7e){return function(_0x423c0f){var _0x433896=_0x59ab7e[_0xc3ed('0x4d')]({'plain':!![]});_0x433896[_0xc3ed('0x4e')]=[];if(_0x423c0f){_0x433896[_0xc3ed('0x4f')]=_0x423c0f[_0xc3ed('0x50')];_0x433896[_0xc3ed('0x51')]=_0x423c0f;}else{_0x433896[_0xc3ed('0x4f')]=moment(0x0)[_0xc3ed('0x52')](_0xc3ed('0x53'));_0x433896['lastMessage']={};}return _0x433896;};}exports['getUsers']=function(_0x28e481,_0x5d3238,_0x1ebf0f){var _0x48f87a=[];return db[_0xc3ed('0x54')][_0xc3ed('0x55')]({'where':{'role':[_0xc3ed('0x56'),_0xc3ed('0x57'),'user']},'attributes':['id',_0xc3ed('0x58'),'name',_0xc3ed('0x59'),_0xc3ed('0x5a'),_0xc3ed('0x5b'),_0xc3ed('0x5c'),'lastLoginAt','allowmessenger','showWebBar'],'order':qs['sort'](_0xc3ed('0x5d')),'include':[{'model':db[_0xc3ed('0x5e')],'as':_0xc3ed('0x5f'),'attributes':['id','name',_0xc3ed('0x2d')],'through':{'attributes':[]}}]})[_0xc3ed('0x26')](function(_0x47cabf){if(_0x47cabf){var _0x3aeaae=_0x28e481[_0xc3ed('0x60')]['get']({'plain':!![]});if(!_0x3aeaae)throw new Error(_0xc3ed('0x61'));if(_0x3aeaae['role']===_0xc3ed('0x60')){return db[_0xc3ed('0x62')]['find']({'where':{'name':_0xc3ed('0x63'),'userProfileId':_0x3aeaae[_0xc3ed('0x64')]},'raw':!![]})[_0xc3ed('0x26')](function(_0x495edc){if(_0x495edc){if(_0x495edc[_0xc3ed('0x65')]===0x0){return db[_0xc3ed('0x66')][_0xc3ed('0x55')]({'where':{'sectionId':_0x495edc['id']},'raw':!![]})[_0xc3ed('0x26')](function(_0x5b9f3a){var _0x1687f6=[];if(_[_0xc3ed('0x67')](_0x5b9f3a)){_0x1687f6=_['filter'](_0x47cabf,function(_0x2dccb6){if(_0x2dccb6[_0xc3ed('0x59')]!==_0xc3ed('0x56')){return _0x2dccb6;}});return _0x1687f6;}else{for(var _0x4dfade=0x0;_0x4dfade<_0x47cabf[_0xc3ed('0x35')];_0x4dfade++){var _0x58ce88=_0x47cabf[_0x4dfade];if(_0x58ce88[_0xc3ed('0x59')]==='agent'){var _0x1e9b2e=_[_0xc3ed('0x48')](_0x5b9f3a,function(_0xe8cffc){return _0xe8cffc[_0xc3ed('0x68')]===_0x58ce88['id'];});if(_0x1e9b2e)_0x1687f6[_0xc3ed('0x69')](_0x58ce88);}else{_0x1687f6['push'](_0x58ce88);}}return _0x1687f6;}});}else{return _0x47cabf;}}else{var _0x37367c=_[_0xc3ed('0x40')](_0x47cabf,function(_0x4bb0d2){if(_0x4bb0d2[_0xc3ed('0x59')]!=='agent'){return _0x4bb0d2;}});return _0x37367c;}});}else{return _0x47cabf;}}})[_0xc3ed('0x26')](function(_0x59c5ef){var _0x2d8c7e=[];if(_0x59c5ef){_0x48f87a=_0x59c5ef;for(var _0x57e417=0x0;_0x57e417<_0x59c5ef[_0xc3ed('0x35')];_0x57e417+=0x1){_0x48f87a[_0x57e417][_0xc3ed('0x4e')]=[];_0x2d8c7e[_0xc3ed('0x69')](db['ChatInternalMessage'][_0xc3ed('0x48')]({'where':{'FromId':[_0x28e481[_0xc3ed('0x60')]['id'],_0x59c5ef[_0x57e417]['id']],'ToId':[_0x28e481[_0xc3ed('0x60')]['id'],_0x59c5ef[_0x57e417]['id']],'ChatGroupId':null},'attributes':['id',_0xc3ed('0x50'),'FromId',_0xc3ed('0x6a'),_0xc3ed('0x6b'),_0xc3ed('0x4a')],'order':qs[_0xc3ed('0x3a')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0x59c5ef[_0x57e417])));}return BPromise[_0xc3ed('0x6c')](_0x2d8c7e);}return[];})['then'](function(_0x1af5f2){return{'rows':_0x1af5f2,'count':_0x1af5f2[_0xc3ed('0x35')]};})[_0xc3ed('0x26')](respondWithResult(_0x5d3238,null))[_0xc3ed('0x46')](handleError(_0x5d3238,null));};