Built motion from commit (unavailable).|2.5.11
[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 _0x326c=['lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','./chatInternalMessage.socket','register','status','json','count','offset','set','Content-Range','apply','reject','update','then','end','sendStatus','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','merge','VIRTUAL','filter','options','includeAll','include','findAll','catch','show','params','model','find','create','body','destroy','describe','get','messages','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','admin','user','fullname','role','userpic','lastLoginAt','showWebBar','-online','VoiceQueue','VoiceQueues','Agents','userProfileId','agent','resourceId','push','ToId','read','all','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs'];(function(_0x6788fd,_0x1b5fb2){var _0x2c218b=function(_0x4c2abf){while(--_0x4c2abf){_0x6788fd['push'](_0x6788fd['shift']());}};_0x2c218b(++_0x1b5fb2);}(_0x326c,0x13b));var _0xc326=function(_0x619634,_0x5e5e62){_0x619634=_0x619634-0x0;var _0x5f4629=_0x326c[_0x619634];return _0x5f4629;};'use strict';var pdf=require(_0xc326('0x0'));var emlformat=require(_0xc326('0x1'));var rimraf=require(_0xc326('0x2'));var zipdir=require(_0xc326('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc326('0x4'));var moment=require(_0xc326('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xc326('0x6'));var util=require(_0xc326('0x7'));var path=require(_0xc326('0x8'));var sox=require(_0xc326('0x9'));var csv=require(_0xc326('0xa'));var ejs=require(_0xc326('0xb'));var fs=require('fs');var _=require(_0xc326('0xc'));var squel=require(_0xc326('0xd'));var crypto=require(_0xc326('0xe'));var jsforce=require(_0xc326('0xf'));var deskjs=require(_0xc326('0x10'));var toCsv=require(_0xc326('0xa'));var querystring=require(_0xc326('0x11'));var Papa=require(_0xc326('0x12'));var Redis=require(_0xc326('0x13'));var authService=require(_0xc326('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0xc326('0x15'));var hardwareService=require(_0xc326('0x16'));var logger=require(_0xc326('0x17'))(_0xc326('0x18'));var utils=require(_0xc326('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0xc326('0x1a'));var db=require(_0xc326('0x1b'))['db'];config[_0xc326('0x1c')]=_[_0xc326('0x1d')](config[_0xc326('0x1c')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc326('0x1c')]));require(_0xc326('0x1e'))[_0xc326('0x1f')](socket);function respondWithStatusCode(_0x46a1d0,_0x4817e4){_0x4817e4=_0x4817e4||0xcc;return function(_0x2d5a20){if(_0x2d5a20){return _0x46a1d0['sendStatus'](_0x4817e4);}return _0x46a1d0[_0xc326('0x20')](_0x4817e4)['end']();};}function respondWithResult(_0x215582,_0x225731){_0x225731=_0x225731||0xc8;return function(_0x1a8f06){if(_0x1a8f06){return _0x215582['status'](_0x225731)[_0xc326('0x21')](_0x1a8f06);}};}function respondWithFilteredResult(_0x40e63b,_0x14b772){return function(_0x22a4b0){if(_0x22a4b0){var _0x3b8846=_0x22a4b0[_0xc326('0x22')],_0x5d3bcb=_0x14b772[_0xc326('0x23')],_0x5a4f08=_0x14b772[_0xc326('0x23')]+_0x14b772['limit'],_0x8e2d24;if(_0x5a4f08>=_0x3b8846){_0x5a4f08=_0x3b8846;_0x8e2d24=0xc8;}else{_0x8e2d24=0xce;}_0x40e63b[_0xc326('0x20')](_0x8e2d24);return _0x40e63b[_0xc326('0x24')](_0xc326('0x25'),_0x5d3bcb+'-'+_0x5a4f08+'/'+_0x3b8846)[_0xc326('0x21')](_0x22a4b0);}return null;};}function patchUpdates(_0x42523d){return function(_0x2b0280){try{jsonpatch[_0xc326('0x26')](_0x2b0280,_0x42523d,!![]);}catch(_0x5a2614){return BPromise[_0xc326('0x27')](_0x5a2614);}return _0x2b0280['save']();};}function saveUpdates(_0x1f98ed,_0x1b61f7){return function(_0x121481){if(_0x121481){return _0x121481[_0xc326('0x28')](_0x1f98ed)[_0xc326('0x29')](function(_0x37e692){return _0x37e692;});}return null;};}function removeEntity(_0x4f1b36,_0x96b734){return function(_0x38a6fc){if(_0x38a6fc){return _0x38a6fc['destroy']()[_0xc326('0x29')](function(){_0x4f1b36[_0xc326('0x20')](0xcc)[_0xc326('0x2a')]();});}};}function handleEntityNotFound(_0x237fb6,_0x46c7fd){return function(_0x2181ae){if(!_0x2181ae){_0x237fb6[_0xc326('0x2b')](0x194);}return _0x2181ae;};}function handleError(_0x3973f2,_0x1ca974){_0x1ca974=_0x1ca974||0x1f4;return function(_0x4d62ac){logger[_0xc326('0x2c')](_0x4d62ac[_0xc326('0x2d')]);if(_0x4d62ac['name']){delete _0x4d62ac[_0xc326('0x2e')];}_0x3973f2[_0xc326('0x20')](_0x1ca974)[_0xc326('0x2f')](_0x4d62ac);};}exports[_0xc326('0x30')]=function(_0x42c7b1,_0x5ac16b){var _0x37428c={},_0x1d6881={},_0xb38f15={'count':0x0,'rows':[]};var _0xc1b701=_[_0xc326('0x31')](db[_0xc326('0x32')][_0xc326('0x33')],function(_0x3cc520){return{'name':_0x3cc520[_0xc326('0x34')],'type':_0x3cc520[_0xc326('0x35')][_0xc326('0x36')]};});_0x1d6881['model']=_[_0xc326('0x31')](_0xc1b701,_0xc326('0x2e'));_0x1d6881['query']=_[_0xc326('0x37')](_0x42c7b1[_0xc326('0x38')]);_0x1d6881['filters']=_[_0xc326('0x39')](_0x1d6881['model'],_0x1d6881[_0xc326('0x38')]);_0x37428c[_0xc326('0x3a')]=_[_0xc326('0x39')](_0x1d6881['model'],qs[_0xc326('0x3b')](_0x42c7b1[_0xc326('0x38')][_0xc326('0x3b')]));_0x37428c['attributes']=_0x37428c[_0xc326('0x3a')][_0xc326('0x3c')]?_0x37428c['attributes']:_0x1d6881['model'];if(!_0x42c7b1['query'][_0xc326('0x3d')](_0xc326('0x3e'))){_0x37428c[_0xc326('0x3f')]=qs[_0xc326('0x3f')](_0x42c7b1[_0xc326('0x38')]['limit']);_0x37428c[_0xc326('0x23')]=qs['offset'](_0x42c7b1['query'][_0xc326('0x23')]);}_0x37428c[_0xc326('0x40')]=qs[_0xc326('0x41')](_0x42c7b1[_0xc326('0x38')][_0xc326('0x41')]);_0x37428c[_0xc326('0x42')]=qs['filters'](_['pick'](_0x42c7b1[_0xc326('0x38')],_0x1d6881[_0xc326('0x43')]),_0xc1b701);if(_0x42c7b1[_0xc326('0x38')]['filter']){_0x37428c['where']=_[_0xc326('0x44')](_0x37428c['where'],{'$or':_['map'](_0xc1b701,function(_0x2cbf7a){if(_0x2cbf7a['type']!==_0xc326('0x45')){var _0x34663f={};_0x34663f[_0x2cbf7a[_0xc326('0x2e')]]={'$like':'%'+_0x42c7b1['query'][_0xc326('0x46')]+'%'};return _0x34663f;}})});}_0x37428c=_[_0xc326('0x44')]({},_0x37428c,_0x42c7b1[_0xc326('0x47')]);var _0x5115cd={'where':_0x37428c['where']};return db[_0xc326('0x32')][_0xc326('0x22')](_0x5115cd)[_0xc326('0x29')](function(_0x3ec512){_0xb38f15[_0xc326('0x22')]=_0x3ec512;if(_0x42c7b1[_0xc326('0x38')][_0xc326('0x48')]){_0x37428c[_0xc326('0x49')]=[{'all':!![]}];}return db[_0xc326('0x32')][_0xc326('0x4a')](_0x37428c);})[_0xc326('0x29')](function(_0x4b1ef3){_0xb38f15['rows']=_0x4b1ef3;return _0xb38f15;})[_0xc326('0x29')](respondWithFilteredResult(_0x5ac16b,_0x37428c))[_0xc326('0x4b')](handleError(_0x5ac16b,null));};exports[_0xc326('0x4c')]=function(_0x1b880a,_0x5dafae){var _0x5dd9cf={'raw':!![],'where':{'id':_0x1b880a[_0xc326('0x4d')]['id']}},_0x31c26a={};_0x31c26a[_0xc326('0x4e')]=_[_0xc326('0x37')](db['ChatInternalMessage'][_0xc326('0x33')]);_0x31c26a[_0xc326('0x38')]=_[_0xc326('0x37')](_0x1b880a[_0xc326('0x38')]);_0x31c26a['filters']=_[_0xc326('0x39')](_0x31c26a[_0xc326('0x4e')],_0x31c26a['query']);_0x5dd9cf[_0xc326('0x3a')]=_[_0xc326('0x39')](_0x31c26a[_0xc326('0x4e')],qs[_0xc326('0x3b')](_0x1b880a[_0xc326('0x38')][_0xc326('0x3b')]));_0x5dd9cf[_0xc326('0x3a')]=_0x5dd9cf[_0xc326('0x3a')][_0xc326('0x3c')]?_0x5dd9cf[_0xc326('0x3a')]:_0x31c26a['model'];if(_0x1b880a[_0xc326('0x38')]['includeAll']){_0x5dd9cf[_0xc326('0x49')]=[{'all':!![]}];}_0x5dd9cf=_[_0xc326('0x44')]({},_0x5dd9cf,_0x1b880a[_0xc326('0x47')]);return db[_0xc326('0x32')][_0xc326('0x4f')](_0x5dd9cf)['then'](handleEntityNotFound(_0x5dafae,null))[_0xc326('0x29')](respondWithResult(_0x5dafae,null))['catch'](handleError(_0x5dafae,null));};exports['create']=function(_0x3a0c97,_0x549a44){return db[_0xc326('0x32')][_0xc326('0x50')](_0x3a0c97['body'],{})[_0xc326('0x29')](respondWithResult(_0x549a44,0xc9))[_0xc326('0x4b')](handleError(_0x549a44,null));};exports[_0xc326('0x28')]=function(_0x3da64d,_0x5b2e8d){if(_0x3da64d[_0xc326('0x51')]['id']){delete _0x3da64d['body']['id'];}return db[_0xc326('0x32')]['find']({'where':{'id':_0x3da64d[_0xc326('0x4d')]['id']}})[_0xc326('0x29')](handleEntityNotFound(_0x5b2e8d,null))[_0xc326('0x29')](saveUpdates(_0x3da64d[_0xc326('0x51')],null))[_0xc326('0x29')](respondWithResult(_0x5b2e8d,null))[_0xc326('0x4b')](handleError(_0x5b2e8d,null));};exports[_0xc326('0x52')]=function(_0x4137c2,_0x38bf1f){return db[_0xc326('0x32')][_0xc326('0x4f')]({'where':{'id':_0x4137c2[_0xc326('0x4d')]['id']}})[_0xc326('0x29')](handleEntityNotFound(_0x38bf1f,null))[_0xc326('0x29')](removeEntity(_0x38bf1f,null))[_0xc326('0x4b')](handleError(_0x38bf1f,null));};exports['describe']=function(_0x571733,_0x64d584){return db[_0xc326('0x32')][_0xc326('0x53')]()[_0xc326('0x29')](respondWithResult(_0x64d584,null))[_0xc326('0x4b')](handleError(_0x64d584,null));};function wrapUser(_0x2b5686){return function(_0x4c2c32){var _0x5f09c7=_0x2b5686[_0xc326('0x54')]({'plain':!![]});_0x5f09c7[_0xc326('0x55')]=[];if(_0x4c2c32){_0x5f09c7[_0xc326('0x56')]=_0x4c2c32[_0xc326('0x57')];_0x5f09c7[_0xc326('0x58')]=_0x4c2c32;}else{_0x5f09c7[_0xc326('0x56')]=moment(0x0)[_0xc326('0x59')](_0xc326('0x5a'));_0x5f09c7[_0xc326('0x58')]={};}return _0x5f09c7;};}exports['getUsers']=function(_0x15f877,_0x5306f9,_0x2263a3){var _0x596686=[];return db['User']['findAll']({'where':{'role':['agent',_0xc326('0x5b'),_0xc326('0x5c')]},'attributes':['id',_0xc326('0x5d'),_0xc326('0x2e'),_0xc326('0x5e'),_0xc326('0x5f'),'internal','online',_0xc326('0x60'),'allowmessenger',_0xc326('0x61')],'order':qs['sort'](_0xc326('0x62')),'include':[{'model':db[_0xc326('0x63')],'as':_0xc326('0x64'),'attributes':['id',_0xc326('0x2e'),_0xc326('0x35')],'through':{'attributes':[]}}]})['then'](function(_0x52eed0){if(_0x52eed0){var _0x3cc200=_0x15f877[_0xc326('0x5c')][_0xc326('0x54')]({'plain':!![]});if(!_0x3cc200)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3cc200['role']===_0xc326('0x5c')){return db['UserProfileSection']['find']({'where':{'name':_0xc326('0x65'),'userProfileId':_0x3cc200[_0xc326('0x66')]},'raw':!![]})[_0xc326('0x29')](function(_0x24b9a4){if(_0x24b9a4){if(_0x24b9a4['autoAssociation']===0x0){return db['UserProfileResource'][_0xc326('0x4a')]({'where':{'sectionId':_0x24b9a4['id']},'raw':!![]})[_0xc326('0x29')](function(_0xfcf0d2){var _0x1340ea=[];if(_['isEmpty'](_0xfcf0d2)){_0x1340ea=_[_0xc326('0x46')](_0x52eed0,function(_0x5942d5){if(_0x5942d5[_0xc326('0x5e')]!=='agent'){return _0x5942d5;}});return _0x1340ea;}else{for(var _0x55f2f9=0x0;_0x55f2f9<_0x52eed0[_0xc326('0x3c')];_0x55f2f9++){var _0x4dba01=_0x52eed0[_0x55f2f9];if(_0x4dba01[_0xc326('0x5e')]===_0xc326('0x67')){var _0x1f1d9d=_[_0xc326('0x4f')](_0xfcf0d2,function(_0x1d7711){return _0x1d7711[_0xc326('0x68')]===_0x4dba01['id'];});if(_0x1f1d9d)_0x1340ea[_0xc326('0x69')](_0x4dba01);}else{_0x1340ea[_0xc326('0x69')](_0x4dba01);}}return _0x1340ea;}});}else{return _0x52eed0;}}else{var _0x2161bd=_['filter'](_0x52eed0,function(_0x1462df){if(_0x1462df[_0xc326('0x5e')]!=='agent'){return _0x1462df;}});return _0x2161bd;}});}else{return _0x52eed0;}}})['then'](function(_0x483dd4){var _0x127d09=[];if(_0x483dd4){_0x596686=_0x483dd4;for(var _0x26b51f=0x0;_0x26b51f<_0x483dd4[_0xc326('0x3c')];_0x26b51f+=0x1){_0x596686[_0x26b51f][_0xc326('0x55')]=[];_0x127d09[_0xc326('0x69')](db[_0xc326('0x32')][_0xc326('0x4f')]({'where':{'FromId':[_0x15f877[_0xc326('0x5c')]['id'],_0x483dd4[_0x26b51f]['id']],'ToId':[_0x15f877[_0xc326('0x5c')]['id'],_0x483dd4[_0x26b51f]['id']],'ChatGroupId':null},'attributes':['id',_0xc326('0x57'),'FromId',_0xc326('0x6a'),_0xc326('0x6b'),'body'],'order':qs[_0xc326('0x41')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0xc326('0x29')](wrapUser(_0x483dd4[_0x26b51f])));}return BPromise[_0xc326('0x6c')](_0x127d09);}return[];})['then'](function(_0x17fc00){return{'rows':_0x17fc00,'count':_0x17fc00[_0xc326('0x3c')]};})['then'](respondWithResult(_0x5306f9,null))[_0xc326('0x4b')](handleError(_0x5306f9,null));};