Built motion from commit (unavailable).|2.5.4
[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 _0x5163=['readAt','UserId','CmContact','get','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','format','YYYY-MM-DD\x20HH:mm:ss','interaction','user','stringify','null','AcceptMessage','acceptMessage','manual','interface','channel','event','EventManager','acceptmessage','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','rejectMessage','SIP/%s','rejectmessage','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','ejs','lodash','squel','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','jayson/promise','client','http','test','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','error','code','message','catch','status','end','json','count','offset','set','Content-Range','apply','reject','save','destroy','sendStatus','stack','name','send','index','map','rawAttributes','type','key','keys','query','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','limit','sort','where','pick','filter','merge','VIRTUAL','options','OpenchannelMessage','includeAll','include','findAll','rows','show','params','find','create','body','update','describe','openchannel-interactions','accept','openchannel'];(function(_0x567f0e,_0x2be7a0){var _0x15aca8=function(_0x1e6ca6){while(--_0x1e6ca6){_0x567f0e['push'](_0x567f0e['shift']());}};_0x15aca8(++_0x2be7a0);}(_0x5163,0x96));var _0x3516=function(_0x7de0cb,_0x4dee18){_0x7de0cb=_0x7de0cb-0x0;var _0x271be6=_0x5163[_0x7de0cb];return _0x271be6;};'use strict';var pdf=require(_0x3516('0x0'));var emlformat=require(_0x3516('0x1'));var rimraf=require(_0x3516('0x2'));var zipdir=require(_0x3516('0x3'));var jsonpatch=require(_0x3516('0x4'));var rp=require(_0x3516('0x5'));var moment=require(_0x3516('0x6'));var BPromise=require('bluebird');var Mustache=require(_0x3516('0x7'));var util=require('util');var path=require(_0x3516('0x8'));var sox=require(_0x3516('0x9'));var csv=require(_0x3516('0xa'));var ejs=require(_0x3516('0xb'));var fs=require('fs');var _=require(_0x3516('0xc'));var squel=require(_0x3516('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x3516('0xe'));var toCsv=require(_0x3516('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x3516('0xf'));var authService=require(_0x3516('0x10'));var qs=require(_0x3516('0x11'));var as=require(_0x3516('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3516('0x13'))('api');var utils=require(_0x3516('0x14'));var config=require(_0x3516('0x15'));var db=require(_0x3516('0x16'))['db'];config['redis']=_[_0x3516('0x17')](config[_0x3516('0x18')],{'host':_0x3516('0x19'),'port':0x18eb});var socket=require(_0x3516('0x1a'))(new Redis(config[_0x3516('0x18')]));require('./openchannelMessage.socket')[_0x3516('0x1b')](socket);var jayson=require(_0x3516('0x1c'));var client=jayson[_0x3516('0x1d')][_0x3516('0x1e')]({'port':0x232c});var client9002=jayson[_0x3516('0x1d')][_0x3516('0x1e')]({'port':0x232a});function checkPasswordPattern(_0x439e31,_0x4f4f5f,_0x411ecd){if(_0x411ecd){var _0x4b6a5f=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x4b6a5f[_0x3516('0x1f')](_0x4f4f5f)){return _0x439e31;}else{throw new db['Sequelize'][(_0x3516('0x20'))](_0x3516('0x21'));}}else{return _0x439e31;}}function respondWithRpcPromise(_0x31b62b,_0x2329a8,_0x5782b3,_0x229df2){return new BPromise(function(_0x4ec30d,_0x26e0a7){var _0x656f01=_0x229df2||client;return _0x656f01[_0x3516('0x22')](_0x31b62b,_0x5782b3)[_0x3516('0x23')](function(_0xfda7ad){logger[_0x3516('0x24')](_0x3516('0x25'),_0x2329a8,_0x3516('0x26'));logger['debug']('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x2329a8,_0x3516('0x26'),JSON['stringify'](_0xfda7ad));if(_0xfda7ad[_0x3516('0x27')]){if(_0xfda7ad['error'][_0x3516('0x28')]===0x1f4){logger['error'](_0x3516('0x25'),_0x2329a8,_0xfda7ad[_0x3516('0x27')][_0x3516('0x29')]);return _0x26e0a7(_0xfda7ad['error']['message']);}logger[_0x3516('0x27')](_0x3516('0x25'),_0x2329a8,_0xfda7ad[_0x3516('0x27')][_0x3516('0x29')]);return _0x4ec30d(_0xfda7ad['error'][_0x3516('0x29')]);}else{logger[_0x3516('0x24')](_0x3516('0x25'),_0x2329a8,'request\x20sent');_0x4ec30d(_0xfda7ad['result'][_0x3516('0x29')]);}})[_0x3516('0x2a')](function(_0x2a4e52){logger[_0x3516('0x27')]('OpenchannelMessage,\x20%s,\x20%s',_0x2329a8,_0x2a4e52);_0x26e0a7(_0x2a4e52);});});}function respondWithStatusCode(_0x2babcb,_0x73eb7a){_0x73eb7a=_0x73eb7a||0xcc;return function(_0x5843af){if(_0x5843af){return _0x2babcb['sendStatus'](_0x73eb7a);}return _0x2babcb[_0x3516('0x2b')](_0x73eb7a)[_0x3516('0x2c')]();};}function respondWithResult(_0x2fa495,_0x1feca5){_0x1feca5=_0x1feca5||0xc8;return function(_0x3436b5){if(_0x3436b5){return _0x2fa495['status'](_0x1feca5)[_0x3516('0x2d')](_0x3436b5);}};}function respondWithFilteredResult(_0x2d2cf6,_0x5e1b42){return function(_0x52bcd9){if(_0x52bcd9){var _0x58c681=_0x52bcd9[_0x3516('0x2e')],_0x268467=_0x5e1b42[_0x3516('0x2f')],_0x52d96a=_0x5e1b42[_0x3516('0x2f')]+_0x5e1b42['limit'],_0x13f2a0;if(_0x52d96a>=_0x58c681){_0x52d96a=_0x58c681;_0x13f2a0=0xc8;}else{_0x13f2a0=0xce;}_0x2d2cf6[_0x3516('0x2b')](_0x13f2a0);return _0x2d2cf6[_0x3516('0x30')](_0x3516('0x31'),_0x268467+'-'+_0x52d96a+'/'+_0x58c681)[_0x3516('0x2d')](_0x52bcd9);}return null;};}function patchUpdates(_0x25c60d){return function(_0x40d0aa){try{jsonpatch[_0x3516('0x32')](_0x40d0aa,_0x25c60d,!![]);}catch(_0x59e9a0){return BPromise[_0x3516('0x33')](_0x59e9a0);}return _0x40d0aa[_0x3516('0x34')]();};}function saveUpdates(_0x54d21e,_0x3ea27e){return function(_0x217d4a){if(_0x217d4a){return _0x217d4a['update'](_0x54d21e)[_0x3516('0x23')](function(_0x56984f){return _0x56984f;});}return null;};}function removeEntity(_0x595e99,_0x2c49ed){return function(_0x5a3667){if(_0x5a3667){return _0x5a3667[_0x3516('0x35')]()[_0x3516('0x23')](function(){_0x595e99[_0x3516('0x2b')](0xcc)[_0x3516('0x2c')]();});}};}function handleEntityNotFound(_0x452ef1,_0x2482db){return function(_0x48b2aa){if(!_0x48b2aa){_0x452ef1[_0x3516('0x36')](0x194);}return _0x48b2aa;};}function handleError(_0x1abbba,_0x10f24c){_0x10f24c=_0x10f24c||0x1f4;return function(_0x45f88d){logger[_0x3516('0x27')](_0x45f88d[_0x3516('0x37')]);if(_0x45f88d['name']){delete _0x45f88d[_0x3516('0x38')];}_0x1abbba[_0x3516('0x2b')](_0x10f24c)[_0x3516('0x39')](_0x45f88d);};}exports[_0x3516('0x3a')]=function(_0x39e454,_0x2f796b){var _0x529bcc={},_0x4f486b={},_0x341f81={'count':0x0,'rows':[]};var _0x2a14e6=_[_0x3516('0x3b')](db['OpenchannelMessage'][_0x3516('0x3c')],function(_0x41a240){return{'name':_0x41a240['fieldName'],'type':_0x41a240[_0x3516('0x3d')][_0x3516('0x3e')]};});_0x4f486b['model']=_['map'](_0x2a14e6,_0x3516('0x38'));_0x4f486b['query']=_[_0x3516('0x3f')](_0x39e454[_0x3516('0x40')]);_0x4f486b[_0x3516('0x41')]=_[_0x3516('0x42')](_0x4f486b['model'],_0x4f486b['query']);_0x529bcc[_0x3516('0x43')]=_[_0x3516('0x42')](_0x4f486b[_0x3516('0x44')],qs[_0x3516('0x45')](_0x39e454[_0x3516('0x40')][_0x3516('0x45')]));_0x529bcc['attributes']=_0x529bcc[_0x3516('0x43')][_0x3516('0x46')]?_0x529bcc[_0x3516('0x43')]:_0x4f486b[_0x3516('0x44')];if(!_0x39e454[_0x3516('0x40')][_0x3516('0x47')](_0x3516('0x48'))){_0x529bcc[_0x3516('0x49')]=qs[_0x3516('0x49')](_0x39e454[_0x3516('0x40')][_0x3516('0x49')]);_0x529bcc[_0x3516('0x2f')]=qs[_0x3516('0x2f')](_0x39e454[_0x3516('0x40')]['offset']);}_0x529bcc['order']=qs['sort'](_0x39e454[_0x3516('0x40')][_0x3516('0x4a')]);_0x529bcc[_0x3516('0x4b')]=qs['filters'](_[_0x3516('0x4c')](_0x39e454[_0x3516('0x40')],_0x4f486b[_0x3516('0x41')]),_0x2a14e6);if(_0x39e454[_0x3516('0x40')][_0x3516('0x4d')]){_0x529bcc[_0x3516('0x4b')]=_[_0x3516('0x4e')](_0x529bcc[_0x3516('0x4b')],{'$or':_['map'](_0x2a14e6,function(_0x391b3a){if(_0x391b3a[_0x3516('0x3d')]!==_0x3516('0x4f')){var _0x3d5a64={};_0x3d5a64[_0x391b3a[_0x3516('0x38')]]={'$like':'%'+_0x39e454['query'][_0x3516('0x4d')]+'%'};return _0x3d5a64;}})});}_0x529bcc=_[_0x3516('0x4e')]({},_0x529bcc,_0x39e454[_0x3516('0x50')]);var _0x4ce815={'where':_0x529bcc[_0x3516('0x4b')]};return db[_0x3516('0x51')][_0x3516('0x2e')](_0x4ce815)[_0x3516('0x23')](function(_0x410733){_0x341f81[_0x3516('0x2e')]=_0x410733;if(_0x39e454[_0x3516('0x40')][_0x3516('0x52')]){_0x529bcc[_0x3516('0x53')]=[{'all':!![]}];}return db[_0x3516('0x51')][_0x3516('0x54')](_0x529bcc);})[_0x3516('0x23')](function(_0x1765d1){_0x341f81[_0x3516('0x55')]=_0x1765d1;return _0x341f81;})[_0x3516('0x23')](respondWithFilteredResult(_0x2f796b,_0x529bcc))[_0x3516('0x2a')](handleError(_0x2f796b,null));};exports[_0x3516('0x56')]=function(_0x20a209,_0x5a78ad){var _0x26d566={'raw':!![],'where':{'id':_0x20a209[_0x3516('0x57')]['id']}},_0x53dd12={};_0x53dd12[_0x3516('0x44')]=_[_0x3516('0x3f')](db[_0x3516('0x51')][_0x3516('0x3c')]);_0x53dd12[_0x3516('0x40')]=_[_0x3516('0x3f')](_0x20a209[_0x3516('0x40')]);_0x53dd12[_0x3516('0x41')]=_[_0x3516('0x42')](_0x53dd12[_0x3516('0x44')],_0x53dd12['query']);_0x26d566['attributes']=_[_0x3516('0x42')](_0x53dd12['model'],qs[_0x3516('0x45')](_0x20a209[_0x3516('0x40')][_0x3516('0x45')]));_0x26d566[_0x3516('0x43')]=_0x26d566[_0x3516('0x43')][_0x3516('0x46')]?_0x26d566[_0x3516('0x43')]:_0x53dd12['model'];if(_0x20a209[_0x3516('0x40')][_0x3516('0x52')]){_0x26d566[_0x3516('0x53')]=[{'all':!![]}];}_0x26d566=_[_0x3516('0x4e')]({},_0x26d566,_0x20a209[_0x3516('0x50')]);return db[_0x3516('0x51')][_0x3516('0x58')](_0x26d566)[_0x3516('0x23')](handleEntityNotFound(_0x5a78ad,null))[_0x3516('0x23')](respondWithResult(_0x5a78ad,null))[_0x3516('0x2a')](handleError(_0x5a78ad,null));};exports[_0x3516('0x59')]=function(_0x287a07,_0x15a6e5){return db[_0x3516('0x51')][_0x3516('0x59')](_0x287a07[_0x3516('0x5a')],{})[_0x3516('0x23')](respondWithResult(_0x15a6e5,0xc9))[_0x3516('0x2a')](handleError(_0x15a6e5,null));};exports[_0x3516('0x5b')]=function(_0x237c94,_0x53be30){if(_0x237c94['body']['id']){delete _0x237c94[_0x3516('0x5a')]['id'];}return db[_0x3516('0x51')]['find']({'where':{'id':_0x237c94[_0x3516('0x57')]['id']}})['then'](handleEntityNotFound(_0x53be30,null))[_0x3516('0x23')](saveUpdates(_0x237c94[_0x3516('0x5a')],null))['then'](respondWithResult(_0x53be30,null))[_0x3516('0x2a')](handleError(_0x53be30,null));};exports[_0x3516('0x35')]=function(_0x44fdc8,_0x1f6fbf){return db['OpenchannelMessage']['find']({'where':{'id':_0x44fdc8[_0x3516('0x57')]['id']}})['then'](handleEntityNotFound(_0x1f6fbf,null))['then'](removeEntity(_0x1f6fbf,null))[_0x3516('0x2a')](handleError(_0x1f6fbf,null));};exports[_0x3516('0x5c')]=function(_0x7e7ac5,_0x33d3ca){return db[_0x3516('0x51')][_0x3516('0x5c')]()[_0x3516('0x23')](respondWithResult(_0x33d3ca,null))['catch'](handleError(_0x33d3ca,null));};var interaction_log=require('../../config/logger')(_0x3516('0x5d'));exports[_0x3516('0x5e')]=function(_0x188803,_0x3d8c20,_0x3b610e){var _0x1f5449={'channel':_0x3516('0x5f')};if(_0x188803[_0x3516('0x5a')]['id']){delete _0x188803['body']['id'];}_0x188803['body']['read']=!![];_0x188803[_0x3516('0x5a')][_0x3516('0x60')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x188803[_0x3516('0x5a')][_0x3516('0x61')]=_0x188803[_0x3516('0x5a')][_0x3516('0x61')]||_0x188803['user']['id'];return db[_0x3516('0x51')][_0x3516('0x58')]({'where':{'id':_0x188803[_0x3516('0x57')]['id'],'UserId':null},'include':[{'model':db[_0x3516('0x62')],'as':'Contact'}]})[_0x3516('0x23')](handleEntityNotFound(_0x3d8c20,null))[_0x3516('0x23')](saveUpdates(_0x188803[_0x3516('0x5a')],null))[_0x3516('0x23')](function(_0x1a0456){if(_0x1a0456){_0x1f5449[_0x3516('0x29')]=_0x1a0456[_0x3516('0x63')]({'plain':!![]});return db[_0x3516('0x64')][_0x3516('0x58')]({'where':{'id':_0x1a0456[_0x3516('0x65')]}});}return null;})[_0x3516('0x23')](handleEntityNotFound(_0x3d8c20,null))[_0x3516('0x23')](function(_0x16a4f4){if(_0x16a4f4){return _0x16a4f4[_0x3516('0x5b')]({'UserId':_0x188803['body']['UserId'],'read1stAt':_[_0x3516('0x66')](_0x16a4f4[_0x3516('0x67')])?moment()[_0x3516('0x68')](_0x3516('0x69')):undefined});}return null;})[_0x3516('0x23')](function(_0x7c217e){if(_0x7c217e){_0x1f5449[_0x3516('0x6a')]=_0x7c217e['get']({'plain':!![]});interaction_log['info']('[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x188803[_0x3516('0x6b')]['id'],_0x188803[_0x3516('0x6b')]['name'],_0x188803['user']['role'],_0x1f5449[_0x3516('0x6a')]['id'],_0x188803[_0x3516('0x5a')]?JSON[_0x3516('0x6c')](_0x188803[_0x3516('0x5a')]):_0x3516('0x6d'));return respondWithRpcPromise(_0x3516('0x6e'),_0x3516('0x6f'),_0x1f5449);}return null;})[_0x3516('0x23')](function(_0x9eb212){if(_0x9eb212){if(_0x188803['body'][_0x3516('0x70')]){_0x1f5449[_0x3516('0x29')][_0x3516('0x71')]=util['format']('SIP/%s',_0x188803['user'][_0x3516('0x38')]);_0x1f5449[_0x3516('0x29')][_0x3516('0x72')]=_0x1f5449[_0x3516('0x72')];_0x1f5449[_0x3516('0x29')][_0x3516('0x73')]=_0x3516('0x5e');return respondWithRpcPromise(_0x3516('0x74'),_0x3516('0x74'),{'event':_0x3516('0x75'),'message':_0x1f5449[_0x3516('0x29')]},client9002)[_0x3516('0x23')](function(){return _0x1f5449;});}return _0x1f5449;}return null;})[_0x3516('0x23')](respondWithResult(_0x3d8c20,null))[_0x3516('0x2a')](handleError(_0x3d8c20,null));};var interaction_log=require(_0x3516('0x13'))(_0x3516('0x5d'));exports[_0x3516('0x33')]=function(_0x1363a8,_0x255dfb,_0x33750a){var _0x5c0883={'agent':{},'channel':_0x3516('0x5f')};if(_0x1363a8['body']['id']){delete _0x1363a8[_0x3516('0x5a')]['id'];}_0x1363a8[_0x3516('0x5a')][_0x3516('0x61')]=_0x1363a8['body']['UserId']||_0x1363a8[_0x3516('0x6b')]['id'];_0x5c0883['agent']['id']=_0x1363a8[_0x3516('0x5a')][_0x3516('0x61')];return db[_0x3516('0x51')]['find']({'where':{'id':_0x1363a8[_0x3516('0x57')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x255dfb,null))[_0x3516('0x23')](function(_0x123df7){if(_0x123df7){_0x5c0883['message']=_0x123df7[_0x3516('0x63')]({'plain':!![]});return db[_0x3516('0x64')][_0x3516('0x58')]({'where':{'id':_0x123df7[_0x3516('0x65')]}});}return null;})[_0x3516('0x23')](handleEntityNotFound(_0x255dfb,null))[_0x3516('0x23')](function(_0x48fc31){if(_0x48fc31){_0x5c0883['interaction']=_0x48fc31['get']({'plain':!![]});interaction_log[_0x3516('0x24')](_0x3516('0x76'),_0x1363a8[_0x3516('0x6b')]['id'],_0x1363a8['user']['name'],_0x1363a8['user'][_0x3516('0x77')],_0x5c0883['interaction']['id'],_0x1363a8['body']?JSON[_0x3516('0x6c')](_0x1363a8[_0x3516('0x5a')]):_0x3516('0x6d'));return respondWithRpcPromise('RejectMessage',_0x3516('0x78'),_0x5c0883);}return null;})[_0x3516('0x23')](function(_0x46de35){if(_0x46de35){_0x46de35[_0x3516('0x29')][_0x3516('0x71')]=util[_0x3516('0x68')](_0x3516('0x79'),_0x1363a8[_0x3516('0x6b')][_0x3516('0x38')]);_0x46de35[_0x3516('0x29')][_0x3516('0x72')]=_0x5c0883[_0x3516('0x72')];_0x46de35[_0x3516('0x29')][_0x3516('0x73')]='reject';respondWithRpcPromise('EventManager',_0x3516('0x74'),{'event':_0x3516('0x7a'),'message':_0x46de35[_0x3516('0x29')]},client9002);return _0x5c0883;}return null;})[_0x3516('0x23')](respondWithResult(_0x255dfb,null))[_0x3516('0x2a')](handleError(_0x255dfb,null));};