Built motion from commit f7863d46.|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 _0xa77f=['squel','jsforce','desk.js','to-csv','papaparse','ioredis','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','register','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','stack','name','send','map','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','pick','merge','where','VIRTUAL','filter','options','ChatInternalMessage','includeAll','include','findAll','rows','catch','show','params','keys','length','find','create','body','destroy','describe','get','createdAt','lastMessage','lastMessageAt','format','YYYY-MM-DD\x20HH:mm:ss','User','agent','user','fullname','role','userpic','internal','online','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','resourceId','push','FromId','ToId','read','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash'];(function(_0x484b83,_0x23dc70){var _0x730bab=function(_0x30128c){while(--_0x30128c){_0x484b83['push'](_0x484b83['shift']());}};_0x730bab(++_0x23dc70);}(_0xa77f,0x1ae));var _0xfa77=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xa77f[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0xfa77('0x0'));var rimraf=require(_0xfa77('0x1'));var zipdir=require(_0xfa77('0x2'));var jsonpatch=require(_0xfa77('0x3'));var rp=require(_0xfa77('0x4'));var moment=require(_0xfa77('0x5'));var BPromise=require(_0xfa77('0x6'));var Mustache=require(_0xfa77('0x7'));var util=require(_0xfa77('0x8'));var path=require(_0xfa77('0x9'));var sox=require(_0xfa77('0xa'));var csv=require('to-csv');var ejs=require(_0xfa77('0xb'));var fs=require('fs');var fs_extra=require(_0xfa77('0xc'));var _=require(_0xfa77('0xd'));var squel=require(_0xfa77('0xe'));var crypto=require('crypto');var jsforce=require(_0xfa77('0xf'));var deskjs=require(_0xfa77('0x10'));var toCsv=require(_0xfa77('0x11'));var querystring=require('querystring');var Papa=require(_0xfa77('0x12'));var Redis=require(_0xfa77('0x13'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xfa77('0x14'));var logger=require(_0xfa77('0x15'))(_0xfa77('0x16'));var utils=require(_0xfa77('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xfa77('0x18'));var db=require(_0xfa77('0x19'))['db'];config[_0xfa77('0x1a')]=_[_0xfa77('0x1b')](config[_0xfa77('0x1a')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xfa77('0x1a')]));require('./chatInternalMessage.socket')[_0xfa77('0x1c')](socket);function respondWithStatusCode(_0x3dbd1a,_0x49abe8){_0x49abe8=_0x49abe8||0xcc;return function(_0xdc6ad3){if(_0xdc6ad3){return _0x3dbd1a['sendStatus'](_0x49abe8);}return _0x3dbd1a['status'](_0x49abe8)['end']();};}function respondWithResult(_0x4eb9f5,_0x49daa5){_0x49daa5=_0x49daa5||0xc8;return function(_0x121f86){if(_0x121f86){return _0x4eb9f5[_0xfa77('0x1d')](_0x49daa5)[_0xfa77('0x1e')](_0x121f86);}};}function respondWithFilteredResult(_0x482603,_0x2cde1b){return function(_0x5c2fe6){if(_0x5c2fe6){var _0x50f403=typeof _0x2cde1b[_0xfa77('0x1f')]===_0xfa77('0x20')&&typeof _0x2cde1b[_0xfa77('0x21')]==='undefined';var _0x136d6d=_0x5c2fe6[_0xfa77('0x22')];var _0x300b60=_0x50f403?0x0:_0x2cde1b[_0xfa77('0x1f')];var _0xa93779=_0x50f403?_0x5c2fe6[_0xfa77('0x22')]:_0x2cde1b[_0xfa77('0x1f')]+_0x2cde1b[_0xfa77('0x21')];var _0x55238a;if(_0xa93779>=_0x136d6d){_0xa93779=_0x136d6d;_0x55238a=0xc8;}else{_0x55238a=0xce;}_0x482603[_0xfa77('0x1d')](_0x55238a);return _0x482603[_0xfa77('0x23')](_0xfa77('0x24'),_0x300b60+'-'+_0xa93779+'/'+_0x136d6d)[_0xfa77('0x1e')](_0x5c2fe6);}return null;};}function patchUpdates(_0x336794){return function(_0x171191){try{jsonpatch[_0xfa77('0x25')](_0x171191,_0x336794,!![]);}catch(_0x123896){return BPromise[_0xfa77('0x26')](_0x123896);}return _0x171191[_0xfa77('0x27')]();};}function saveUpdates(_0x41afaa,_0x5f16fc){return function(_0x2a4715){if(_0x2a4715){return _0x2a4715[_0xfa77('0x28')](_0x41afaa)[_0xfa77('0x29')](function(_0x5bf56e){return _0x5bf56e;});}return null;};}function removeEntity(_0x21a900,_0x43280b){return function(_0x1df34f){if(_0x1df34f){return _0x1df34f['destroy']()['then'](function(){_0x21a900[_0xfa77('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3f1a73,_0x30d670){return function(_0x2ba167){if(!_0x2ba167){_0x3f1a73['sendStatus'](0x194);}return _0x2ba167;};}function handleError(_0x2979f6,_0x1cf830){_0x1cf830=_0x1cf830||0x1f4;return function(_0x413c8f){logger['error'](_0x413c8f[_0xfa77('0x2a')]);if(_0x413c8f[_0xfa77('0x2b')]){delete _0x413c8f[_0xfa77('0x2b')];}_0x2979f6[_0xfa77('0x1d')](_0x1cf830)[_0xfa77('0x2c')](_0x413c8f);};}exports['index']=function(_0x37cb7e,_0x87332c){var _0x41768b={},_0x3cb2d7={},_0x175019={'count':0x0,'rows':[]};var _0x41bd61=_[_0xfa77('0x2d')](db['ChatInternalMessage'][_0xfa77('0x2e')],function(_0x1f97d9){return{'name':_0x1f97d9['fieldName'],'type':_0x1f97d9[_0xfa77('0x2f')][_0xfa77('0x30')]};});_0x3cb2d7[_0xfa77('0x31')]=_[_0xfa77('0x2d')](_0x41bd61,_0xfa77('0x2b'));_0x3cb2d7['query']=_['keys'](_0x37cb7e[_0xfa77('0x32')]);_0x3cb2d7[_0xfa77('0x33')]=_[_0xfa77('0x34')](_0x3cb2d7['model'],_0x3cb2d7[_0xfa77('0x32')]);_0x41768b[_0xfa77('0x35')]=_['intersection'](_0x3cb2d7[_0xfa77('0x31')],qs[_0xfa77('0x36')](_0x37cb7e[_0xfa77('0x32')][_0xfa77('0x36')]));_0x41768b[_0xfa77('0x35')]=_0x41768b['attributes']['length']?_0x41768b['attributes']:_0x3cb2d7['model'];if(!_0x37cb7e[_0xfa77('0x32')][_0xfa77('0x37')](_0xfa77('0x38'))){_0x41768b[_0xfa77('0x21')]=qs[_0xfa77('0x21')](_0x37cb7e[_0xfa77('0x32')][_0xfa77('0x21')]);_0x41768b[_0xfa77('0x1f')]=qs['offset'](_0x37cb7e[_0xfa77('0x32')][_0xfa77('0x1f')]);}_0x41768b['order']=qs[_0xfa77('0x39')](_0x37cb7e[_0xfa77('0x32')][_0xfa77('0x39')]);_0x41768b['where']=qs[_0xfa77('0x33')](_[_0xfa77('0x3a')](_0x37cb7e[_0xfa77('0x32')],_0x3cb2d7[_0xfa77('0x33')]),_0x41bd61);if(_0x37cb7e['query']['filter']){_0x41768b['where']=_[_0xfa77('0x3b')](_0x41768b[_0xfa77('0x3c')],{'$or':_[_0xfa77('0x2d')](_0x41bd61,function(_0x12277a){if(_0x12277a[_0xfa77('0x2f')]!==_0xfa77('0x3d')){var _0x33251d={};_0x33251d[_0x12277a[_0xfa77('0x2b')]]={'$like':'%'+_0x37cb7e[_0xfa77('0x32')][_0xfa77('0x3e')]+'%'};return _0x33251d;}})});}_0x41768b=_[_0xfa77('0x3b')]({},_0x41768b,_0x37cb7e[_0xfa77('0x3f')]);var _0x2c4453={'where':_0x41768b[_0xfa77('0x3c')]};return db[_0xfa77('0x40')][_0xfa77('0x22')](_0x2c4453)['then'](function(_0x315273){_0x175019['count']=_0x315273;if(_0x37cb7e[_0xfa77('0x32')][_0xfa77('0x41')]){_0x41768b[_0xfa77('0x42')]=[{'all':!![]}];}return db[_0xfa77('0x40')][_0xfa77('0x43')](_0x41768b);})['then'](function(_0x301758){_0x175019[_0xfa77('0x44')]=_0x301758;return _0x175019;})[_0xfa77('0x29')](respondWithFilteredResult(_0x87332c,_0x41768b))[_0xfa77('0x45')](handleError(_0x87332c,null));};exports[_0xfa77('0x46')]=function(_0x368ee4,_0x3f3ad1){var _0xab8535={'raw':!![],'where':{'id':_0x368ee4[_0xfa77('0x47')]['id']}},_0x374995={};_0x374995[_0xfa77('0x31')]=_[_0xfa77('0x48')](db[_0xfa77('0x40')][_0xfa77('0x2e')]);_0x374995['query']=_['keys'](_0x368ee4[_0xfa77('0x32')]);_0x374995[_0xfa77('0x33')]=_[_0xfa77('0x34')](_0x374995[_0xfa77('0x31')],_0x374995['query']);_0xab8535[_0xfa77('0x35')]=_['intersection'](_0x374995[_0xfa77('0x31')],qs[_0xfa77('0x36')](_0x368ee4[_0xfa77('0x32')][_0xfa77('0x36')]));_0xab8535[_0xfa77('0x35')]=_0xab8535[_0xfa77('0x35')][_0xfa77('0x49')]?_0xab8535[_0xfa77('0x35')]:_0x374995['model'];if(_0x368ee4[_0xfa77('0x32')][_0xfa77('0x41')]){_0xab8535[_0xfa77('0x42')]=[{'all':!![]}];}_0xab8535=_[_0xfa77('0x3b')]({},_0xab8535,_0x368ee4[_0xfa77('0x3f')]);return db[_0xfa77('0x40')][_0xfa77('0x4a')](_0xab8535)['then'](handleEntityNotFound(_0x3f3ad1,null))[_0xfa77('0x29')](respondWithResult(_0x3f3ad1,null))[_0xfa77('0x45')](handleError(_0x3f3ad1,null));};exports[_0xfa77('0x4b')]=function(_0x39aa8c,_0xf43ca5){return db['ChatInternalMessage'][_0xfa77('0x4b')](_0x39aa8c[_0xfa77('0x4c')],{})[_0xfa77('0x29')](respondWithResult(_0xf43ca5,0xc9))[_0xfa77('0x45')](handleError(_0xf43ca5,null));};exports[_0xfa77('0x28')]=function(_0x3dbf2c,_0x5c98e9){if(_0x3dbf2c[_0xfa77('0x4c')]['id']){delete _0x3dbf2c[_0xfa77('0x4c')]['id'];}return db[_0xfa77('0x40')][_0xfa77('0x4a')]({'where':{'id':_0x3dbf2c[_0xfa77('0x47')]['id']}})[_0xfa77('0x29')](handleEntityNotFound(_0x5c98e9,null))['then'](saveUpdates(_0x3dbf2c['body'],null))[_0xfa77('0x29')](respondWithResult(_0x5c98e9,null))[_0xfa77('0x45')](handleError(_0x5c98e9,null));};exports[_0xfa77('0x4d')]=function(_0x423450,_0x5a61dc){return db[_0xfa77('0x40')][_0xfa77('0x4a')]({'where':{'id':_0x423450[_0xfa77('0x47')]['id']}})[_0xfa77('0x29')](handleEntityNotFound(_0x5a61dc,null))[_0xfa77('0x29')](removeEntity(_0x5a61dc,null))[_0xfa77('0x45')](handleError(_0x5a61dc,null));};exports[_0xfa77('0x4e')]=function(_0x1ff976,_0x37ac45){return db[_0xfa77('0x40')]['describe']()[_0xfa77('0x29')](respondWithResult(_0x37ac45,null))[_0xfa77('0x45')](handleError(_0x37ac45,null));};function wrapUser(_0x3e10c7){return function(_0x559872){var _0x1f48b7=_0x3e10c7[_0xfa77('0x4f')]({'plain':!![]});_0x1f48b7['messages']=[];if(_0x559872){_0x1f48b7['lastMessageAt']=_0x559872[_0xfa77('0x50')];_0x1f48b7[_0xfa77('0x51')]=_0x559872;}else{_0x1f48b7[_0xfa77('0x52')]=moment(0x0)[_0xfa77('0x53')](_0xfa77('0x54'));_0x1f48b7['lastMessage']={};}return _0x1f48b7;};}exports['getUsers']=function(_0x5ea1fb,_0x5d161d,_0x3e6c4a){var _0x48dcd9=[];return db[_0xfa77('0x55')]['findAll']({'where':{'role':[_0xfa77('0x56'),'admin',_0xfa77('0x57')]},'attributes':['id',_0xfa77('0x58'),_0xfa77('0x2b'),_0xfa77('0x59'),_0xfa77('0x5a'),_0xfa77('0x5b'),_0xfa77('0x5c'),_0xfa77('0x5d'),_0xfa77('0x5e'),_0xfa77('0x5f')],'order':qs[_0xfa77('0x39')](_0xfa77('0x60')),'include':[{'model':db[_0xfa77('0x61')],'as':_0xfa77('0x62'),'attributes':['id',_0xfa77('0x2b'),'type'],'through':{'attributes':[]}}]})[_0xfa77('0x29')](function(_0x1f1da7){if(_0x1f1da7){var _0x513451=_0x5ea1fb['user']['get']({'plain':!![]});if(!_0x513451)throw new Error(_0xfa77('0x63'));if(_0x513451[_0xfa77('0x59')]===_0xfa77('0x57')){return db[_0xfa77('0x64')]['find']({'where':{'name':_0xfa77('0x65'),'userProfileId':_0x513451[_0xfa77('0x66')]},'raw':!![]})[_0xfa77('0x29')](function(_0x250888){if(_0x250888){if(_0x250888[_0xfa77('0x67')]===0x0){return db[_0xfa77('0x68')][_0xfa77('0x43')]({'where':{'sectionId':_0x250888['id']},'raw':!![]})[_0xfa77('0x29')](function(_0x2ad23b){var _0x345afa=[];if(_[_0xfa77('0x69')](_0x2ad23b)){_0x345afa=_[_0xfa77('0x3e')](_0x1f1da7,function(_0x5697f3){if(_0x5697f3[_0xfa77('0x59')]!==_0xfa77('0x56')){return _0x5697f3;}});return _0x345afa;}else{for(var _0x32e80d=0x0;_0x32e80d<_0x1f1da7[_0xfa77('0x49')];_0x32e80d++){var _0x21c1ba=_0x1f1da7[_0x32e80d];if(_0x21c1ba['role']===_0xfa77('0x56')){var _0x3b0695=_[_0xfa77('0x4a')](_0x2ad23b,function(_0x535b4a){return _0x535b4a[_0xfa77('0x6a')]===_0x21c1ba['id'];});if(_0x3b0695)_0x345afa['push'](_0x21c1ba);}else{_0x345afa[_0xfa77('0x6b')](_0x21c1ba);}}return _0x345afa;}});}else{return _0x1f1da7;}}else{var _0x115017=_[_0xfa77('0x3e')](_0x1f1da7,function(_0x4ac726){if(_0x4ac726['role']!==_0xfa77('0x56')){return _0x4ac726;}});return _0x115017;}});}else{return _0x1f1da7;}}})['then'](function(_0x1ac1a0){var _0x2ff0d0=[];if(_0x1ac1a0){_0x48dcd9=_0x1ac1a0;for(var _0x361772=0x0;_0x361772<_0x1ac1a0['length'];_0x361772+=0x1){_0x48dcd9[_0x361772]['messages']=[];_0x2ff0d0[_0xfa77('0x6b')](db['ChatInternalMessage']['find']({'where':{'FromId':[_0x5ea1fb[_0xfa77('0x57')]['id'],_0x1ac1a0[_0x361772]['id']],'ToId':[_0x5ea1fb[_0xfa77('0x57')]['id'],_0x1ac1a0[_0x361772]['id']],'ChatGroupId':null},'attributes':['id',_0xfa77('0x50'),_0xfa77('0x6c'),_0xfa77('0x6d'),_0xfa77('0x6e'),_0xfa77('0x4c')],'order':qs[_0xfa77('0x39')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0xfa77('0x29')](wrapUser(_0x1ac1a0[_0x361772])));}return BPromise['all'](_0x2ff0d0);}return[];})[_0xfa77('0x29')](function(_0x5bf145){return{'rows':_0x5bf145,'count':_0x5bf145[_0xfa77('0x49')]};})[_0xfa77('0x29')](respondWithResult(_0x5d161d,null))[_0xfa77('0x45')](handleError(_0x5d161d,null));};