Built motion from commit (unavailable).|2.5.26
[motion2.git] / server / api / intZendeskAccount / intZendeskAccount.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 _0xadf0=['show','params','keys','fields','includeAll','include','find','create','body','destroy','getConfigurations','findOne','ZendeskConfiguration','addConfiguration','AccountId','Subjects','Descriptions','getDescriptions','channel','ZendeskField','getFields','username','password','token','remoteUri','slice','substring','GET','%s/%s','ticket_fields','Basic\x20%s','format','toString','headers','%s/token:%s','base64','Sequelize','Unknown\x20authentication\x20type','subject','description','group','assignee','remove','includes','position','title','custom_field_options','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','lodash','squel','desk.js','to-csv','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','request','then','info','ZendeskAccount,\x20%s,\x20%s','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','end','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','name','send','index','ZendeskAccount','rawAttributes','fieldName','type','map','query','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','order','sort','where','VIRTUAL','filter','merge','options','findAll','rows'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xadf0,0x12d));var _0x0adf=function(_0x210ff7,_0x45ed46){_0x210ff7=_0x210ff7-0x0;var _0x330a3d=_0xadf0[_0x210ff7];return _0x330a3d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0adf('0x0'));var zipdir=require(_0x0adf('0x1'));var jsonpatch=require(_0x0adf('0x2'));var rp=require(_0x0adf('0x3'));var moment=require(_0x0adf('0x4'));var BPromise=require(_0x0adf('0x5'));var Mustache=require(_0x0adf('0x6'));var util=require('util');var path=require(_0x0adf('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0adf('0x8'));var squel=require(_0x0adf('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0adf('0xa'));var toCsv=require(_0x0adf('0xb'));var querystring=require('querystring');var Papa=require(_0x0adf('0xc'));var Redis=require(_0x0adf('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x0adf('0xe'));var as=require(_0x0adf('0xf'));var hardwareService=require(_0x0adf('0x10'));var logger=require('../../config/logger')(_0x0adf('0x11'));var utils=require(_0x0adf('0x12'));var config=require(_0x0adf('0x13'));var licenseUtil=require(_0x0adf('0x14'));var db=require(_0x0adf('0x15'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0x0adf('0x16'));var client=jayson[_0x0adf('0x17')]['http']({'port':0x232a});function respondWithRpcPromise(_0x57418c,_0x5637ec,_0xb018be,_0x4d4f0d){return new BPromise(function(_0x75ddac,_0x45bbab){var _0x3d7528=_0x4d4f0d||client;return _0x3d7528[_0x0adf('0x18')](_0x57418c,_0xb018be)[_0x0adf('0x19')](function(_0x2db0a2){logger[_0x0adf('0x1a')](_0x0adf('0x1b'),_0x5637ec,'request\x20sent');logger[_0x0adf('0x1c')](_0x0adf('0x1d'),_0x5637ec,'request\x20sent',JSON[_0x0adf('0x1e')](_0x2db0a2));if(_0x2db0a2['error']){if(_0x2db0a2[_0x0adf('0x1f')][_0x0adf('0x20')]===0x1f4){logger[_0x0adf('0x1f')](_0x0adf('0x1b'),_0x5637ec,_0x2db0a2['error'][_0x0adf('0x21')]);return _0x45bbab(_0x2db0a2[_0x0adf('0x1f')][_0x0adf('0x21')]);}logger[_0x0adf('0x1f')](_0x0adf('0x1b'),_0x5637ec,_0x2db0a2[_0x0adf('0x1f')]['message']);return _0x75ddac(_0x2db0a2[_0x0adf('0x1f')][_0x0adf('0x21')]);}else{logger[_0x0adf('0x1a')](_0x0adf('0x1b'),_0x5637ec,'request\x20sent');_0x75ddac(_0x2db0a2[_0x0adf('0x22')][_0x0adf('0x21')]);}})[_0x0adf('0x23')](function(_0x53bfdd){logger[_0x0adf('0x1f')](_0x0adf('0x1b'),_0x5637ec,_0x53bfdd);_0x45bbab(_0x53bfdd);});});}function respondWithStatusCode(_0x152694,_0x4094ab){_0x4094ab=_0x4094ab||0xcc;return function(_0x2b6a57){if(_0x2b6a57){return _0x152694[_0x0adf('0x24')](_0x4094ab);}return _0x152694['status'](_0x4094ab)[_0x0adf('0x25')]();};}function respondWithResult(_0x314f00,_0x80f962){_0x80f962=_0x80f962||0xc8;return function(_0x39a337){if(_0x39a337){return _0x314f00[_0x0adf('0x26')](_0x80f962)[_0x0adf('0x27')](_0x39a337);}};}function respondWithFilteredResult(_0x4b0076,_0x306f94){return function(_0x2ebba2){if(_0x2ebba2){var _0x272205=_0x2ebba2[_0x0adf('0x28')],_0x5a7992=_0x306f94[_0x0adf('0x29')],_0x4ed6ad=_0x306f94[_0x0adf('0x29')]+_0x306f94[_0x0adf('0x2a')],_0x4e8301;if(_0x4ed6ad>=_0x272205){_0x4ed6ad=_0x272205;_0x4e8301=0xc8;}else{_0x4e8301=0xce;}_0x4b0076[_0x0adf('0x26')](_0x4e8301);return _0x4b0076[_0x0adf('0x2b')](_0x0adf('0x2c'),_0x5a7992+'-'+_0x4ed6ad+'/'+_0x272205)[_0x0adf('0x27')](_0x2ebba2);}return null;};}function patchUpdates(_0x2a0fcc){return function(_0x2b1f14){try{jsonpatch[_0x0adf('0x2d')](_0x2b1f14,_0x2a0fcc,!![]);}catch(_0x3dadfb){return BPromise[_0x0adf('0x2e')](_0x3dadfb);}return _0x2b1f14[_0x0adf('0x2f')]();};}function saveUpdates(_0x46dbba,_0x512260){return function(_0x168f04){if(_0x168f04){return _0x168f04[_0x0adf('0x30')](_0x46dbba)[_0x0adf('0x19')](function(_0x44a2ba){return _0x44a2ba;});}return null;};}function removeEntity(_0x1fe2e5,_0x363959){return function(_0x1931ca){if(_0x1931ca){return _0x1931ca['destroy']()[_0x0adf('0x19')](function(){_0x1fe2e5['status'](0xcc)[_0x0adf('0x25')]();});}};}function handleEntityNotFound(_0x33830c,_0x175d7e){return function(_0x39e5c2){if(!_0x39e5c2){_0x33830c[_0x0adf('0x24')](0x194);}return _0x39e5c2;};}function handleError(_0x35532f,_0x4161cf){_0x4161cf=_0x4161cf||0x1f4;return function(_0x2862fb){logger[_0x0adf('0x1f')](_0x2862fb['stack']);if(_0x2862fb[_0x0adf('0x31')]){delete _0x2862fb[_0x0adf('0x31')];}_0x35532f[_0x0adf('0x26')](_0x4161cf)[_0x0adf('0x32')](_0x2862fb);};}exports[_0x0adf('0x33')]=function(_0x4cdf07,_0x11224d){var _0x201e5d={},_0x38603b={},_0x2069f0={'count':0x0,'rows':[]};var _0x4b9f02=_['map'](db[_0x0adf('0x34')][_0x0adf('0x35')],function(_0x3b0367){return{'name':_0x3b0367[_0x0adf('0x36')],'type':_0x3b0367[_0x0adf('0x37')]['key']};});_0x38603b['model']=_[_0x0adf('0x38')](_0x4b9f02,_0x0adf('0x31'));_0x38603b['query']=_['keys'](_0x4cdf07[_0x0adf('0x39')]);_0x38603b[_0x0adf('0x3a')]=_[_0x0adf('0x3b')](_0x38603b[_0x0adf('0x3c')],_0x38603b[_0x0adf('0x39')]);_0x201e5d[_0x0adf('0x3d')]=_[_0x0adf('0x3b')](_0x38603b[_0x0adf('0x3c')],qs['fields'](_0x4cdf07[_0x0adf('0x39')]['fields']));_0x201e5d[_0x0adf('0x3d')]=_0x201e5d[_0x0adf('0x3d')][_0x0adf('0x3e')]?_0x201e5d[_0x0adf('0x3d')]:_0x38603b['model'];if(!_0x4cdf07[_0x0adf('0x39')][_0x0adf('0x3f')](_0x0adf('0x40'))){_0x201e5d[_0x0adf('0x2a')]=qs['limit'](_0x4cdf07[_0x0adf('0x39')][_0x0adf('0x2a')]);_0x201e5d[_0x0adf('0x29')]=qs['offset'](_0x4cdf07['query'][_0x0adf('0x29')]);}_0x201e5d[_0x0adf('0x41')]=qs[_0x0adf('0x42')](_0x4cdf07[_0x0adf('0x39')][_0x0adf('0x42')]);_0x201e5d[_0x0adf('0x43')]=qs['filters'](_['pick'](_0x4cdf07[_0x0adf('0x39')],_0x38603b[_0x0adf('0x3a')]),_0x4b9f02);if(_0x4cdf07[_0x0adf('0x39')]['filter']){_0x201e5d[_0x0adf('0x43')]=_['merge'](_0x201e5d[_0x0adf('0x43')],{'$or':_['map'](_0x4b9f02,function(_0x11e656){if(_0x11e656[_0x0adf('0x37')]!==_0x0adf('0x44')){var _0x1cad8a={};_0x1cad8a[_0x11e656[_0x0adf('0x31')]]={'$like':'%'+_0x4cdf07[_0x0adf('0x39')][_0x0adf('0x45')]+'%'};return _0x1cad8a;}})});}_0x201e5d=_[_0x0adf('0x46')]({},_0x201e5d,_0x4cdf07[_0x0adf('0x47')]);var _0x1f4429={'where':_0x201e5d[_0x0adf('0x43')]};return db['ZendeskAccount']['count'](_0x1f4429)['then'](function(_0x49a19a){_0x2069f0['count']=_0x49a19a;if(_0x4cdf07[_0x0adf('0x39')]['includeAll']){_0x201e5d['include']=[{'all':!![]}];}return db[_0x0adf('0x34')][_0x0adf('0x48')](_0x201e5d);})[_0x0adf('0x19')](function(_0x3e5907){_0x2069f0[_0x0adf('0x49')]=_0x3e5907;return _0x2069f0;})[_0x0adf('0x19')](respondWithFilteredResult(_0x11224d,_0x201e5d))['catch'](handleError(_0x11224d,null));};exports[_0x0adf('0x4a')]=function(_0x31e964,_0x252ae1){var _0x340049={'raw':![],'where':{'id':_0x31e964[_0x0adf('0x4b')]['id']}},_0x5b077f={};_0x5b077f[_0x0adf('0x3c')]=_[_0x0adf('0x4c')](db[_0x0adf('0x34')][_0x0adf('0x35')]);_0x5b077f[_0x0adf('0x39')]=_['keys'](_0x31e964[_0x0adf('0x39')]);_0x5b077f['filters']=_['intersection'](_0x5b077f[_0x0adf('0x3c')],_0x5b077f['query']);_0x340049['attributes']=_['intersection'](_0x5b077f[_0x0adf('0x3c')],qs[_0x0adf('0x4d')](_0x31e964[_0x0adf('0x39')][_0x0adf('0x4d')]));_0x340049[_0x0adf('0x3d')]=_0x340049[_0x0adf('0x3d')][_0x0adf('0x3e')]?_0x340049[_0x0adf('0x3d')]:_0x5b077f[_0x0adf('0x3c')];if(_0x31e964[_0x0adf('0x39')][_0x0adf('0x4e')]){_0x340049[_0x0adf('0x4f')]=[{'all':!![]}];}_0x340049=_[_0x0adf('0x46')]({},_0x340049,_0x31e964[_0x0adf('0x47')]);return db[_0x0adf('0x34')][_0x0adf('0x50')](_0x340049)[_0x0adf('0x19')](handleEntityNotFound(_0x252ae1,null))['then'](respondWithResult(_0x252ae1,null))['catch'](handleError(_0x252ae1,null));};exports[_0x0adf('0x51')]=function(_0x8c93e9,_0x1eba36){return db[_0x0adf('0x34')][_0x0adf('0x51')](_0x8c93e9[_0x0adf('0x52')],{})['then'](respondWithResult(_0x1eba36,0xc9))['catch'](handleError(_0x1eba36,null));};exports[_0x0adf('0x30')]=function(_0x19245f,_0x3cc263){if(_0x19245f[_0x0adf('0x52')]['id']){delete _0x19245f[_0x0adf('0x52')]['id'];}return db['ZendeskAccount'][_0x0adf('0x50')]({'where':{'id':_0x19245f['params']['id']}})[_0x0adf('0x19')](handleEntityNotFound(_0x3cc263,null))[_0x0adf('0x19')](saveUpdates(_0x19245f['body'],null))[_0x0adf('0x19')](respondWithResult(_0x3cc263,null))['catch'](handleError(_0x3cc263,null));};exports[_0x0adf('0x53')]=function(_0x4a024b,_0x28b9ba){return db[_0x0adf('0x34')][_0x0adf('0x50')]({'where':{'id':_0x4a024b[_0x0adf('0x4b')]['id']}})[_0x0adf('0x19')](handleEntityNotFound(_0x28b9ba,null))[_0x0adf('0x19')](removeEntity(_0x28b9ba,null))[_0x0adf('0x23')](handleError(_0x28b9ba,null));};exports[_0x0adf('0x54')]=function(_0x461586,_0x582351,_0x576c95){var _0x1920ae={};var _0x4fb54b={};var _0x2be6cd;var _0x1597de;return db[_0x0adf('0x34')][_0x0adf('0x55')]({'where':{'id':_0x461586['params']['id']}})[_0x0adf('0x19')](handleEntityNotFound(_0x582351,null))[_0x0adf('0x19')](function(_0x5eb691){if(_0x5eb691){_0x2be6cd=_0x5eb691;_0x4fb54b[_0x0adf('0x3c')]=_[_0x0adf('0x4c')](db[_0x0adf('0x56')][_0x0adf('0x35')]);_0x4fb54b[_0x0adf('0x39')]=_[_0x0adf('0x4c')](_0x461586[_0x0adf('0x39')]);_0x4fb54b['filters']=_[_0x0adf('0x3b')](_0x4fb54b[_0x0adf('0x3c')],_0x4fb54b[_0x0adf('0x39')]);_0x1920ae[_0x0adf('0x3d')]=_['intersection'](_0x4fb54b['model'],qs[_0x0adf('0x4d')](_0x461586[_0x0adf('0x39')]['fields']));_0x1920ae[_0x0adf('0x3d')]=_0x1920ae[_0x0adf('0x3d')][_0x0adf('0x3e')]?_0x1920ae[_0x0adf('0x3d')]:_0x4fb54b[_0x0adf('0x3c')];_0x1920ae[_0x0adf('0x41')]=qs[_0x0adf('0x42')](_0x461586[_0x0adf('0x39')][_0x0adf('0x42')]);_0x1920ae[_0x0adf('0x43')]=qs[_0x0adf('0x3a')](_['pick'](_0x461586[_0x0adf('0x39')],_0x4fb54b['filters']));if(_0x461586[_0x0adf('0x39')][_0x0adf('0x45')]){_0x1920ae[_0x0adf('0x43')]=_[_0x0adf('0x46')](_0x1920ae[_0x0adf('0x43')],{'$or':_[_0x0adf('0x38')](_0x1920ae['attributes'],function(_0x285a06){var _0x4e9efb={};_0x4e9efb[_0x285a06]={'$like':'%'+_0x461586[_0x0adf('0x39')][_0x0adf('0x45')]+'%'};return _0x4e9efb;})});}_0x1920ae=_[_0x0adf('0x46')]({},_0x1920ae,_0x461586['options']);return _0x2be6cd[_0x0adf('0x54')](_0x1920ae);}})[_0x0adf('0x19')](function(_0x457f4a){if(_0x457f4a){_0x1597de=_0x457f4a[_0x0adf('0x3e')];if(!_0x461586[_0x0adf('0x39')][_0x0adf('0x3f')](_0x0adf('0x40'))){_0x1920ae[_0x0adf('0x2a')]=qs[_0x0adf('0x2a')](_0x461586[_0x0adf('0x39')][_0x0adf('0x2a')]);_0x1920ae[_0x0adf('0x29')]=qs[_0x0adf('0x29')](_0x461586['query']['offset']);}return _0x2be6cd['getConfigurations'](_0x1920ae);}})[_0x0adf('0x19')](function(_0x699b7f){if(_0x699b7f){return _0x699b7f?{'count':_0x1597de,'rows':_0x699b7f}:null;}})[_0x0adf('0x19')](respondWithResult(_0x582351,null))[_0x0adf('0x23')](handleError(_0x582351,null));};exports[_0x0adf('0x57')]=function(_0x4c36fc,_0x22d5a6,_0x262e04){if(_0x4c36fc[_0x0adf('0x52')]['id']){delete _0x4c36fc[_0x0adf('0x52')]['id'];}return db[_0x0adf('0x34')][_0x0adf('0x55')]({'where':{'id':_0x4c36fc[_0x0adf('0x4b')]['id']}})['then'](handleEntityNotFound(_0x22d5a6,null))[_0x0adf('0x19')](function(_0x3aa8cd){if(_0x3aa8cd){_0x4c36fc[_0x0adf('0x52')][_0x0adf('0x58')]=_0x3aa8cd['id'];_0x4c36fc['body'][_0x0adf('0x59')]=integrations['getSubjects'](_0x4c36fc[_0x0adf('0x52')]['channel'],_0x4c36fc[_0x0adf('0x52')][_0x0adf('0x37')]);_0x4c36fc[_0x0adf('0x52')][_0x0adf('0x5a')]=integrations[_0x0adf('0x5b')](_0x4c36fc[_0x0adf('0x52')][_0x0adf('0x5c')],_0x4c36fc['body']['type']);return db[_0x0adf('0x56')][_0x0adf('0x51')](_0x4c36fc[_0x0adf('0x52')],{'include':[{'model':db[_0x0adf('0x5d')],'as':_0x0adf('0x59')},{'model':db[_0x0adf('0x5d')],'as':'Descriptions'}]});}return null;})[_0x0adf('0x19')](respondWithResult(_0x22d5a6,null))[_0x0adf('0x23')](handleError(_0x22d5a6,null));};exports[_0x0adf('0x5e')]=function(_0x4c5419,_0x331ead,_0x1e7162){var _0x3df1a7='';return db['ZendeskAccount'][_0x0adf('0x55')]({'where':{'id':_0x4c5419[_0x0adf('0x4b')]['id']},'attributes':['id',_0x0adf('0x5f'),_0x0adf('0x60'),_0x0adf('0x61'),'authType','remoteUri']})['then'](handleEntityNotFound(_0x331ead,null))['then'](function(_0x257fd2){if(_0x257fd2){_0x3df1a7=_0x257fd2[_0x0adf('0x62')];var _0x42d1fd=_0x3df1a7[_0x0adf('0x63')](-0x1);if(_0x42d1fd==='/'){_0x3df1a7=_0x3df1a7[_0x0adf('0x64')](0x0,_0x3df1a7['lastIndexOf'](_0x42d1fd));}var _0x1bffa1={'method':_0x0adf('0x65'),'uri':util['format'](_0x0adf('0x66'),_0x3df1a7,_0x0adf('0x67')),'json':!![]};switch(_0x257fd2['authType']){case _0x0adf('0x60'):_0x1bffa1['headers']={'Authorization':util['format'](_0x0adf('0x68'),new Buffer(util[_0x0adf('0x69')]('%s:%s',_0x257fd2[_0x0adf('0x5f')],_0x257fd2[_0x0adf('0x60')]))[_0x0adf('0x6a')]('base64'))};break;case'token':_0x1bffa1[_0x0adf('0x6b')]={'Authorization':util[_0x0adf('0x69')](_0x0adf('0x68'),new Buffer(util[_0x0adf('0x69')](_0x0adf('0x6c'),_0x257fd2['username'],_0x257fd2[_0x0adf('0x61')]))[_0x0adf('0x6a')](_0x0adf('0x6d')))};break;default:throw new db[(_0x0adf('0x6e'))]['ValidationError'](_0x0adf('0x6f'));}return rp(_0x1bffa1);}})[_0x0adf('0x19')](function(_0x15ad7c){if(_0x15ad7c){var _0x201ac5=[_0x0adf('0x70'),_0x0adf('0x71'),_0x0adf('0x72'),_0x0adf('0x73')];_[_0x0adf('0x74')](_0x15ad7c[_0x0adf('0x67')],function(_0x4c94f0){return _0x201ac5[_0x0adf('0x75')](_0x4c94f0['type']);});return{'count':_0x15ad7c[_0x0adf('0x67')][_0x0adf('0x3e')],'rows':_[_0x0adf('0x38')](_0x15ad7c['ticket_fields'],function(_0x479a34){return{'id':_0x479a34['id'],'name':_0x479a34[_0x0adf('0x76')]>0x7?_0x479a34[_0x0adf('0x77')]:_0x479a34[_0x0adf('0x37')],'custom':_0x479a34[_0x0adf('0x76')]>0x7?!![]:![],'options':_0x479a34['system_field_options']?_0x479a34['system_field_options']:_0x479a34[_0x0adf('0x78')]?_0x479a34['custom_field_options']:[]};})};}})['then'](respondWithResult(_0x331ead,null))[_0x0adf('0x23')](function(_0x6aa492){var _0x5eb3b4=_0x4c5419[_0x0adf('0x39')][_0x0adf('0x79')]?0x1f4:_0x6aa492[_0x0adf('0x7a')]||0x1f4;logger['error'](_0x0adf('0x7b'),_0x0adf('0x5e'),_0x5eb3b4,JSON['stringify'](_0x6aa492));delete _0x6aa492['name'];if(_0x5eb3b4===0x191){_0x5eb3b4=0x190;}_0x331ead[_0x0adf('0x26')](_0x5eb3b4)[_0x0adf('0x32')](_0x4c5419['query'][_0x0adf('0x79')]?{'message':_0x0adf('0x7c'),'statusCode':_0x6aa492['statusCode']}:_0x6aa492);});};