Built motion from commit (unavailable).|2.4.4
[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 _0x7863=['sendStatus','stack','name','index','ChatInternalMessage','keys','query','model','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','map','type','VIRTUAL','field','options','then','includeAll','include','findAll','show','params','rawAttributes','find','catch','create','body','destroy','describe','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','agent','admin','user','role','userpic','internal','online','lastLoginAt','allowmessenger','showWebBar','VoiceQueue','VoiceQueues','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','UserProfileResource','resourceId','push','messages','FromId','ToId','read','-createdAt','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','squel','desk.js','papaparse','ioredis','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update'];(function(_0x1c099f,_0x2bb66a){var _0x41643e=function(_0x3173c6){while(--_0x3173c6){_0x1c099f['push'](_0x1c099f['shift']());}};_0x41643e(++_0x2bb66a);}(_0x7863,0x115));var _0x3786=function(_0x41ecfc,_0x54f670){_0x41ecfc=_0x41ecfc-0x0;var _0x4cdc47=_0x7863[_0x41ecfc];return _0x4cdc47;};'use strict';var pdf=require(_0x3786('0x0'));var emlformat=require(_0x3786('0x1'));var rimraf=require(_0x3786('0x2'));var zipdir=require(_0x3786('0x3'));var jsonpatch=require(_0x3786('0x4'));var rp=require(_0x3786('0x5'));var moment=require('moment');var BPromise=require(_0x3786('0x6'));var Mustache=require(_0x3786('0x7'));var util=require(_0x3786('0x8'));var path=require(_0x3786('0x9'));var sox=require(_0x3786('0xa'));var csv=require(_0x3786('0xb'));var ejs=require(_0x3786('0xc'));var fs=require('fs');var _=require('lodash');var squel=require(_0x3786('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x3786('0xe'));var toCsv=require(_0x3786('0xb'));var querystring=require('querystring');var Papa=require(_0x3786('0xf'));var Redis=require(_0x3786('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var hardwareService=require(_0x3786('0x11'));var logger=require(_0x3786('0x12'))('api');var utils=require(_0x3786('0x13'));var config=require(_0x3786('0x14'));var db=require(_0x3786('0x15'))['db'];config[_0x3786('0x16')]=_[_0x3786('0x17')](config[_0x3786('0x16')],{'host':_0x3786('0x18'),'port':0x18eb});var socket=require(_0x3786('0x19'))(new Redis(config[_0x3786('0x16')]));require('./chatInternalMessage.socket')[_0x3786('0x1a')](socket);function respondWithStatusCode(_0x967afc,_0xf27896){_0xf27896=_0xf27896||0xcc;return function(_0x23d0b5){if(_0x23d0b5){return _0x967afc['sendStatus'](_0xf27896);}return _0x967afc[_0x3786('0x1b')](_0xf27896)['end']();};}function respondWithResult(_0x4d6b2e,_0x451be3){_0x451be3=_0x451be3||0xc8;return function(_0x20e9a8){if(_0x20e9a8){return _0x4d6b2e[_0x3786('0x1b')](_0x451be3)[_0x3786('0x1c')](_0x20e9a8);}};}function respondWithFilteredResult(_0x16a8ea,_0x2947ae){return function(_0x1bb493){if(_0x1bb493){var _0xc0852d=_0x1bb493[_0x3786('0x1d')],_0xfa9a62=_0x2947ae[_0x3786('0x1e')],_0x35823c=_0x2947ae['offset']+_0x2947ae[_0x3786('0x1f')],_0x204ad5;if(_0x35823c>=_0xc0852d){_0x35823c=_0xc0852d;_0x204ad5=0xc8;}else{_0x204ad5=0xce;}_0x16a8ea['status'](_0x204ad5);return _0x16a8ea[_0x3786('0x20')](_0x3786('0x21'),_0xfa9a62+'-'+_0x35823c+'/'+_0xc0852d)[_0x3786('0x1c')](_0x1bb493);}return null;};}function patchUpdates(_0x1a8cc9){return function(_0x5a02a1){try{jsonpatch[_0x3786('0x22')](_0x5a02a1,_0x1a8cc9,!![]);}catch(_0x16804b){return BPromise[_0x3786('0x23')](_0x16804b);}return _0x5a02a1[_0x3786('0x24')]();};}function saveUpdates(_0x2cc35b,_0x4c8e73){return function(_0x28f1ab){if(_0x28f1ab){return _0x28f1ab[_0x3786('0x25')](_0x2cc35b)['then'](function(_0x26e0cd){return _0x26e0cd;});}return null;};}function removeEntity(_0x18e7db,_0x399843){return function(_0x407042){if(_0x407042){return _0x407042['destroy']()['then'](function(){_0x18e7db[_0x3786('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0xedaa9c,_0x257694){return function(_0x41064c){if(!_0x41064c){_0xedaa9c[_0x3786('0x26')](0x194);}return _0x41064c;};}function handleError(_0x315dda,_0x1055af){_0x1055af=_0x1055af||0x1f4;return function(_0x27da42){logger['error'](_0x27da42[_0x3786('0x27')]);if(_0x27da42[_0x3786('0x28')]){delete _0x27da42['name'];}_0x315dda['status'](_0x1055af)['send'](_0x27da42);};}exports[_0x3786('0x29')]=function(_0x882fc4,_0x5f1fcc){var _0x1c8b24={},_0x266720={},_0x5c69b6={'count':0x0,'rows':[]};var _0x5c5974=db[_0x3786('0x2a')]['rawAttributes'];_0x266720['model']=_[_0x3786('0x2b')](_0x5c5974);_0x266720['query']=_[_0x3786('0x2b')](_0x882fc4[_0x3786('0x2c')]);_0x266720['filters']=_['intersection'](_0x266720[_0x3786('0x2d')],_0x266720['query']);_0x1c8b24['attributes']=_[_0x3786('0x2e')](_0x266720[_0x3786('0x2d')],qs[_0x3786('0x2f')](_0x882fc4['query'][_0x3786('0x2f')]));_0x1c8b24[_0x3786('0x30')]=_0x1c8b24['attributes'][_0x3786('0x31')]?_0x1c8b24[_0x3786('0x30')]:_0x266720['model'];if(!_0x882fc4['query'][_0x3786('0x32')](_0x3786('0x33'))){_0x1c8b24[_0x3786('0x1f')]=qs[_0x3786('0x1f')](_0x882fc4[_0x3786('0x2c')]['limit']);_0x1c8b24[_0x3786('0x1e')]=qs[_0x3786('0x1e')](_0x882fc4[_0x3786('0x2c')][_0x3786('0x1e')]);}_0x1c8b24['order']=qs['sort'](_0x882fc4[_0x3786('0x2c')][_0x3786('0x34')]);_0x1c8b24[_0x3786('0x35')]=qs[_0x3786('0x36')](_[_0x3786('0x37')](_0x882fc4[_0x3786('0x2c')],_0x266720[_0x3786('0x36')]));if(_0x882fc4[_0x3786('0x2c')][_0x3786('0x38')]){_0x1c8b24[_0x3786('0x35')]=_[_0x3786('0x39')](_0x1c8b24['where'],{'$or':_[_0x3786('0x3a')](_0x5c5974,function(_0x53e965){if(_0x53e965[_0x3786('0x3b')]['key']!==_0x3786('0x3c')){var _0x53868e={};_0x53868e[_0x53e965[_0x3786('0x3d')]]={'$like':'%'+_0x882fc4[_0x3786('0x2c')]['filter']+'%'};return _0x53868e;}})});}_0x1c8b24=_['merge']({},_0x1c8b24,_0x882fc4[_0x3786('0x3e')]);var _0x10ab83={'where':_0x1c8b24['where']};return db['ChatInternalMessage'][_0x3786('0x1d')](_0x10ab83)[_0x3786('0x3f')](function(_0x3a941c){_0x5c69b6['count']=_0x3a941c;if(_0x882fc4[_0x3786('0x2c')][_0x3786('0x40')]){_0x1c8b24[_0x3786('0x41')]=[{'all':!![]}];}return db[_0x3786('0x2a')][_0x3786('0x42')](_0x1c8b24);})[_0x3786('0x3f')](function(_0x10dc2e){_0x5c69b6['rows']=_0x10dc2e;return _0x5c69b6;})[_0x3786('0x3f')](respondWithFilteredResult(_0x5f1fcc,_0x1c8b24))['catch'](handleError(_0x5f1fcc,null));};exports[_0x3786('0x43')]=function(_0x49df9c,_0x4f04e3){var _0x349013={'raw':!![],'where':{'id':_0x49df9c[_0x3786('0x44')]['id']}},_0x1349db={};_0x1349db[_0x3786('0x2d')]=_[_0x3786('0x2b')](db[_0x3786('0x2a')][_0x3786('0x45')]);_0x1349db[_0x3786('0x2c')]=_['keys'](_0x49df9c['query']);_0x1349db['filters']=_[_0x3786('0x2e')](_0x1349db[_0x3786('0x2d')],_0x1349db[_0x3786('0x2c')]);_0x349013['attributes']=_[_0x3786('0x2e')](_0x1349db[_0x3786('0x2d')],qs[_0x3786('0x2f')](_0x49df9c[_0x3786('0x2c')][_0x3786('0x2f')]));_0x349013[_0x3786('0x30')]=_0x349013[_0x3786('0x30')][_0x3786('0x31')]?_0x349013['attributes']:_0x1349db[_0x3786('0x2d')];if(_0x49df9c[_0x3786('0x2c')]['includeAll']){_0x349013['include']=[{'all':!![]}];}_0x349013=_['merge']({},_0x349013,_0x49df9c[_0x3786('0x3e')]);return db[_0x3786('0x2a')][_0x3786('0x46')](_0x349013)[_0x3786('0x3f')](handleEntityNotFound(_0x4f04e3,null))[_0x3786('0x3f')](respondWithResult(_0x4f04e3,null))[_0x3786('0x47')](handleError(_0x4f04e3,null));};exports[_0x3786('0x48')]=function(_0x23c0ce,_0x19dc7d){return db[_0x3786('0x2a')][_0x3786('0x48')](_0x23c0ce['body'],{})['then'](respondWithResult(_0x19dc7d,0xc9))[_0x3786('0x47')](handleError(_0x19dc7d,null));};exports[_0x3786('0x25')]=function(_0x7bea05,_0x513fe3){if(_0x7bea05['body']['id']){delete _0x7bea05[_0x3786('0x49')]['id'];}return db[_0x3786('0x2a')][_0x3786('0x46')]({'where':{'id':_0x7bea05[_0x3786('0x44')]['id']}})[_0x3786('0x3f')](handleEntityNotFound(_0x513fe3,null))[_0x3786('0x3f')](saveUpdates(_0x7bea05[_0x3786('0x49')],null))['then'](respondWithResult(_0x513fe3,null))['catch'](handleError(_0x513fe3,null));};exports[_0x3786('0x4a')]=function(_0x3793b1,_0x115dc8){return db[_0x3786('0x2a')][_0x3786('0x46')]({'where':{'id':_0x3793b1[_0x3786('0x44')]['id']}})[_0x3786('0x3f')](handleEntityNotFound(_0x115dc8,null))['then'](removeEntity(_0x115dc8,null))[_0x3786('0x47')](handleError(_0x115dc8,null));};exports['describe']=function(_0x4a50b6,_0x28163c){return db['ChatInternalMessage'][_0x3786('0x4b')]()[_0x3786('0x3f')](respondWithResult(_0x28163c,null))['catch'](handleError(_0x28163c,null));};function wrapUser(_0xb8372f){return function(_0x536a4d){var _0x17fc88=_0xb8372f['get']({'plain':!![]});_0x17fc88['messages']=[];if(_0x536a4d){_0x17fc88[_0x3786('0x4c')]=_0x536a4d[_0x3786('0x4d')];_0x17fc88[_0x3786('0x4e')]=_0x536a4d;}else{_0x17fc88[_0x3786('0x4c')]=moment(0x0)[_0x3786('0x4f')](_0x3786('0x50'));_0x17fc88[_0x3786('0x4e')]={};}return _0x17fc88;};}exports['getUsers']=function(_0x309c26,_0x232c96,_0x4cae9b){var _0x2cc1e3=[];return db['User'][_0x3786('0x42')]({'where':{'role':[_0x3786('0x51'),_0x3786('0x52'),_0x3786('0x53')]},'attributes':['id','fullname','name',_0x3786('0x54'),_0x3786('0x55'),_0x3786('0x56'),_0x3786('0x57'),_0x3786('0x58'),_0x3786('0x59'),_0x3786('0x5a')],'order':qs['sort']('-online'),'include':[{'model':db[_0x3786('0x5b')],'as':_0x3786('0x5c'),'attributes':['id',_0x3786('0x28'),_0x3786('0x3b')],'through':{'attributes':[]}}]})[_0x3786('0x3f')](function(_0x1ac5d4){if(_0x1ac5d4){var _0x300b38=_0x309c26[_0x3786('0x53')][_0x3786('0x5d')]({'plain':!![]});if(!_0x300b38)throw new Error(_0x3786('0x5e'));if(_0x300b38[_0x3786('0x54')]===_0x3786('0x53')){return db['UserProfileSection'][_0x3786('0x46')]({'where':{'name':'Agents','userProfileId':_0x300b38[_0x3786('0x5f')]},'raw':!![]})[_0x3786('0x3f')](function(_0x592424){if(_0x592424){if(_0x592424[_0x3786('0x60')]===0x0){return db[_0x3786('0x61')][_0x3786('0x42')]({'where':{'sectionId':_0x592424['id']},'raw':!![]})[_0x3786('0x3f')](function(_0x147455){var _0x4e0d6a=[];if(_['isEmpty'](_0x147455)){_0x4e0d6a=_['filter'](_0x1ac5d4,function(_0x25c788){if(_0x25c788[_0x3786('0x54')]!==_0x3786('0x51')){return _0x25c788;}});return _0x4e0d6a;}else{for(var _0x2c8961=0x0;_0x2c8961<_0x1ac5d4[_0x3786('0x31')];_0x2c8961++){var _0x5857ed=_0x1ac5d4[_0x2c8961];if(_0x5857ed[_0x3786('0x54')]==='agent'){var _0x18e486=_[_0x3786('0x46')](_0x147455,function(_0x4204ad){return _0x4204ad[_0x3786('0x62')]===_0x5857ed['id'];});if(_0x18e486)_0x4e0d6a['push'](_0x5857ed);}else{_0x4e0d6a[_0x3786('0x63')](_0x5857ed);}}return _0x4e0d6a;}});}else{return _0x1ac5d4;}}else{var _0x272da3=_[_0x3786('0x38')](_0x1ac5d4,function(_0x569aef){if(_0x569aef['role']!==_0x3786('0x51')){return _0x569aef;}});return _0x272da3;}});}else{return _0x1ac5d4;}}})[_0x3786('0x3f')](function(_0x4792c5){var _0x1ba265=[];if(_0x4792c5){_0x2cc1e3=_0x4792c5;for(var _0x4aed65=0x0;_0x4aed65<_0x4792c5['length'];_0x4aed65+=0x1){_0x2cc1e3[_0x4aed65][_0x3786('0x64')]=[];_0x1ba265['push'](db['ChatInternalMessage'][_0x3786('0x46')]({'where':{'FromId':[_0x309c26[_0x3786('0x53')]['id'],_0x4792c5[_0x4aed65]['id']],'ToId':[_0x309c26[_0x3786('0x53')]['id'],_0x4792c5[_0x4aed65]['id']],'ChatGroupId':null},'attributes':['id',_0x3786('0x4d'),_0x3786('0x65'),_0x3786('0x66'),_0x3786('0x67'),'body'],'order':qs[_0x3786('0x34')](_0x3786('0x68')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x3786('0x3f')](wrapUser(_0x4792c5[_0x4aed65])));}return BPromise['all'](_0x1ba265);}return[];})[_0x3786('0x3f')](function(_0x51a080){return{'rows':_0x51a080,'count':_0x51a080[_0x3786('0x31')]};})[_0x3786('0x3f')](respondWithResult(_0x232c96,null))[_0x3786('0x47')](handleError(_0x232c96,null));};