Built motion from commit 0900f080.|2.5.45
[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 _0x3685=['channel','Descriptions','getDescriptions','DeskConfiguration','create','Subjects','DeskField','getFields','priority','remoteUri','authType','username','password','consumerKey','slice','substring','GET','format','%s/custom_fields','application/json','headers','Authorization','Basic\x20%s','base64','entries','active','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','to-csv','ejs','fs-extra','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','end','status','json','offset','undefined','count','limit','set','reject','save','update','destroy','then','sendStatus','stack','name','send','index','map','DeskAccount','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','includeAll','findAll','rows','catch','show','params','options','body','find','getConfigurations','findOne','addConfiguration','AccountId'];(function(_0x1834df,_0x27bad3){var _0x5b3b41=function(_0x5830e7){while(--_0x5830e7){_0x1834df['push'](_0x1834df['shift']());}};_0x5b3b41(++_0x27bad3);}(_0x3685,0x1cf));var _0x5368=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x3685[_0x122ef9];return _0x42fba0;};'use strict';var emlformat=require(_0x5368('0x0'));var rimraf=require(_0x5368('0x1'));var zipdir=require(_0x5368('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x5368('0x3'));var moment=require(_0x5368('0x4'));var BPromise=require(_0x5368('0x5'));var Mustache=require(_0x5368('0x6'));var util=require('util');var path=require(_0x5368('0x7'));var sox=require('sox');var csv=require(_0x5368('0x8'));var ejs=require(_0x5368('0x9'));var fs=require('fs');var fs_extra=require(_0x5368('0xa'));var _=require('lodash');var squel=require(_0x5368('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x5368('0xc'));var toCsv=require(_0x5368('0x8'));var querystring=require('querystring');var Papa=require(_0x5368('0xd'));var Redis=require(_0x5368('0xe'));var authService=require(_0x5368('0xf'));var qs=require(_0x5368('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5368('0x11'));var logger=require('../../config/logger')(_0x5368('0x12'));var utils=require(_0x5368('0x13'));var config=require(_0x5368('0x14'));var licenseUtil=require(_0x5368('0x15'));var db=require(_0x5368('0x16'))['db'];var integrations=require(_0x5368('0x17'));function respondWithStatusCode(_0x278b5d,_0x13544c){_0x13544c=_0x13544c||0xcc;return function(_0x243346){if(_0x243346){return _0x278b5d['sendStatus'](_0x13544c);}return _0x278b5d['status'](_0x13544c)[_0x5368('0x18')]();};}function respondWithResult(_0x24c2a2,_0x1fe49a){_0x1fe49a=_0x1fe49a||0xc8;return function(_0x871794){if(_0x871794){return _0x24c2a2[_0x5368('0x19')](_0x1fe49a)[_0x5368('0x1a')](_0x871794);}};}function respondWithFilteredResult(_0x125c46,_0x43bb65){return function(_0x22a6de){if(_0x22a6de){var _0x5070f6=typeof _0x43bb65[_0x5368('0x1b')]===_0x5368('0x1c')&&typeof _0x43bb65['limit']==='undefined';var _0x2d37d3=_0x22a6de[_0x5368('0x1d')];var _0x398153=_0x5070f6?0x0:_0x43bb65[_0x5368('0x1b')];var _0x696ac2=_0x5070f6?_0x22a6de[_0x5368('0x1d')]:_0x43bb65[_0x5368('0x1b')]+_0x43bb65[_0x5368('0x1e')];var _0xb501a4;if(_0x696ac2>=_0x2d37d3){_0x696ac2=_0x2d37d3;_0xb501a4=0xc8;}else{_0xb501a4=0xce;}_0x125c46[_0x5368('0x19')](_0xb501a4);return _0x125c46[_0x5368('0x1f')]('Content-Range',_0x398153+'-'+_0x696ac2+'/'+_0x2d37d3)['json'](_0x22a6de);}return null;};}function patchUpdates(_0x2b77ed){return function(_0x3ed694){try{jsonpatch['apply'](_0x3ed694,_0x2b77ed,!![]);}catch(_0x58d361){return BPromise[_0x5368('0x20')](_0x58d361);}return _0x3ed694[_0x5368('0x21')]();};}function saveUpdates(_0x32629b,_0x1f8191){return function(_0xc46930){if(_0xc46930){return _0xc46930[_0x5368('0x22')](_0x32629b)['then'](function(_0xc1c95e){return _0xc1c95e;});}return null;};}function removeEntity(_0x36c812,_0x272ff1){return function(_0x3524c5){if(_0x3524c5){return _0x3524c5[_0x5368('0x23')]()[_0x5368('0x24')](function(){_0x36c812[_0x5368('0x19')](0xcc)[_0x5368('0x18')]();});}};}function handleEntityNotFound(_0x2a6763,_0x51c9c3){return function(_0x42b9d7){if(!_0x42b9d7){_0x2a6763[_0x5368('0x25')](0x194);}return _0x42b9d7;};}function handleError(_0x4b208d,_0x2f5f5b){_0x2f5f5b=_0x2f5f5b||0x1f4;return function(_0x4825ed){logger['error'](_0x4825ed[_0x5368('0x26')]);if(_0x4825ed['name']){delete _0x4825ed[_0x5368('0x27')];}_0x4b208d[_0x5368('0x19')](_0x2f5f5b)[_0x5368('0x28')](_0x4825ed);};}exports[_0x5368('0x29')]=function(_0x44ac24,_0x5a1f61){var _0x18d954={},_0x5b429c={},_0x33f806={'count':0x0,'rows':[]};var _0xd91acd=_[_0x5368('0x2a')](db[_0x5368('0x2b')][_0x5368('0x2c')],function(_0x499e9d){return{'name':_0x499e9d[_0x5368('0x2d')],'type':_0x499e9d[_0x5368('0x2e')][_0x5368('0x2f')]};});_0x5b429c['model']=_[_0x5368('0x2a')](_0xd91acd,_0x5368('0x27'));_0x5b429c[_0x5368('0x30')]=_[_0x5368('0x31')](_0x44ac24[_0x5368('0x30')]);_0x5b429c[_0x5368('0x32')]=_[_0x5368('0x33')](_0x5b429c[_0x5368('0x34')],_0x5b429c[_0x5368('0x30')]);_0x18d954['attributes']=_[_0x5368('0x33')](_0x5b429c[_0x5368('0x34')],qs[_0x5368('0x35')](_0x44ac24[_0x5368('0x30')][_0x5368('0x35')]));_0x18d954['attributes']=_0x18d954[_0x5368('0x36')][_0x5368('0x37')]?_0x18d954['attributes']:_0x5b429c['model'];if(!_0x44ac24[_0x5368('0x30')][_0x5368('0x38')](_0x5368('0x39'))){_0x18d954[_0x5368('0x1e')]=qs[_0x5368('0x1e')](_0x44ac24[_0x5368('0x30')]['limit']);_0x18d954[_0x5368('0x1b')]=qs['offset'](_0x44ac24[_0x5368('0x30')][_0x5368('0x1b')]);}_0x18d954[_0x5368('0x3a')]=qs[_0x5368('0x3b')](_0x44ac24[_0x5368('0x30')][_0x5368('0x3b')]);_0x18d954['where']=qs['filters'](_[_0x5368('0x3c')](_0x44ac24[_0x5368('0x30')],_0x5b429c[_0x5368('0x32')]),_0xd91acd);if(_0x44ac24[_0x5368('0x30')][_0x5368('0x3d')]){_0x18d954[_0x5368('0x3e')]=_['merge'](_0x18d954[_0x5368('0x3e')],{'$or':_['map'](_0xd91acd,function(_0x4a4628){if(_0x4a4628[_0x5368('0x2e')]!=='VIRTUAL'){var _0x112301={};_0x112301[_0x4a4628[_0x5368('0x27')]]={'$like':'%'+_0x44ac24[_0x5368('0x30')]['filter']+'%'};return _0x112301;}})});}_0x18d954=_[_0x5368('0x3f')]({},_0x18d954,_0x44ac24['options']);var _0x462eb0={'where':_0x18d954['where']};return db[_0x5368('0x2b')][_0x5368('0x1d')](_0x462eb0)['then'](function(_0x55d455){_0x33f806[_0x5368('0x1d')]=_0x55d455;if(_0x44ac24[_0x5368('0x30')][_0x5368('0x40')]){_0x18d954['include']=[{'all':!![]}];}return db['DeskAccount'][_0x5368('0x41')](_0x18d954);})[_0x5368('0x24')](function(_0x3d5c88){_0x33f806[_0x5368('0x42')]=_0x3d5c88;return _0x33f806;})['then'](respondWithFilteredResult(_0x5a1f61,_0x18d954))[_0x5368('0x43')](handleError(_0x5a1f61,null));};exports[_0x5368('0x44')]=function(_0x4b7942,_0x2a5e9e){var _0x8604ee={'raw':![],'where':{'id':_0x4b7942[_0x5368('0x45')]['id']}},_0x5a0cc={};_0x5a0cc[_0x5368('0x34')]=_[_0x5368('0x31')](db[_0x5368('0x2b')][_0x5368('0x2c')]);_0x5a0cc[_0x5368('0x30')]=_[_0x5368('0x31')](_0x4b7942[_0x5368('0x30')]);_0x5a0cc[_0x5368('0x32')]=_[_0x5368('0x33')](_0x5a0cc[_0x5368('0x34')],_0x5a0cc[_0x5368('0x30')]);_0x8604ee[_0x5368('0x36')]=_[_0x5368('0x33')](_0x5a0cc['model'],qs[_0x5368('0x35')](_0x4b7942[_0x5368('0x30')][_0x5368('0x35')]));_0x8604ee[_0x5368('0x36')]=_0x8604ee[_0x5368('0x36')][_0x5368('0x37')]?_0x8604ee[_0x5368('0x36')]:_0x5a0cc[_0x5368('0x34')];if(_0x4b7942[_0x5368('0x30')]['includeAll']){_0x8604ee['include']=[{'all':!![]}];}_0x8604ee=_[_0x5368('0x3f')]({},_0x8604ee,_0x4b7942[_0x5368('0x46')]);return db[_0x5368('0x2b')]['find'](_0x8604ee)[_0x5368('0x24')](handleEntityNotFound(_0x2a5e9e,null))[_0x5368('0x24')](respondWithResult(_0x2a5e9e,null))[_0x5368('0x43')](handleError(_0x2a5e9e,null));};exports['create']=function(_0x3c9806,_0x5bbbd2){return db[_0x5368('0x2b')]['create'](_0x3c9806[_0x5368('0x47')],{})[_0x5368('0x24')](respondWithResult(_0x5bbbd2,0xc9))[_0x5368('0x43')](handleError(_0x5bbbd2,null));};exports[_0x5368('0x22')]=function(_0x3028a9,_0x2a5bd0){if(_0x3028a9[_0x5368('0x47')]['id']){delete _0x3028a9[_0x5368('0x47')]['id'];}return db[_0x5368('0x2b')][_0x5368('0x48')]({'where':{'id':_0x3028a9['params']['id']}})[_0x5368('0x24')](handleEntityNotFound(_0x2a5bd0,null))[_0x5368('0x24')](saveUpdates(_0x3028a9[_0x5368('0x47')],null))[_0x5368('0x24')](respondWithResult(_0x2a5bd0,null))[_0x5368('0x43')](handleError(_0x2a5bd0,null));};exports[_0x5368('0x23')]=function(_0xb92fcb,_0x591326){return db[_0x5368('0x2b')][_0x5368('0x48')]({'where':{'id':_0xb92fcb[_0x5368('0x45')]['id']}})[_0x5368('0x24')](handleEntityNotFound(_0x591326,null))[_0x5368('0x24')](removeEntity(_0x591326,null))[_0x5368('0x43')](handleError(_0x591326,null));};exports[_0x5368('0x49')]=function(_0x470f04,_0x4a7fbf,_0x1c2a8a){var _0x3d848b={};var _0x370779={};var _0x52a903;var _0x11bca3;return db[_0x5368('0x2b')][_0x5368('0x4a')]({'where':{'id':_0x470f04[_0x5368('0x45')]['id']}})[_0x5368('0x24')](handleEntityNotFound(_0x4a7fbf,null))['then'](function(_0x227be8){if(_0x227be8){_0x52a903=_0x227be8;_0x370779['model']=_[_0x5368('0x31')](db['DeskConfiguration']['rawAttributes']);_0x370779['query']=_['keys'](_0x470f04[_0x5368('0x30')]);_0x370779['filters']=_[_0x5368('0x33')](_0x370779['model'],_0x370779[_0x5368('0x30')]);_0x3d848b['attributes']=_[_0x5368('0x33')](_0x370779[_0x5368('0x34')],qs['fields'](_0x470f04[_0x5368('0x30')]['fields']));_0x3d848b[_0x5368('0x36')]=_0x3d848b[_0x5368('0x36')]['length']?_0x3d848b[_0x5368('0x36')]:_0x370779[_0x5368('0x34')];_0x3d848b['order']=qs[_0x5368('0x3b')](_0x470f04[_0x5368('0x30')][_0x5368('0x3b')]);_0x3d848b[_0x5368('0x3e')]=qs[_0x5368('0x32')](_['pick'](_0x470f04['query'],_0x370779['filters']));if(_0x470f04['query'][_0x5368('0x3d')]){_0x3d848b['where']=_[_0x5368('0x3f')](_0x3d848b[_0x5368('0x3e')],{'$or':_[_0x5368('0x2a')](_0x3d848b['attributes'],function(_0x198f38){var _0xc639f5={};_0xc639f5[_0x198f38]={'$like':'%'+_0x470f04[_0x5368('0x30')]['filter']+'%'};return _0xc639f5;})});}_0x3d848b=_[_0x5368('0x3f')]({},_0x3d848b,_0x470f04[_0x5368('0x46')]);return _0x52a903[_0x5368('0x49')](_0x3d848b);}})['then'](function(_0x3ae69c){if(_0x3ae69c){_0x11bca3=_0x3ae69c['length'];if(!_0x470f04['query']['hasOwnProperty']('nolimit')){_0x3d848b[_0x5368('0x1e')]=qs[_0x5368('0x1e')](_0x470f04[_0x5368('0x30')]['limit']);_0x3d848b[_0x5368('0x1b')]=qs['offset'](_0x470f04[_0x5368('0x30')][_0x5368('0x1b')]);}return _0x52a903[_0x5368('0x49')](_0x3d848b);}})[_0x5368('0x24')](function(_0x3f0a56){if(_0x3f0a56){return _0x3f0a56?{'count':_0x11bca3,'rows':_0x3f0a56}:null;}})[_0x5368('0x24')](respondWithResult(_0x4a7fbf,null))[_0x5368('0x43')](handleError(_0x4a7fbf,null));};exports[_0x5368('0x4b')]=function(_0x523228,_0x96040d,_0x41492e){if(_0x523228[_0x5368('0x47')]['id']){delete _0x523228[_0x5368('0x47')]['id'];}return db[_0x5368('0x2b')]['findOne']({'where':{'id':_0x523228[_0x5368('0x45')]['id']}})[_0x5368('0x24')](handleEntityNotFound(_0x96040d,null))['then'](function(_0x2302ff){if(_0x2302ff){_0x523228['body'][_0x5368('0x4c')]=_0x2302ff['id'];_0x523228[_0x5368('0x47')]['Subjects']=integrations['getSubjects'](_0x523228[_0x5368('0x47')][_0x5368('0x4d')],_0x523228[_0x5368('0x47')][_0x5368('0x2e')]);_0x523228['body'][_0x5368('0x4e')]=integrations[_0x5368('0x4f')](_0x523228[_0x5368('0x47')][_0x5368('0x4d')],_0x523228[_0x5368('0x47')][_0x5368('0x2e')]);return db[_0x5368('0x50')][_0x5368('0x51')](_0x523228[_0x5368('0x47')],{'include':[{'model':db['DeskField'],'as':_0x5368('0x52')},{'model':db[_0x5368('0x53')],'as':_0x5368('0x4e')}]});}return null;})['then'](respondWithResult(_0x96040d,null))[_0x5368('0x43')](handleError(_0x96040d,null));};exports[_0x5368('0x54')]=function(_0x3d523f,_0x3c7c42,_0x8755b1){var _0x3d172d=[{'name':'priority','label':_0x5368('0x55'),'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 _0x8a6207='';return db[_0x5368('0x2b')]['findOne']({'where':{'id':_0x3d523f[_0x5368('0x45')]['id']},'attributes':['id',_0x5368('0x56'),_0x5368('0x57'),_0x5368('0x58'),_0x5368('0x59'),_0x5368('0x5a'),'consumerSecret','token','tokenSecret']})[_0x5368('0x24')](handleEntityNotFound(_0x3c7c42,null))[_0x5368('0x24')](function(_0x3dc664){if(_0x3dc664){_0x8a6207=_0x3dc664['remoteUri'];var _0x27db54=_0x8a6207[_0x5368('0x5b')](-0x1);if(_0x27db54==='/'){_0x8a6207=_0x8a6207[_0x5368('0x5c')](0x0,_0x8a6207['lastIndexOf'](_0x27db54));}var _0x430f7a={'method':_0x5368('0x5d'),'uri':util[_0x5368('0x5e')](_0x5368('0x5f'),_0x8a6207),'headers':{'Content-Type':_0x5368('0x60'),'Accept':_0x5368('0x60')},'json':!![]};if(_0x3dc664[_0x5368('0x57')]==='basic'){_0x430f7a[_0x5368('0x61')][_0x5368('0x62')]=util[_0x5368('0x5e')](_0x5368('0x63'),new Buffer(util[_0x5368('0x5e')]('%s:%s',_0x3dc664[_0x5368('0x58')],_0x3dc664[_0x5368('0x59')]))['toString'](_0x5368('0x64')));}return rp(_0x430f7a)[_0x5368('0x24')](function(_0x26eae8){return _0x3d172d['concat'](_['map'](_0x26eae8['_embedded'][_0x5368('0x65')],function(_0x529698){return{'id':_0x529698[_0x5368('0x27')],'name':_0x529698['name'],'type':_0x529698['type'],'active':_0x529698[_0x5368('0x66')],'label':_0x529698[_0x5368('0x67')],'custom':!![]};}));});}})[_0x5368('0x24')](function(_0xabc969){return{'count':_0xabc969[_0x5368('0x37')],'rows':_0xabc969};})[_0x5368('0x24')](respondWithResult(_0x3c7c42,null))[_0x5368('0x43')](function(_0x5aafc5){var _0x5e7d8b=_0x3d523f['query'][_0x5368('0x68')]?0x1f4:_0x5aafc5[_0x5368('0x69')]||0x1f4;logger['error'](_0x5368('0x6a'),'getFields',_0x5e7d8b,JSON[_0x5368('0x6b')](_0x5aafc5));delete _0x5aafc5[_0x5368('0x27')];if(_0x5e7d8b===0x191){_0x5e7d8b=0x190;}_0x3c7c42[_0x5368('0x19')](_0x5e7d8b)[_0x5368('0x28')](_0x3d523f[_0x5368('0x30')][_0x5368('0x68')]?{'message':'Wrong\x20credentials','statusCode':_0x5aafc5[_0x5368('0x69')]}:_0x5aafc5);});};