Built motion from commit (unavailable).|2.5.4
[motion2.git] / server / api / intDeskAccount / intDeskAccount.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 _0xba54=['../../mysqldb','../../components/integrations/configuration','client','Sequelize','ValidationError','request','then','info','DeskAccount,\x20%s,\x20%s','debug','DeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','sendStatus','end','status','json','count','offset','reject','save','update','name','map','DeskAccount','fieldName','type','query','intersection','model','attributes','fields','hasOwnProperty','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','params','keys','length','includeAll','find','create','body','getConfigurations','findOne','DeskConfiguration','rawAttributes','limit','AccountId','Subjects','getSubjects','channel','DeskField','Descriptions','getFields','username','password','consumerSecret','token','tokenSecret','remoteUri','slice','format','application/json','authType','basic','headers','Authorization','%s:%s','toString','_embedded','entries','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','send','eml-format','rimraf','zip-dir','request-promise','bluebird','path','to-csv','ejs','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment'];(function(_0x53c618,_0x11a025){var _0x44f7cf=function(_0x392302){while(--_0x392302){_0x53c618['push'](_0x53c618['shift']());}};_0x44f7cf(++_0x11a025);}(_0xba54,0xcb));var _0x4ba5=function(_0x4cf47b,_0x1dc801){_0x4cf47b=_0x4cf47b-0x0;var _0x1e7ecb=_0xba54[_0x4cf47b];return _0x1e7ecb;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x4ba5('0x0'));var rimraf=require(_0x4ba5('0x1'));var zipdir=require(_0x4ba5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4ba5('0x3'));var moment=require('moment');var BPromise=require(_0x4ba5('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x4ba5('0x5'));var sox=require('sox');var csv=require(_0x4ba5('0x6'));var ejs=require(_0x4ba5('0x7'));var fs=require('fs');var _=require(_0x4ba5('0x8'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x4ba5('0x9'));var deskjs=require(_0x4ba5('0xa'));var toCsv=require('to-csv');var querystring=require(_0x4ba5('0xb'));var Papa=require(_0x4ba5('0xc'));var Redis=require(_0x4ba5('0xd'));var authService=require(_0x4ba5('0xe'));var qs=require(_0x4ba5('0xf'));var as=require(_0x4ba5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4ba5('0x11'))(_0x4ba5('0x12'));var utils=require(_0x4ba5('0x13'));var config=require(_0x4ba5('0x14'));var db=require(_0x4ba5('0x15'))['db'];var integrations=require(_0x4ba5('0x16'));var jayson=require('jayson/promise');var client=jayson[_0x4ba5('0x17')]['http']({'port':0x232a});function checkPasswordPattern(_0xf1b6d5,_0x3484ec,_0x32fed0){if(_0x32fed0){var _0x25b8fd=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x25b8fd['test'](_0x3484ec)){return _0xf1b6d5;}else{throw new db[(_0x4ba5('0x18'))][(_0x4ba5('0x19'))]('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0xf1b6d5;}}function respondWithRpcPromise(_0x1fa6c8,_0x1c986d,_0x852aac,_0x91b7a0){return new BPromise(function(_0x51b4a0,_0x376695){var _0x5ca634=_0x91b7a0||client;return _0x5ca634[_0x4ba5('0x1a')](_0x1fa6c8,_0x852aac)[_0x4ba5('0x1b')](function(_0x3d9680){logger[_0x4ba5('0x1c')](_0x4ba5('0x1d'),_0x1c986d,'request\x20sent');logger[_0x4ba5('0x1e')](_0x4ba5('0x1f'),_0x1c986d,_0x4ba5('0x20'),JSON['stringify'](_0x3d9680));if(_0x3d9680[_0x4ba5('0x21')]){if(_0x3d9680[_0x4ba5('0x21')][_0x4ba5('0x22')]===0x1f4){logger[_0x4ba5('0x21')](_0x4ba5('0x1d'),_0x1c986d,_0x3d9680[_0x4ba5('0x21')][_0x4ba5('0x23')]);return _0x376695(_0x3d9680[_0x4ba5('0x21')]['message']);}logger[_0x4ba5('0x21')](_0x4ba5('0x1d'),_0x1c986d,_0x3d9680[_0x4ba5('0x21')][_0x4ba5('0x23')]);return _0x51b4a0(_0x3d9680[_0x4ba5('0x21')][_0x4ba5('0x23')]);}else{logger[_0x4ba5('0x1c')](_0x4ba5('0x1d'),_0x1c986d,'request\x20sent');_0x51b4a0(_0x3d9680[_0x4ba5('0x24')][_0x4ba5('0x23')]);}})['catch'](function(_0x17b72c){logger[_0x4ba5('0x21')](_0x4ba5('0x1d'),_0x1c986d,_0x17b72c);_0x376695(_0x17b72c);});});}function respondWithStatusCode(_0x2bdc32,_0x29420f){_0x29420f=_0x29420f||0xcc;return function(_0x176b76){if(_0x176b76){return _0x2bdc32[_0x4ba5('0x25')](_0x29420f);}return _0x2bdc32['status'](_0x29420f)[_0x4ba5('0x26')]();};}function respondWithResult(_0x5b3d29,_0x118ca7){_0x118ca7=_0x118ca7||0xc8;return function(_0x31cc65){if(_0x31cc65){return _0x5b3d29[_0x4ba5('0x27')](_0x118ca7)[_0x4ba5('0x28')](_0x31cc65);}};}function respondWithFilteredResult(_0x30a78f,_0x39e091){return function(_0x43a391){if(_0x43a391){var _0x21be3e=_0x43a391[_0x4ba5('0x29')],_0x4192b2=_0x39e091[_0x4ba5('0x2a')],_0x508e1c=_0x39e091[_0x4ba5('0x2a')]+_0x39e091['limit'],_0x45a689;if(_0x508e1c>=_0x21be3e){_0x508e1c=_0x21be3e;_0x45a689=0xc8;}else{_0x45a689=0xce;}_0x30a78f['status'](_0x45a689);return _0x30a78f['set']('Content-Range',_0x4192b2+'-'+_0x508e1c+'/'+_0x21be3e)[_0x4ba5('0x28')](_0x43a391);}return null;};}function patchUpdates(_0x265777){return function(_0x923393){try{jsonpatch['apply'](_0x923393,_0x265777,!![]);}catch(_0x8ccf62){return BPromise[_0x4ba5('0x2b')](_0x8ccf62);}return _0x923393[_0x4ba5('0x2c')]();};}function saveUpdates(_0xcda313,_0xc0e5aa){return function(_0x3944f2){if(_0x3944f2){return _0x3944f2[_0x4ba5('0x2d')](_0xcda313)[_0x4ba5('0x1b')](function(_0x208822){return _0x208822;});}return null;};}function removeEntity(_0x54bb66,_0x8d8286){return function(_0x4f29e2){if(_0x4f29e2){return _0x4f29e2['destroy']()['then'](function(){_0x54bb66[_0x4ba5('0x27')](0xcc)[_0x4ba5('0x26')]();});}};}function handleEntityNotFound(_0x3335bc,_0x10d7e1){return function(_0x532eaf){if(!_0x532eaf){_0x3335bc[_0x4ba5('0x25')](0x194);}return _0x532eaf;};}function handleError(_0x11f59e,_0x3a404a){_0x3a404a=_0x3a404a||0x1f4;return function(_0x1c2404){logger[_0x4ba5('0x21')](_0x1c2404['stack']);if(_0x1c2404[_0x4ba5('0x2e')]){delete _0x1c2404['name'];}_0x11f59e[_0x4ba5('0x27')](_0x3a404a)['send'](_0x1c2404);};}exports['index']=function(_0x423d5a,_0x1c3474){var _0x511e75={},_0x13a34a={},_0x35f903={'count':0x0,'rows':[]};var _0x2968ae=_[_0x4ba5('0x2f')](db[_0x4ba5('0x30')]['rawAttributes'],function(_0x77177f){return{'name':_0x77177f[_0x4ba5('0x31')],'type':_0x77177f[_0x4ba5('0x32')]['key']};});_0x13a34a['model']=_['map'](_0x2968ae,_0x4ba5('0x2e'));_0x13a34a['query']=_['keys'](_0x423d5a[_0x4ba5('0x33')]);_0x13a34a['filters']=_[_0x4ba5('0x34')](_0x13a34a[_0x4ba5('0x35')],_0x13a34a['query']);_0x511e75[_0x4ba5('0x36')]=_[_0x4ba5('0x34')](_0x13a34a[_0x4ba5('0x35')],qs['fields'](_0x423d5a['query'][_0x4ba5('0x37')]));_0x511e75['attributes']=_0x511e75['attributes']['length']?_0x511e75[_0x4ba5('0x36')]:_0x13a34a['model'];if(!_0x423d5a[_0x4ba5('0x33')][_0x4ba5('0x38')]('nolimit')){_0x511e75['limit']=qs['limit'](_0x423d5a['query']['limit']);_0x511e75[_0x4ba5('0x2a')]=qs['offset'](_0x423d5a[_0x4ba5('0x33')][_0x4ba5('0x2a')]);}_0x511e75[_0x4ba5('0x39')]=qs[_0x4ba5('0x3a')](_0x423d5a[_0x4ba5('0x33')][_0x4ba5('0x3a')]);_0x511e75[_0x4ba5('0x3b')]=qs[_0x4ba5('0x3c')](_[_0x4ba5('0x3d')](_0x423d5a['query'],_0x13a34a['filters']),_0x2968ae);if(_0x423d5a[_0x4ba5('0x33')][_0x4ba5('0x3e')]){_0x511e75[_0x4ba5('0x3b')]=_[_0x4ba5('0x3f')](_0x511e75[_0x4ba5('0x3b')],{'$or':_['map'](_0x2968ae,function(_0x1bc954){if(_0x1bc954[_0x4ba5('0x32')]!==_0x4ba5('0x40')){var _0x47c4a3={};_0x47c4a3[_0x1bc954[_0x4ba5('0x2e')]]={'$like':'%'+_0x423d5a[_0x4ba5('0x33')]['filter']+'%'};return _0x47c4a3;}})});}_0x511e75=_[_0x4ba5('0x3f')]({},_0x511e75,_0x423d5a[_0x4ba5('0x41')]);var _0x5a1870={'where':_0x511e75[_0x4ba5('0x3b')]};return db[_0x4ba5('0x30')][_0x4ba5('0x29')](_0x5a1870)[_0x4ba5('0x1b')](function(_0x44e6d2){_0x35f903[_0x4ba5('0x29')]=_0x44e6d2;if(_0x423d5a['query']['includeAll']){_0x511e75[_0x4ba5('0x42')]=[{'all':!![]}];}return db[_0x4ba5('0x30')][_0x4ba5('0x43')](_0x511e75);})['then'](function(_0x13acc1){_0x35f903[_0x4ba5('0x44')]=_0x13acc1;return _0x35f903;})[_0x4ba5('0x1b')](respondWithFilteredResult(_0x1c3474,_0x511e75))[_0x4ba5('0x45')](handleError(_0x1c3474,null));};exports['show']=function(_0x17731d,_0x313745){var _0x27ba64={'raw':![],'where':{'id':_0x17731d[_0x4ba5('0x46')]['id']}},_0x464f7d={};_0x464f7d['model']=_[_0x4ba5('0x47')](db['DeskAccount']['rawAttributes']);_0x464f7d[_0x4ba5('0x33')]=_['keys'](_0x17731d[_0x4ba5('0x33')]);_0x464f7d[_0x4ba5('0x3c')]=_['intersection'](_0x464f7d[_0x4ba5('0x35')],_0x464f7d[_0x4ba5('0x33')]);_0x27ba64[_0x4ba5('0x36')]=_[_0x4ba5('0x34')](_0x464f7d[_0x4ba5('0x35')],qs[_0x4ba5('0x37')](_0x17731d[_0x4ba5('0x33')]['fields']));_0x27ba64[_0x4ba5('0x36')]=_0x27ba64[_0x4ba5('0x36')][_0x4ba5('0x48')]?_0x27ba64[_0x4ba5('0x36')]:_0x464f7d[_0x4ba5('0x35')];if(_0x17731d[_0x4ba5('0x33')][_0x4ba5('0x49')]){_0x27ba64['include']=[{'all':!![]}];}_0x27ba64=_[_0x4ba5('0x3f')]({},_0x27ba64,_0x17731d[_0x4ba5('0x41')]);return db[_0x4ba5('0x30')][_0x4ba5('0x4a')](_0x27ba64)[_0x4ba5('0x1b')](handleEntityNotFound(_0x313745,null))['then'](respondWithResult(_0x313745,null))[_0x4ba5('0x45')](handleError(_0x313745,null));};exports[_0x4ba5('0x4b')]=function(_0xcb2705,_0x4bf7cf){return db[_0x4ba5('0x30')][_0x4ba5('0x4b')](_0xcb2705[_0x4ba5('0x4c')],{})[_0x4ba5('0x1b')](respondWithResult(_0x4bf7cf,0xc9))[_0x4ba5('0x45')](handleError(_0x4bf7cf,null));};exports[_0x4ba5('0x2d')]=function(_0x304237,_0xf46346){if(_0x304237[_0x4ba5('0x4c')]['id']){delete _0x304237[_0x4ba5('0x4c')]['id'];}return db[_0x4ba5('0x30')][_0x4ba5('0x4a')]({'where':{'id':_0x304237[_0x4ba5('0x46')]['id']}})[_0x4ba5('0x1b')](handleEntityNotFound(_0xf46346,null))[_0x4ba5('0x1b')](saveUpdates(_0x304237[_0x4ba5('0x4c')],null))[_0x4ba5('0x1b')](respondWithResult(_0xf46346,null))[_0x4ba5('0x45')](handleError(_0xf46346,null));};exports['destroy']=function(_0x4de3af,_0x2b9c80){return db['DeskAccount']['find']({'where':{'id':_0x4de3af[_0x4ba5('0x46')]['id']}})[_0x4ba5('0x1b')](handleEntityNotFound(_0x2b9c80,null))[_0x4ba5('0x1b')](removeEntity(_0x2b9c80,null))[_0x4ba5('0x45')](handleError(_0x2b9c80,null));};exports[_0x4ba5('0x4d')]=function(_0x3d643e,_0x116fae,_0x42e93f){var _0x243cec={};var _0x390a8f={};var _0x326d14;var _0xa26d72;return db[_0x4ba5('0x30')][_0x4ba5('0x4e')]({'where':{'id':_0x3d643e[_0x4ba5('0x46')]['id']}})[_0x4ba5('0x1b')](handleEntityNotFound(_0x116fae,null))[_0x4ba5('0x1b')](function(_0x185bc6){if(_0x185bc6){_0x326d14=_0x185bc6;_0x390a8f[_0x4ba5('0x35')]=_['keys'](db[_0x4ba5('0x4f')][_0x4ba5('0x50')]);_0x390a8f[_0x4ba5('0x33')]=_[_0x4ba5('0x47')](_0x3d643e['query']);_0x390a8f[_0x4ba5('0x3c')]=_[_0x4ba5('0x34')](_0x390a8f[_0x4ba5('0x35')],_0x390a8f[_0x4ba5('0x33')]);_0x243cec[_0x4ba5('0x36')]=_[_0x4ba5('0x34')](_0x390a8f[_0x4ba5('0x35')],qs[_0x4ba5('0x37')](_0x3d643e[_0x4ba5('0x33')]['fields']));_0x243cec[_0x4ba5('0x36')]=_0x243cec[_0x4ba5('0x36')]['length']?_0x243cec[_0x4ba5('0x36')]:_0x390a8f[_0x4ba5('0x35')];_0x243cec[_0x4ba5('0x39')]=qs[_0x4ba5('0x3a')](_0x3d643e[_0x4ba5('0x33')][_0x4ba5('0x3a')]);_0x243cec[_0x4ba5('0x3b')]=qs[_0x4ba5('0x3c')](_['pick'](_0x3d643e['query'],_0x390a8f[_0x4ba5('0x3c')]));if(_0x3d643e[_0x4ba5('0x33')]['filter']){_0x243cec[_0x4ba5('0x3b')]=_[_0x4ba5('0x3f')](_0x243cec[_0x4ba5('0x3b')],{'$or':_['map'](_0x243cec[_0x4ba5('0x36')],function(_0x5697b0){var _0x533441={};_0x533441[_0x5697b0]={'$like':'%'+_0x3d643e[_0x4ba5('0x33')][_0x4ba5('0x3e')]+'%'};return _0x533441;})});}_0x243cec=_[_0x4ba5('0x3f')]({},_0x243cec,_0x3d643e[_0x4ba5('0x41')]);return _0x326d14[_0x4ba5('0x4d')](_0x243cec);}})['then'](function(_0x1f980a){if(_0x1f980a){_0xa26d72=_0x1f980a['length'];if(!_0x3d643e[_0x4ba5('0x33')][_0x4ba5('0x38')]('nolimit')){_0x243cec[_0x4ba5('0x51')]=qs['limit'](_0x3d643e['query']['limit']);_0x243cec['offset']=qs[_0x4ba5('0x2a')](_0x3d643e[_0x4ba5('0x33')][_0x4ba5('0x2a')]);}return _0x326d14['getConfigurations'](_0x243cec);}})[_0x4ba5('0x1b')](function(_0x59d5cb){if(_0x59d5cb){return _0x59d5cb?{'count':_0xa26d72,'rows':_0x59d5cb}:null;}})[_0x4ba5('0x1b')](respondWithResult(_0x116fae,null))[_0x4ba5('0x45')](handleError(_0x116fae,null));};exports['addConfiguration']=function(_0x838af2,_0x4e222e,_0x5668ec){if(_0x838af2[_0x4ba5('0x4c')]['id']){delete _0x838af2[_0x4ba5('0x4c')]['id'];}return db[_0x4ba5('0x30')][_0x4ba5('0x4e')]({'where':{'id':_0x838af2['params']['id']}})['then'](handleEntityNotFound(_0x4e222e,null))[_0x4ba5('0x1b')](function(_0x42dd5f){if(_0x42dd5f){_0x838af2[_0x4ba5('0x4c')][_0x4ba5('0x52')]=_0x42dd5f['id'];_0x838af2[_0x4ba5('0x4c')][_0x4ba5('0x53')]=integrations[_0x4ba5('0x54')](_0x838af2['body'][_0x4ba5('0x55')],_0x838af2[_0x4ba5('0x4c')][_0x4ba5('0x32')]);_0x838af2[_0x4ba5('0x4c')]['Descriptions']=integrations['getDescriptions'](_0x838af2[_0x4ba5('0x4c')][_0x4ba5('0x55')],_0x838af2[_0x4ba5('0x4c')]['type']);return db['DeskConfiguration'][_0x4ba5('0x4b')](_0x838af2['body'],{'include':[{'model':db['DeskField'],'as':_0x4ba5('0x53')},{'model':db[_0x4ba5('0x56')],'as':_0x4ba5('0x57')}]});}return null;})[_0x4ba5('0x1b')](respondWithResult(_0x4e222e,null))[_0x4ba5('0x45')](handleError(_0x4e222e,null));};exports[_0x4ba5('0x58')]=function(_0x17dfae,_0x2defd5,_0x122db9){var _0x26e3db=[{'name':'priority','label':'priority','custom':![],'options':[{'name':0x1,'value':0x1},{'name':0x2,'value':0x2},{'name':0x3,'value':0x3},{'name':0x4,'value':0x4},{'name':0x5,'value':0x5},{'name':0x6,'value':0x6},{'name':0x7,'value':0x7},{'name':0x8,'value':0x8},{'name':0x9,'value':0x9},{'name':0xa,'value':0xa}]}];var _0x583972='';return db['DeskAccount']['findOne']({'where':{'id':_0x17dfae[_0x4ba5('0x46')]['id']},'attributes':['id','remoteUri','authType',_0x4ba5('0x59'),_0x4ba5('0x5a'),'consumerKey',_0x4ba5('0x5b'),_0x4ba5('0x5c'),_0x4ba5('0x5d')]})['then'](handleEntityNotFound(_0x2defd5,null))['then'](function(_0x1299ba){if(_0x1299ba){_0x583972=_0x1299ba[_0x4ba5('0x5e')];var _0x55fd8a=_0x583972[_0x4ba5('0x5f')](-0x1);if(_0x55fd8a==='/'){_0x583972=_0x583972['substring'](0x0,_0x583972['lastIndexOf'](_0x55fd8a));}var _0x407916={'method':'GET','uri':util[_0x4ba5('0x60')]('%s/custom_fields',_0x583972),'headers':{'Content-Type':_0x4ba5('0x61'),'Accept':_0x4ba5('0x61')},'json':!![]};if(_0x1299ba[_0x4ba5('0x62')]===_0x4ba5('0x63')){_0x407916[_0x4ba5('0x64')][_0x4ba5('0x65')]=util['format']('Basic\x20%s',new Buffer(util[_0x4ba5('0x60')](_0x4ba5('0x66'),_0x1299ba['username'],_0x1299ba[_0x4ba5('0x5a')]))[_0x4ba5('0x67')]('base64'));}return rp(_0x407916)[_0x4ba5('0x1b')](function(_0x2634e8){return _0x26e3db['concat'](_['map'](_0x2634e8[_0x4ba5('0x68')][_0x4ba5('0x69')],function(_0x164228){return{'id':_0x164228['name'],'name':_0x164228['name'],'type':_0x164228[_0x4ba5('0x32')],'active':_0x164228['active'],'label':_0x164228[_0x4ba5('0x6a')],'custom':!![]};}));});}})[_0x4ba5('0x1b')](function(_0x25f3b8){return{'count':_0x25f3b8[_0x4ba5('0x48')],'rows':_0x25f3b8};})['then'](respondWithResult(_0x2defd5,null))['catch'](function(_0x3243e9){var _0x5033df=_0x17dfae[_0x4ba5('0x33')][_0x4ba5('0x6b')]?0x1f4:_0x3243e9[_0x4ba5('0x6c')]||0x1f4;logger['error'](_0x4ba5('0x6d'),_0x4ba5('0x58'),_0x5033df,JSON[_0x4ba5('0x6e')](_0x3243e9));delete _0x3243e9['name'];if(_0x5033df===0x191){_0x5033df=0x190;}_0x2defd5[_0x4ba5('0x27')](_0x5033df)[_0x4ba5('0x6f')](_0x17dfae[_0x4ba5('0x33')][_0x4ba5('0x6b')]?{'message':'Wrong\x20credentials','statusCode':_0x3243e9[_0x4ba5('0x6c')]}:_0x3243e9);});};