5bb19f33078c5eb6a6595a58d6c34d503c895a12
[motion2.git] / server / api / openchannelMessage / openchannelMessage.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 _0x1260=['OpenchannelMessage,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','destroy','stack','name','send','map','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','OpenchannelMessage','include','show','params','attributes','includeAll','find','create','body','update','../../config/logger','openchannel-interactions','openchannel','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','CmContact','Contact','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','interaction','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','stringify','acceptMessage','manual','interface','SIP/%s','channel','EventManager','acceptmessage','agent','get','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','RejectMessage','rejectMessage','event','rejectmessage','rimraf','zip-dir','request-promise','bluebird','mustache','sox','ejs','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../mysqldb','redis','defaults','./openchannelMessage.socket','register','jayson/promise','http','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x51cc1d,_0xaa88ae){var _0x2eb9f2=function(_0x1ca525){while(--_0x1ca525){_0x51cc1d['push'](_0x51cc1d['shift']());}};_0x2eb9f2(++_0xaa88ae);}(_0x1260,0x1c5));var _0x0126=function(_0x3c85e3,_0xbd72df){_0x3c85e3=_0x3c85e3-0x0;var _0x435198=_0x1260[_0x3c85e3];return _0x435198;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x0126('0x0'));var zipdir=require(_0x0126('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0126('0x2'));var moment=require('moment');var BPromise=require(_0x0126('0x3'));var Mustache=require(_0x0126('0x4'));var util=require('util');var path=require('path');var sox=require(_0x0126('0x5'));var csv=require('to-csv');var ejs=require(_0x0126('0x6'));var fs=require('fs');var _=require('lodash');var squel=require(_0x0126('0x7'));var crypto=require(_0x0126('0x8'));var jsforce=require(_0x0126('0x9'));var deskjs=require('desk.js');var toCsv=require(_0x0126('0xa'));var querystring=require(_0x0126('0xb'));var Papa=require(_0x0126('0xc'));var Redis=require(_0x0126('0xd'));var authService=require(_0x0126('0xe'));var qs=require(_0x0126('0xf'));var as=require(_0x0126('0x10'));var hardwareService=require(_0x0126('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0x0126('0x12'));var config=require('../../config/environment');var db=require(_0x0126('0x13'))['db'];config[_0x0126('0x14')]=_[_0x0126('0x15')](config[_0x0126('0x14')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x0126('0x14')]));require(_0x0126('0x16'))[_0x0126('0x17')](socket);var jayson=require(_0x0126('0x18'));var client=jayson['client'][_0x0126('0x19')]({'port':0x232c});var client9002=jayson['client'][_0x0126('0x19')]({'port':0x232a});function checkPasswordPattern(_0x4e9047,_0x4c71ab,_0x2e1c6a){if(_0x2e1c6a){var _0x4f2ff4=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x4f2ff4['test'](_0x4c71ab)){return _0x4e9047;}else{throw new db[(_0x0126('0x1a'))][(_0x0126('0x1b'))](_0x0126('0x1c'));}}else{return _0x4e9047;}}function respondWithRpcPromise(_0x5e7e08,_0x5185fd,_0x5c82ad,_0x21b8b9){return new BPromise(function(_0x2482fa,_0x21d044){var _0x42dbaa=_0x21b8b9||client;return _0x42dbaa[_0x0126('0x1d')](_0x5e7e08,_0x5c82ad)[_0x0126('0x1e')](function(_0x55da57){logger[_0x0126('0x1f')](_0x0126('0x20'),_0x5185fd,_0x0126('0x21'));logger[_0x0126('0x22')](_0x0126('0x23'),_0x5185fd,'request\x20sent',JSON['stringify'](_0x55da57));if(_0x55da57[_0x0126('0x24')]){if(_0x55da57[_0x0126('0x24')][_0x0126('0x25')]===0x1f4){logger[_0x0126('0x24')]('OpenchannelMessage,\x20%s,\x20%s',_0x5185fd,_0x55da57[_0x0126('0x24')][_0x0126('0x26')]);return _0x21d044(_0x55da57[_0x0126('0x24')][_0x0126('0x26')]);}logger[_0x0126('0x24')]('OpenchannelMessage,\x20%s,\x20%s',_0x5185fd,_0x55da57[_0x0126('0x24')][_0x0126('0x26')]);return _0x2482fa(_0x55da57['error'][_0x0126('0x26')]);}else{logger[_0x0126('0x1f')]('OpenchannelMessage,\x20%s,\x20%s',_0x5185fd,'request\x20sent');_0x2482fa(_0x55da57[_0x0126('0x27')][_0x0126('0x26')]);}})[_0x0126('0x28')](function(_0x4ac836){logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x5185fd,_0x4ac836);_0x21d044(_0x4ac836);});});}function respondWithStatusCode(_0x50cefa,_0x45467d){_0x45467d=_0x45467d||0xcc;return function(_0x5b944a){if(_0x5b944a){return _0x50cefa[_0x0126('0x29')](_0x45467d);}return _0x50cefa[_0x0126('0x2a')](_0x45467d)[_0x0126('0x2b')]();};}function respondWithResult(_0x3a7ea7,_0x39b4f0){_0x39b4f0=_0x39b4f0||0xc8;return function(_0x2976d8){if(_0x2976d8){return _0x3a7ea7['status'](_0x39b4f0)[_0x0126('0x2c')](_0x2976d8);}};}function respondWithFilteredResult(_0x1f43ed,_0x1f4ccd){return function(_0x561833){if(_0x561833){var _0x4a4943=_0x561833[_0x0126('0x2d')],_0xe975e2=_0x1f4ccd[_0x0126('0x2e')],_0x5e1946=_0x1f4ccd[_0x0126('0x2e')]+_0x1f4ccd[_0x0126('0x2f')],_0x2e2b2b;if(_0x5e1946>=_0x4a4943){_0x5e1946=_0x4a4943;_0x2e2b2b=0xc8;}else{_0x2e2b2b=0xce;}_0x1f43ed[_0x0126('0x2a')](_0x2e2b2b);return _0x1f43ed[_0x0126('0x30')](_0x0126('0x31'),_0xe975e2+'-'+_0x5e1946+'/'+_0x4a4943)['json'](_0x561833);}return null;};}function patchUpdates(_0x54f6bf){return function(_0x24425e){try{jsonpatch[_0x0126('0x32')](_0x24425e,_0x54f6bf,!![]);}catch(_0x582fe3){return BPromise[_0x0126('0x33')](_0x582fe3);}return _0x24425e[_0x0126('0x34')]();};}function saveUpdates(_0x32351d,_0x285d90){return function(_0x5248dd){if(_0x5248dd){return _0x5248dd['update'](_0x32351d)[_0x0126('0x1e')](function(_0x518368){return _0x518368;});}return null;};}function removeEntity(_0x37f75e,_0xd3f7f6){return function(_0xfb6518){if(_0xfb6518){return _0xfb6518[_0x0126('0x35')]()[_0x0126('0x1e')](function(){_0x37f75e['status'](0xcc)[_0x0126('0x2b')]();});}};}function handleEntityNotFound(_0x2cc79b,_0x5876a9){return function(_0x4c47aa){if(!_0x4c47aa){_0x2cc79b[_0x0126('0x29')](0x194);}return _0x4c47aa;};}function handleError(_0x132f74,_0x4b1845){_0x4b1845=_0x4b1845||0x1f4;return function(_0x12d088){logger[_0x0126('0x24')](_0x12d088[_0x0126('0x36')]);if(_0x12d088[_0x0126('0x37')]){delete _0x12d088[_0x0126('0x37')];}_0x132f74[_0x0126('0x2a')](_0x4b1845)[_0x0126('0x38')](_0x12d088);};}exports['index']=function(_0x15e026,_0x1cd0bc){var _0x8be0a={},_0x446083={},_0x1d2366={'count':0x0,'rows':[]};var _0x326217=_[_0x0126('0x39')](db['OpenchannelMessage'][_0x0126('0x3a')],function(_0x8618a0){return{'name':_0x8618a0[_0x0126('0x3b')],'type':_0x8618a0[_0x0126('0x3c')]['key']};});_0x446083[_0x0126('0x3d')]=_['map'](_0x326217,'name');_0x446083[_0x0126('0x3e')]=_[_0x0126('0x3f')](_0x15e026[_0x0126('0x3e')]);_0x446083[_0x0126('0x40')]=_[_0x0126('0x41')](_0x446083[_0x0126('0x3d')],_0x446083[_0x0126('0x3e')]);_0x8be0a['attributes']=_[_0x0126('0x41')](_0x446083[_0x0126('0x3d')],qs[_0x0126('0x42')](_0x15e026['query'][_0x0126('0x42')]));_0x8be0a['attributes']=_0x8be0a['attributes'][_0x0126('0x43')]?_0x8be0a['attributes']:_0x446083[_0x0126('0x3d')];if(!_0x15e026[_0x0126('0x3e')][_0x0126('0x44')](_0x0126('0x45'))){_0x8be0a[_0x0126('0x2f')]=qs[_0x0126('0x2f')](_0x15e026[_0x0126('0x3e')][_0x0126('0x2f')]);_0x8be0a[_0x0126('0x2e')]=qs[_0x0126('0x2e')](_0x15e026['query'][_0x0126('0x2e')]);}_0x8be0a[_0x0126('0x46')]=qs[_0x0126('0x47')](_0x15e026['query'][_0x0126('0x47')]);_0x8be0a[_0x0126('0x48')]=qs[_0x0126('0x40')](_[_0x0126('0x49')](_0x15e026[_0x0126('0x3e')],_0x446083[_0x0126('0x40')]));if(_0x15e026['query'][_0x0126('0x4a')]){_0x8be0a[_0x0126('0x48')]=_[_0x0126('0x4b')](_0x8be0a[_0x0126('0x48')],{'$or':_['map'](_0x326217,function(_0x794231){if(_0x794231['type']!==_0x0126('0x4c')){var _0x28a86e={};_0x28a86e[_0x794231['name']]={'$like':'%'+_0x15e026[_0x0126('0x3e')][_0x0126('0x4a')]+'%'};return _0x28a86e;}})});}_0x8be0a=_[_0x0126('0x4b')]({},_0x8be0a,_0x15e026[_0x0126('0x4d')]);var _0xf77317={'where':_0x8be0a[_0x0126('0x48')]};return db[_0x0126('0x4e')]['count'](_0xf77317)[_0x0126('0x1e')](function(_0x3e81d7){_0x1d2366[_0x0126('0x2d')]=_0x3e81d7;if(_0x15e026['query']['includeAll']){_0x8be0a[_0x0126('0x4f')]=[{'all':!![]}];}return db[_0x0126('0x4e')]['findAll'](_0x8be0a);})[_0x0126('0x1e')](function(_0x426b28){_0x1d2366['rows']=_0x426b28;return _0x1d2366;})[_0x0126('0x1e')](respondWithFilteredResult(_0x1cd0bc,_0x8be0a))[_0x0126('0x28')](handleError(_0x1cd0bc,null));};exports[_0x0126('0x50')]=function(_0x4ad9d2,_0x191f99){var _0x5aba46={'raw':!![],'where':{'id':_0x4ad9d2[_0x0126('0x51')]['id']}},_0x4560b0={};_0x4560b0[_0x0126('0x3d')]=_['keys'](db['OpenchannelMessage'][_0x0126('0x3a')]);_0x4560b0['query']=_[_0x0126('0x3f')](_0x4ad9d2[_0x0126('0x3e')]);_0x4560b0[_0x0126('0x40')]=_['intersection'](_0x4560b0[_0x0126('0x3d')],_0x4560b0['query']);_0x5aba46[_0x0126('0x52')]=_[_0x0126('0x41')](_0x4560b0[_0x0126('0x3d')],qs[_0x0126('0x42')](_0x4ad9d2[_0x0126('0x3e')][_0x0126('0x42')]));_0x5aba46[_0x0126('0x52')]=_0x5aba46[_0x0126('0x52')][_0x0126('0x43')]?_0x5aba46[_0x0126('0x52')]:_0x4560b0[_0x0126('0x3d')];if(_0x4ad9d2[_0x0126('0x3e')][_0x0126('0x53')]){_0x5aba46[_0x0126('0x4f')]=[{'all':!![]}];}_0x5aba46=_[_0x0126('0x4b')]({},_0x5aba46,_0x4ad9d2['options']);return db['OpenchannelMessage'][_0x0126('0x54')](_0x5aba46)[_0x0126('0x1e')](handleEntityNotFound(_0x191f99,null))[_0x0126('0x1e')](respondWithResult(_0x191f99,null))[_0x0126('0x28')](handleError(_0x191f99,null));};exports[_0x0126('0x55')]=function(_0x58853d,_0x1eed85){return db[_0x0126('0x4e')][_0x0126('0x55')](_0x58853d[_0x0126('0x56')],{})[_0x0126('0x1e')](respondWithResult(_0x1eed85,0xc9))[_0x0126('0x28')](handleError(_0x1eed85,null));};exports[_0x0126('0x57')]=function(_0x4cdc3b,_0x24dfc1){if(_0x4cdc3b['body']['id']){delete _0x4cdc3b['body']['id'];}return db['OpenchannelMessage'][_0x0126('0x54')]({'where':{'id':_0x4cdc3b[_0x0126('0x51')]['id']}})[_0x0126('0x1e')](handleEntityNotFound(_0x24dfc1,null))['then'](saveUpdates(_0x4cdc3b['body'],null))[_0x0126('0x1e')](respondWithResult(_0x24dfc1,null))[_0x0126('0x28')](handleError(_0x24dfc1,null));};exports[_0x0126('0x35')]=function(_0x5c3fef,_0x3210cb){return db[_0x0126('0x4e')][_0x0126('0x54')]({'where':{'id':_0x5c3fef[_0x0126('0x51')]['id']}})[_0x0126('0x1e')](handleEntityNotFound(_0x3210cb,null))[_0x0126('0x1e')](removeEntity(_0x3210cb,null))[_0x0126('0x28')](handleError(_0x3210cb,null));};exports['describe']=function(_0x151bc5,_0x130677){return db[_0x0126('0x4e')]['describe']()[_0x0126('0x1e')](respondWithResult(_0x130677,null))[_0x0126('0x28')](handleError(_0x130677,null));};var interaction_log=require(_0x0126('0x58'))(_0x0126('0x59'));exports['accept']=function(_0x410c4a,_0x286672,_0x4ffb37){var _0x12c620={'channel':_0x0126('0x5a')};if(_0x410c4a['body']['id']){delete _0x410c4a['body']['id'];}_0x410c4a[_0x0126('0x56')][_0x0126('0x5b')]=!![];_0x410c4a['body'][_0x0126('0x5c')]=moment()[_0x0126('0x5d')](_0x0126('0x5e'));_0x410c4a[_0x0126('0x56')][_0x0126('0x5f')]=_0x410c4a[_0x0126('0x56')][_0x0126('0x5f')]||_0x410c4a['user']['id'];return db[_0x0126('0x4e')][_0x0126('0x54')]({'where':{'id':_0x410c4a['params']['id'],'UserId':null},'include':[{'model':db[_0x0126('0x60')],'as':_0x0126('0x61')}]})[_0x0126('0x1e')](handleEntityNotFound(_0x286672,null))[_0x0126('0x1e')](saveUpdates(_0x410c4a['body'],null))[_0x0126('0x1e')](function(_0x238fab){if(_0x238fab){_0x12c620[_0x0126('0x26')]=_0x238fab['get']({'plain':!![]});return db[_0x0126('0x62')][_0x0126('0x54')]({'where':{'id':_0x238fab[_0x0126('0x63')]}});}return null;})['then'](handleEntityNotFound(_0x286672,null))[_0x0126('0x1e')](function(_0x24d976){if(_0x24d976){return _0x24d976[_0x0126('0x57')]({'UserId':_0x410c4a[_0x0126('0x56')]['UserId'],'read1stAt':_[_0x0126('0x64')](_0x24d976[_0x0126('0x65')])?moment()[_0x0126('0x5d')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x0126('0x1e')](function(_0x3013b6){if(_0x3013b6){_0x12c620[_0x0126('0x66')]=_0x3013b6['get']({'plain':!![]});interaction_log[_0x0126('0x1f')](_0x0126('0x67'),_0x410c4a[_0x0126('0x68')]['id'],_0x410c4a[_0x0126('0x68')][_0x0126('0x37')],_0x410c4a[_0x0126('0x68')][_0x0126('0x69')],_0x12c620[_0x0126('0x66')]['id'],_0x410c4a['body']?JSON[_0x0126('0x6a')](_0x410c4a[_0x0126('0x56')]):'null');return respondWithRpcPromise('AcceptMessage',_0x0126('0x6b'),_0x12c620);}return null;})[_0x0126('0x1e')](function(_0x3248a3){if(_0x3248a3){if(_0x410c4a[_0x0126('0x56')][_0x0126('0x6c')]){_0x12c620[_0x0126('0x26')][_0x0126('0x6d')]=util[_0x0126('0x5d')](_0x0126('0x6e'),_0x410c4a[_0x0126('0x68')]['name']);_0x12c620[_0x0126('0x26')][_0x0126('0x6f')]=_0x12c620[_0x0126('0x6f')];_0x12c620[_0x0126('0x26')]['event']='accept';return respondWithRpcPromise(_0x0126('0x70'),_0x0126('0x70'),{'event':_0x0126('0x71'),'message':_0x12c620['message']},client9002)[_0x0126('0x1e')](function(){return _0x12c620;});}return _0x12c620;}return null;})[_0x0126('0x1e')](respondWithResult(_0x286672,null))[_0x0126('0x28')](handleError(_0x286672,null));};var interaction_log=require('../../config/logger')(_0x0126('0x59'));exports['reject']=function(_0x5eceed,_0x1ebceb,_0x7fed80){var _0x56fc15={'agent':{},'channel':'openchannel'};if(_0x5eceed[_0x0126('0x56')]['id']){delete _0x5eceed[_0x0126('0x56')]['id'];}_0x5eceed[_0x0126('0x56')][_0x0126('0x5f')]=_0x5eceed[_0x0126('0x56')][_0x0126('0x5f')]||_0x5eceed['user']['id'];_0x56fc15[_0x0126('0x72')]['id']=_0x5eceed[_0x0126('0x56')]['UserId'];return db[_0x0126('0x4e')][_0x0126('0x54')]({'where':{'id':_0x5eceed[_0x0126('0x51')]['id'],'UserId':null}})[_0x0126('0x1e')](handleEntityNotFound(_0x1ebceb,null))[_0x0126('0x1e')](function(_0x56d7cb){if(_0x56d7cb){_0x56fc15[_0x0126('0x26')]=_0x56d7cb[_0x0126('0x73')]({'plain':!![]});return db[_0x0126('0x62')][_0x0126('0x54')]({'where':{'id':_0x56d7cb[_0x0126('0x63')]}});}return null;})[_0x0126('0x1e')](handleEntityNotFound(_0x1ebceb,null))[_0x0126('0x1e')](function(_0x58d2f4){if(_0x58d2f4){_0x56fc15[_0x0126('0x66')]=_0x58d2f4['get']({'plain':!![]});interaction_log['info'](_0x0126('0x74'),_0x5eceed[_0x0126('0x68')]['id'],_0x5eceed[_0x0126('0x68')][_0x0126('0x37')],_0x5eceed['user']['role'],_0x56fc15[_0x0126('0x66')]['id'],_0x5eceed[_0x0126('0x56')]?JSON[_0x0126('0x6a')](_0x5eceed[_0x0126('0x56')]):_0x0126('0x75'));return respondWithRpcPromise(_0x0126('0x76'),_0x0126('0x77'),_0x56fc15);}return null;})[_0x0126('0x1e')](function(_0x2b3b8e){if(_0x2b3b8e){_0x2b3b8e['message'][_0x0126('0x6d')]=util[_0x0126('0x5d')](_0x0126('0x6e'),_0x5eceed[_0x0126('0x68')][_0x0126('0x37')]);_0x2b3b8e[_0x0126('0x26')][_0x0126('0x6f')]=_0x56fc15[_0x0126('0x6f')];_0x2b3b8e['message'][_0x0126('0x78')]=_0x0126('0x33');respondWithRpcPromise(_0x0126('0x70'),_0x0126('0x70'),{'event':_0x0126('0x79'),'message':_0x2b3b8e[_0x0126('0x26')]},client9002);return _0x56fc15;}return null;})[_0x0126('0x1e')](respondWithResult(_0x1ebceb,null))['catch'](handleError(_0x1ebceb,null));};