Built motion from commit 449495f6.|2.6.27
[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 _0x19ee=['-createdAt','all','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','fs-extra','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','redis','socket.io-emitter','register','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','destroy','then','error','stack','name','send','index','map','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','ChatInternalMessage','includeAll','include','findAll','catch','show','params','find','create','update','body','describe','get','lastMessageAt','createdAt','lastMessage','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','admin','user','fullname','role','userpic','internal','allowmessenger','showWebBar','-online','VoiceQueue','VoiceQueues','UserProfileSection','Agents','autoAssociation','UserProfileResource','isEmpty','agent','resourceId','messages','push','FromId','ToId'];(function(_0x557507,_0x197b78){var _0x4c07d6=function(_0x524f78){while(--_0x524f78){_0x557507['push'](_0x557507['shift']());}};_0x4c07d6(++_0x197b78);}(_0x19ee,0x1c2));var _0xe19e=function(_0x543c51,_0xff0084){_0x543c51=_0x543c51-0x0;var _0x360555=_0x19ee[_0x543c51];return _0x360555;};'use strict';var emlformat=require(_0xe19e('0x0'));var rimraf=require(_0xe19e('0x1'));var zipdir=require(_0xe19e('0x2'));var jsonpatch=require(_0xe19e('0x3'));var rp=require(_0xe19e('0x4'));var moment=require(_0xe19e('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xe19e('0x6'));var path=require(_0xe19e('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe19e('0x8'));var _=require('lodash');var squel=require(_0xe19e('0x9'));var crypto=require(_0xe19e('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xe19e('0xb'));var toCsv=require(_0xe19e('0xc'));var querystring=require(_0xe19e('0xd'));var Papa=require(_0xe19e('0xe'));var Redis=require(_0xe19e('0xf'));var authService=require(_0xe19e('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xe19e('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe19e('0x12'))(_0xe19e('0x13'));var utils=require(_0xe19e('0x14'));var config=require(_0xe19e('0x15'));var licenseUtil=require(_0xe19e('0x16'));var db=require('../../mysqldb')['db'];config[_0xe19e('0x17')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xe19e('0x18'))(new Redis(config[_0xe19e('0x17')]));require('./chatInternalMessage.socket')[_0xe19e('0x19')](socket);function respondWithStatusCode(_0x3b66f7,_0x17987b){_0x17987b=_0x17987b||0xcc;return function(_0x2cd82c){if(_0x2cd82c){return _0x3b66f7[_0xe19e('0x1a')](_0x17987b);}return _0x3b66f7[_0xe19e('0x1b')](_0x17987b)[_0xe19e('0x1c')]();};}function respondWithResult(_0x4a1e43,_0x4bfe6e){_0x4bfe6e=_0x4bfe6e||0xc8;return function(_0x2e3840){if(_0x2e3840){return _0x4a1e43['status'](_0x4bfe6e)['json'](_0x2e3840);}};}function respondWithFilteredResult(_0x192a48,_0x498ea4){return function(_0x29bb1a){if(_0x29bb1a){var _0x337e45=typeof _0x498ea4[_0xe19e('0x1d')]===_0xe19e('0x1e')&&typeof _0x498ea4[_0xe19e('0x1f')]===_0xe19e('0x1e');var _0x31e334=_0x29bb1a[_0xe19e('0x20')];var _0x49ec9f=_0x337e45?0x0:_0x498ea4[_0xe19e('0x1d')];var _0xe707d0=_0x337e45?_0x29bb1a[_0xe19e('0x20')]:_0x498ea4[_0xe19e('0x1d')]+_0x498ea4[_0xe19e('0x1f')];var _0x3c49dd;if(_0xe707d0>=_0x31e334){_0xe707d0=_0x31e334;_0x3c49dd=0xc8;}else{_0x3c49dd=0xce;}_0x192a48['status'](_0x3c49dd);return _0x192a48[_0xe19e('0x21')](_0xe19e('0x22'),_0x49ec9f+'-'+_0xe707d0+'/'+_0x31e334)[_0xe19e('0x23')](_0x29bb1a);}return null;};}function patchUpdates(_0x43fe95){return function(_0x4d8e67){try{jsonpatch[_0xe19e('0x24')](_0x4d8e67,_0x43fe95,!![]);}catch(_0x1b808e){return BPromise[_0xe19e('0x25')](_0x1b808e);}return _0x4d8e67[_0xe19e('0x26')]();};}function saveUpdates(_0x4c7d58,_0x18e890){return function(_0x2a1981){if(_0x2a1981){return _0x2a1981['update'](_0x4c7d58)['then'](function(_0x55ddec){return _0x55ddec;});}return null;};}function removeEntity(_0x3560f2,_0x93841d){return function(_0x1534f7){if(_0x1534f7){return _0x1534f7[_0xe19e('0x27')]()[_0xe19e('0x28')](function(){_0x3560f2[_0xe19e('0x1b')](0xcc)[_0xe19e('0x1c')]();});}};}function handleEntityNotFound(_0x2c3539,_0x50c17d){return function(_0x2fb703){if(!_0x2fb703){_0x2c3539[_0xe19e('0x1a')](0x194);}return _0x2fb703;};}function handleError(_0x5e7247,_0x213ab1){_0x213ab1=_0x213ab1||0x1f4;return function(_0xf3c4f3){logger[_0xe19e('0x29')](_0xf3c4f3[_0xe19e('0x2a')]);if(_0xf3c4f3['name']){delete _0xf3c4f3[_0xe19e('0x2b')];}_0x5e7247['status'](_0x213ab1)[_0xe19e('0x2c')](_0xf3c4f3);};}exports[_0xe19e('0x2d')]=function(_0x1320e3,_0x4fc526){var _0x2dd192={},_0x5153f7={},_0x1b0cb1={'count':0x0,'rows':[]};var _0x5101a8=_[_0xe19e('0x2e')](db['ChatInternalMessage'][_0xe19e('0x2f')],function(_0x2ac646){return{'name':_0x2ac646[_0xe19e('0x30')],'type':_0x2ac646['type'][_0xe19e('0x31')]};});_0x5153f7[_0xe19e('0x32')]=_[_0xe19e('0x2e')](_0x5101a8,_0xe19e('0x2b'));_0x5153f7[_0xe19e('0x33')]=_[_0xe19e('0x34')](_0x1320e3[_0xe19e('0x33')]);_0x5153f7[_0xe19e('0x35')]=_[_0xe19e('0x36')](_0x5153f7[_0xe19e('0x32')],_0x5153f7['query']);_0x2dd192[_0xe19e('0x37')]=_[_0xe19e('0x36')](_0x5153f7[_0xe19e('0x32')],qs[_0xe19e('0x38')](_0x1320e3[_0xe19e('0x33')]['fields']));_0x2dd192[_0xe19e('0x37')]=_0x2dd192[_0xe19e('0x37')][_0xe19e('0x39')]?_0x2dd192[_0xe19e('0x37')]:_0x5153f7[_0xe19e('0x32')];if(!_0x1320e3[_0xe19e('0x33')][_0xe19e('0x3a')](_0xe19e('0x3b'))){_0x2dd192[_0xe19e('0x1f')]=qs['limit'](_0x1320e3[_0xe19e('0x33')][_0xe19e('0x1f')]);_0x2dd192[_0xe19e('0x1d')]=qs[_0xe19e('0x1d')](_0x1320e3[_0xe19e('0x33')][_0xe19e('0x1d')]);}_0x2dd192[_0xe19e('0x3c')]=qs[_0xe19e('0x3d')](_0x1320e3[_0xe19e('0x33')][_0xe19e('0x3d')]);_0x2dd192[_0xe19e('0x3e')]=qs[_0xe19e('0x35')](_[_0xe19e('0x3f')](_0x1320e3[_0xe19e('0x33')],_0x5153f7['filters']),_0x5101a8);if(_0x1320e3[_0xe19e('0x33')][_0xe19e('0x40')]){_0x2dd192[_0xe19e('0x3e')]=_[_0xe19e('0x41')](_0x2dd192[_0xe19e('0x3e')],{'$or':_[_0xe19e('0x2e')](_0x5101a8,function(_0xae93c8){if(_0xae93c8[_0xe19e('0x42')]!==_0xe19e('0x43')){var _0x255b9c={};_0x255b9c[_0xae93c8[_0xe19e('0x2b')]]={'$like':'%'+_0x1320e3[_0xe19e('0x33')][_0xe19e('0x40')]+'%'};return _0x255b9c;}})});}_0x2dd192=_[_0xe19e('0x41')]({},_0x2dd192,_0x1320e3[_0xe19e('0x44')]);var _0x1e1512={'where':_0x2dd192['where']};return db[_0xe19e('0x45')][_0xe19e('0x20')](_0x1e1512)[_0xe19e('0x28')](function(_0x408957){_0x1b0cb1['count']=_0x408957;if(_0x1320e3[_0xe19e('0x33')][_0xe19e('0x46')]){_0x2dd192[_0xe19e('0x47')]=[{'all':!![]}];}return db[_0xe19e('0x45')][_0xe19e('0x48')](_0x2dd192);})[_0xe19e('0x28')](function(_0x4c1060){_0x1b0cb1['rows']=_0x4c1060;return _0x1b0cb1;})[_0xe19e('0x28')](respondWithFilteredResult(_0x4fc526,_0x2dd192))[_0xe19e('0x49')](handleError(_0x4fc526,null));};exports[_0xe19e('0x4a')]=function(_0x4c4340,_0x35c15b){var _0x5b80b7={'raw':!![],'where':{'id':_0x4c4340[_0xe19e('0x4b')]['id']}},_0x3c8c00={};_0x3c8c00[_0xe19e('0x32')]=_['keys'](db[_0xe19e('0x45')][_0xe19e('0x2f')]);_0x3c8c00[_0xe19e('0x33')]=_['keys'](_0x4c4340[_0xe19e('0x33')]);_0x3c8c00['filters']=_[_0xe19e('0x36')](_0x3c8c00[_0xe19e('0x32')],_0x3c8c00['query']);_0x5b80b7['attributes']=_[_0xe19e('0x36')](_0x3c8c00['model'],qs[_0xe19e('0x38')](_0x4c4340[_0xe19e('0x33')][_0xe19e('0x38')]));_0x5b80b7[_0xe19e('0x37')]=_0x5b80b7[_0xe19e('0x37')][_0xe19e('0x39')]?_0x5b80b7[_0xe19e('0x37')]:_0x3c8c00[_0xe19e('0x32')];if(_0x4c4340[_0xe19e('0x33')]['includeAll']){_0x5b80b7[_0xe19e('0x47')]=[{'all':!![]}];}_0x5b80b7=_['merge']({},_0x5b80b7,_0x4c4340[_0xe19e('0x44')]);return db[_0xe19e('0x45')][_0xe19e('0x4c')](_0x5b80b7)['then'](handleEntityNotFound(_0x35c15b,null))[_0xe19e('0x28')](respondWithResult(_0x35c15b,null))[_0xe19e('0x49')](handleError(_0x35c15b,null));};exports[_0xe19e('0x4d')]=function(_0x548bc3,_0x3dd774){return db[_0xe19e('0x45')][_0xe19e('0x4d')](_0x548bc3['body'],{})[_0xe19e('0x28')](respondWithResult(_0x3dd774,0xc9))['catch'](handleError(_0x3dd774,null));};exports[_0xe19e('0x4e')]=function(_0x28d440,_0x569bd9){if(_0x28d440[_0xe19e('0x4f')]['id']){delete _0x28d440[_0xe19e('0x4f')]['id'];}return db[_0xe19e('0x45')]['find']({'where':{'id':_0x28d440[_0xe19e('0x4b')]['id']}})['then'](handleEntityNotFound(_0x569bd9,null))[_0xe19e('0x28')](saveUpdates(_0x28d440[_0xe19e('0x4f')],null))[_0xe19e('0x28')](respondWithResult(_0x569bd9,null))[_0xe19e('0x49')](handleError(_0x569bd9,null));};exports['destroy']=function(_0x47ca51,_0x27a178){return db[_0xe19e('0x45')]['find']({'where':{'id':_0x47ca51[_0xe19e('0x4b')]['id']}})[_0xe19e('0x28')](handleEntityNotFound(_0x27a178,null))['then'](removeEntity(_0x27a178,null))[_0xe19e('0x49')](handleError(_0x27a178,null));};exports['describe']=function(_0x43daed,_0x53b6f5){return db[_0xe19e('0x45')][_0xe19e('0x50')]()['then'](respondWithResult(_0x53b6f5,null))[_0xe19e('0x49')](handleError(_0x53b6f5,null));};function wrapUser(_0x5b96cc){return function(_0x253802){var _0x951bee=_0x5b96cc[_0xe19e('0x51')]({'plain':!![]});_0x951bee['messages']=[];if(_0x253802){_0x951bee[_0xe19e('0x52')]=_0x253802[_0xe19e('0x53')];_0x951bee[_0xe19e('0x54')]=_0x253802;}else{_0x951bee['lastMessageAt']=moment(0x0)['format'](_0xe19e('0x55'));_0x951bee[_0xe19e('0x54')]={};}return _0x951bee;};}exports[_0xe19e('0x56')]=function(_0x418df4,_0x51022c,_0x1a0bfe){var _0x405339=[];return db[_0xe19e('0x57')][_0xe19e('0x48')]({'where':{'role':['agent',_0xe19e('0x58'),_0xe19e('0x59')]},'attributes':['id',_0xe19e('0x5a'),_0xe19e('0x2b'),_0xe19e('0x5b'),_0xe19e('0x5c'),_0xe19e('0x5d'),'online','lastLoginAt',_0xe19e('0x5e'),_0xe19e('0x5f')],'order':qs[_0xe19e('0x3d')](_0xe19e('0x60')),'include':[{'model':db[_0xe19e('0x61')],'as':_0xe19e('0x62'),'attributes':['id',_0xe19e('0x2b'),_0xe19e('0x42')],'through':{'attributes':[]}}]})[_0xe19e('0x28')](function(_0x56a7ca){if(_0x56a7ca){var _0x304412=_0x418df4[_0xe19e('0x59')][_0xe19e('0x51')]({'plain':!![]});if(!_0x304412)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x304412[_0xe19e('0x5b')]===_0xe19e('0x59')){return db[_0xe19e('0x63')]['find']({'where':{'name':_0xe19e('0x64'),'userProfileId':_0x304412['userProfileId']},'raw':!![]})[_0xe19e('0x28')](function(_0x523e40){if(_0x523e40){if(_0x523e40[_0xe19e('0x65')]===0x0){return db[_0xe19e('0x66')][_0xe19e('0x48')]({'where':{'sectionId':_0x523e40['id']},'raw':!![]})[_0xe19e('0x28')](function(_0x669f01){var _0x41a609=[];if(_[_0xe19e('0x67')](_0x669f01)){_0x41a609=_[_0xe19e('0x40')](_0x56a7ca,function(_0x441c41){if(_0x441c41['role']!==_0xe19e('0x68')){return _0x441c41;}});return _0x41a609;}else{for(var _0x357394=0x0;_0x357394<_0x56a7ca[_0xe19e('0x39')];_0x357394++){var _0x16a1c5=_0x56a7ca[_0x357394];if(_0x16a1c5[_0xe19e('0x5b')]===_0xe19e('0x68')){var _0x2d40d7=_['find'](_0x669f01,function(_0x449e66){return _0x449e66[_0xe19e('0x69')]===_0x16a1c5['id'];});if(_0x2d40d7)_0x41a609['push'](_0x16a1c5);}else{_0x41a609['push'](_0x16a1c5);}}return _0x41a609;}});}else{return _0x56a7ca;}}else{var _0x2691c0=_[_0xe19e('0x40')](_0x56a7ca,function(_0x2b3789){if(_0x2b3789['role']!=='agent'){return _0x2b3789;}});return _0x2691c0;}});}else{return _0x56a7ca;}}})[_0xe19e('0x28')](function(_0x3b1a9f){var _0x3f8281=[];if(_0x3b1a9f){_0x405339=_0x3b1a9f;for(var _0x5d477f=0x0;_0x5d477f<_0x3b1a9f[_0xe19e('0x39')];_0x5d477f+=0x1){_0x405339[_0x5d477f][_0xe19e('0x6a')]=[];_0x3f8281[_0xe19e('0x6b')](db['ChatInternalMessage'][_0xe19e('0x4c')]({'where':{'FromId':[_0x418df4['user']['id'],_0x3b1a9f[_0x5d477f]['id']],'ToId':[_0x418df4[_0xe19e('0x59')]['id'],_0x3b1a9f[_0x5d477f]['id']],'ChatGroupId':null},'attributes':['id',_0xe19e('0x53'),_0xe19e('0x6c'),_0xe19e('0x6d'),'read',_0xe19e('0x4f')],'order':qs['sort'](_0xe19e('0x6e')),'limit':0x1,'offset':0x0,'raw':!![]})[_0xe19e('0x28')](wrapUser(_0x3b1a9f[_0x5d477f])));}return BPromise[_0xe19e('0x6f')](_0x3f8281);}return[];})[_0xe19e('0x28')](function(_0x4dfdc3){return{'rows':_0x4dfdc3,'count':_0x4dfdc3[_0xe19e('0x39')]};})[_0xe19e('0x28')](respondWithResult(_0x51022c,null))[_0xe19e('0x49')](handleError(_0x51022c,null));};