0cb9d235d2ac4f0d3b161647db8c33c836ceea8b
[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 _0xb84e=['type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','where','merge','VIRTUAL','filter','includeAll','include','findAll','rows','params','rawAttributes','find','body','getConfigurations','findOne','ZendeskConfiguration','filters','options','addConfiguration','AccountId','getSubjects','channel','Descriptions','create','ZendeskField','Subjects','getFields','username','token','authType','remoteUri','substring','lastIndexOf','GET','format','%s/%s','ticket_fields','password','headers','Basic\x20%s','toString','base64','Sequelize','ValidationError','Unknown\x20authentication\x20type','assignee','remove','position','title','custom_field_options','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','request','then','info','request\x20sent','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','ZendeskAccount,\x20%s,\x20%s','message','result','catch','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','stack','name','index','map','ZendeskAccount'];(function(_0x219f9f,_0x180b16){var _0x1b9b6d=function(_0x26180f){while(--_0x26180f){_0x219f9f['push'](_0x219f9f['shift']());}};_0x1b9b6d(++_0x180b16);}(_0xb84e,0xbf));var _0xeb84=function(_0x59d0cc,_0xa7c52b){_0x59d0cc=_0x59d0cc-0x0;var _0x2ae79f=_0xb84e[_0x59d0cc];return _0x2ae79f;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xeb84('0x0'));var rimraf=require(_0xeb84('0x1'));var zipdir=require(_0xeb84('0x2'));var jsonpatch=require(_0xeb84('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xeb84('0x4'));var Mustache=require(_0xeb84('0x5'));var util=require(_0xeb84('0x6'));var path=require(_0xeb84('0x7'));var sox=require(_0xeb84('0x8'));var csv=require(_0xeb84('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xeb84('0xa'));var crypto=require('crypto');var jsforce=require(_0xeb84('0xb'));var deskjs=require(_0xeb84('0xc'));var toCsv=require(_0xeb84('0x9'));var querystring=require(_0xeb84('0xd'));var Papa=require('papaparse');var Redis=require(_0xeb84('0xe'));var authService=require(_0xeb84('0xf'));var qs=require(_0xeb84('0x10'));var as=require(_0xeb84('0x11'));var hardwareService=require(_0xeb84('0x12'));var logger=require(_0xeb84('0x13'))(_0xeb84('0x14'));var utils=require(_0xeb84('0x15'));var config=require(_0xeb84('0x16'));var licenseUtil=require(_0xeb84('0x17'));var db=require(_0xeb84('0x18'))['db'];var integrations=require(_0xeb84('0x19'));var jayson=require(_0xeb84('0x1a'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x252937,_0x357214,_0x345e8b,_0x24cb39){return new BPromise(function(_0x460016,_0xf54282){var _0x4c4de8=_0x24cb39||client;return _0x4c4de8[_0xeb84('0x1b')](_0x252937,_0x345e8b)[_0xeb84('0x1c')](function(_0x105382){logger[_0xeb84('0x1d')]('ZendeskAccount,\x20%s,\x20%s',_0x357214,_0xeb84('0x1e'));logger[_0xeb84('0x1f')](_0xeb84('0x20'),_0x357214,_0xeb84('0x1e'),JSON[_0xeb84('0x21')](_0x105382));if(_0x105382['error']){if(_0x105382[_0xeb84('0x22')]['code']===0x1f4){logger[_0xeb84('0x22')](_0xeb84('0x23'),_0x357214,_0x105382[_0xeb84('0x22')]['message']);return _0xf54282(_0x105382['error'][_0xeb84('0x24')]);}logger[_0xeb84('0x22')](_0xeb84('0x23'),_0x357214,_0x105382[_0xeb84('0x22')][_0xeb84('0x24')]);return _0x460016(_0x105382[_0xeb84('0x22')][_0xeb84('0x24')]);}else{logger[_0xeb84('0x1d')](_0xeb84('0x23'),_0x357214,_0xeb84('0x1e'));_0x460016(_0x105382[_0xeb84('0x25')][_0xeb84('0x24')]);}})[_0xeb84('0x26')](function(_0x15e03a){logger[_0xeb84('0x22')](_0xeb84('0x23'),_0x357214,_0x15e03a);_0xf54282(_0x15e03a);});});}function respondWithStatusCode(_0x507115,_0x22ebf7){_0x22ebf7=_0x22ebf7||0xcc;return function(_0x64b4ac){if(_0x64b4ac){return _0x507115['sendStatus'](_0x22ebf7);}return _0x507115[_0xeb84('0x27')](_0x22ebf7)[_0xeb84('0x28')]();};}function respondWithResult(_0x95231,_0x993591){_0x993591=_0x993591||0xc8;return function(_0x3ccca6){if(_0x3ccca6){return _0x95231[_0xeb84('0x27')](_0x993591)[_0xeb84('0x29')](_0x3ccca6);}};}function respondWithFilteredResult(_0x4c805a,_0x4fae19){return function(_0x3cb622){if(_0x3cb622){var _0x162ca9=_0x3cb622[_0xeb84('0x2a')],_0x4628ef=_0x4fae19[_0xeb84('0x2b')],_0x364ef3=_0x4fae19[_0xeb84('0x2b')]+_0x4fae19[_0xeb84('0x2c')],_0x3b0a41;if(_0x364ef3>=_0x162ca9){_0x364ef3=_0x162ca9;_0x3b0a41=0xc8;}else{_0x3b0a41=0xce;}_0x4c805a[_0xeb84('0x27')](_0x3b0a41);return _0x4c805a[_0xeb84('0x2d')](_0xeb84('0x2e'),_0x4628ef+'-'+_0x364ef3+'/'+_0x162ca9)[_0xeb84('0x29')](_0x3cb622);}return null;};}function patchUpdates(_0xb914ec){return function(_0x4d5992){try{jsonpatch[_0xeb84('0x2f')](_0x4d5992,_0xb914ec,!![]);}catch(_0x42cf26){return BPromise[_0xeb84('0x30')](_0x42cf26);}return _0x4d5992[_0xeb84('0x31')]();};}function saveUpdates(_0x1f4bb3,_0x433d7f){return function(_0x39b09c){if(_0x39b09c){return _0x39b09c[_0xeb84('0x32')](_0x1f4bb3)[_0xeb84('0x1c')](function(_0x35061c){return _0x35061c;});}return null;};}function removeEntity(_0x466c08,_0x54b072){return function(_0x493af7){if(_0x493af7){return _0x493af7[_0xeb84('0x33')]()['then'](function(){_0x466c08[_0xeb84('0x27')](0xcc)[_0xeb84('0x28')]();});}};}function handleEntityNotFound(_0x378f18,_0xab18d8){return function(_0x5e985a){if(!_0x5e985a){_0x378f18['sendStatus'](0x194);}return _0x5e985a;};}function handleError(_0x27beb0,_0x3285cf){_0x3285cf=_0x3285cf||0x1f4;return function(_0x4ffa05){logger[_0xeb84('0x22')](_0x4ffa05[_0xeb84('0x34')]);if(_0x4ffa05['name']){delete _0x4ffa05[_0xeb84('0x35')];}_0x27beb0[_0xeb84('0x27')](_0x3285cf)['send'](_0x4ffa05);};}exports[_0xeb84('0x36')]=function(_0x5bbd79,_0x5cffee){var _0xb9ae36={},_0x5beb85={},_0x11640c={'count':0x0,'rows':[]};var _0x58380=_[_0xeb84('0x37')](db[_0xeb84('0x38')]['rawAttributes'],function(_0x18b22d){return{'name':_0x18b22d['fieldName'],'type':_0x18b22d[_0xeb84('0x39')][_0xeb84('0x3a')]};});_0x5beb85[_0xeb84('0x3b')]=_[_0xeb84('0x37')](_0x58380,_0xeb84('0x35'));_0x5beb85[_0xeb84('0x3c')]=_[_0xeb84('0x3d')](_0x5bbd79[_0xeb84('0x3c')]);_0x5beb85['filters']=_[_0xeb84('0x3e')](_0x5beb85[_0xeb84('0x3b')],_0x5beb85[_0xeb84('0x3c')]);_0xb9ae36[_0xeb84('0x3f')]=_[_0xeb84('0x3e')](_0x5beb85[_0xeb84('0x3b')],qs['fields'](_0x5bbd79['query'][_0xeb84('0x40')]));_0xb9ae36['attributes']=_0xb9ae36[_0xeb84('0x3f')][_0xeb84('0x41')]?_0xb9ae36[_0xeb84('0x3f')]:_0x5beb85['model'];if(!_0x5bbd79[_0xeb84('0x3c')][_0xeb84('0x42')](_0xeb84('0x43'))){_0xb9ae36['limit']=qs[_0xeb84('0x2c')](_0x5bbd79['query'][_0xeb84('0x2c')]);_0xb9ae36['offset']=qs[_0xeb84('0x2b')](_0x5bbd79[_0xeb84('0x3c')]['offset']);}_0xb9ae36['order']=qs[_0xeb84('0x44')](_0x5bbd79[_0xeb84('0x3c')][_0xeb84('0x44')]);_0xb9ae36['where']=qs['filters'](_[_0xeb84('0x45')](_0x5bbd79[_0xeb84('0x3c')],_0x5beb85['filters']),_0x58380);if(_0x5bbd79[_0xeb84('0x3c')]['filter']){_0xb9ae36[_0xeb84('0x46')]=_[_0xeb84('0x47')](_0xb9ae36['where'],{'$or':_[_0xeb84('0x37')](_0x58380,function(_0x21004c){if(_0x21004c[_0xeb84('0x39')]!==_0xeb84('0x48')){var _0x38a77d={};_0x38a77d[_0x21004c[_0xeb84('0x35')]]={'$like':'%'+_0x5bbd79['query'][_0xeb84('0x49')]+'%'};return _0x38a77d;}})});}_0xb9ae36=_[_0xeb84('0x47')]({},_0xb9ae36,_0x5bbd79['options']);var _0x473b34={'where':_0xb9ae36['where']};return db['ZendeskAccount'][_0xeb84('0x2a')](_0x473b34)[_0xeb84('0x1c')](function(_0xba4942){_0x11640c[_0xeb84('0x2a')]=_0xba4942;if(_0x5bbd79['query'][_0xeb84('0x4a')]){_0xb9ae36[_0xeb84('0x4b')]=[{'all':!![]}];}return db[_0xeb84('0x38')][_0xeb84('0x4c')](_0xb9ae36);})[_0xeb84('0x1c')](function(_0x533224){_0x11640c[_0xeb84('0x4d')]=_0x533224;return _0x11640c;})['then'](respondWithFilteredResult(_0x5cffee,_0xb9ae36))['catch'](handleError(_0x5cffee,null));};exports['show']=function(_0x24cc99,_0x1087da){var _0xbd1e62={'raw':![],'where':{'id':_0x24cc99[_0xeb84('0x4e')]['id']}},_0x5ec2a7={};_0x5ec2a7[_0xeb84('0x3b')]=_[_0xeb84('0x3d')](db[_0xeb84('0x38')][_0xeb84('0x4f')]);_0x5ec2a7['query']=_['keys'](_0x24cc99['query']);_0x5ec2a7['filters']=_[_0xeb84('0x3e')](_0x5ec2a7[_0xeb84('0x3b')],_0x5ec2a7[_0xeb84('0x3c')]);_0xbd1e62['attributes']=_[_0xeb84('0x3e')](_0x5ec2a7[_0xeb84('0x3b')],qs['fields'](_0x24cc99['query'][_0xeb84('0x40')]));_0xbd1e62[_0xeb84('0x3f')]=_0xbd1e62['attributes']['length']?_0xbd1e62[_0xeb84('0x3f')]:_0x5ec2a7['model'];if(_0x24cc99[_0xeb84('0x3c')]['includeAll']){_0xbd1e62['include']=[{'all':!![]}];}_0xbd1e62=_[_0xeb84('0x47')]({},_0xbd1e62,_0x24cc99['options']);return db[_0xeb84('0x38')][_0xeb84('0x50')](_0xbd1e62)[_0xeb84('0x1c')](handleEntityNotFound(_0x1087da,null))['then'](respondWithResult(_0x1087da,null))[_0xeb84('0x26')](handleError(_0x1087da,null));};exports['create']=function(_0x5f54ac,_0x8d4434){return db[_0xeb84('0x38')]['create'](_0x5f54ac['body'],{})['then'](respondWithResult(_0x8d4434,0xc9))['catch'](handleError(_0x8d4434,null));};exports[_0xeb84('0x32')]=function(_0xf560be,_0x2d6212){if(_0xf560be[_0xeb84('0x51')]['id']){delete _0xf560be['body']['id'];}return db[_0xeb84('0x38')][_0xeb84('0x50')]({'where':{'id':_0xf560be['params']['id']}})[_0xeb84('0x1c')](handleEntityNotFound(_0x2d6212,null))[_0xeb84('0x1c')](saveUpdates(_0xf560be[_0xeb84('0x51')],null))[_0xeb84('0x1c')](respondWithResult(_0x2d6212,null))['catch'](handleError(_0x2d6212,null));};exports[_0xeb84('0x33')]=function(_0x5bea0f,_0x3d394a){return db[_0xeb84('0x38')][_0xeb84('0x50')]({'where':{'id':_0x5bea0f['params']['id']}})[_0xeb84('0x1c')](handleEntityNotFound(_0x3d394a,null))[_0xeb84('0x1c')](removeEntity(_0x3d394a,null))[_0xeb84('0x26')](handleError(_0x3d394a,null));};exports[_0xeb84('0x52')]=function(_0x4060bd,_0x19d244,_0x1c6c5d){var _0x2ff38d={};var _0x412d5f={};var _0x1dc29a;var _0x4bb984;return db['ZendeskAccount'][_0xeb84('0x53')]({'where':{'id':_0x4060bd[_0xeb84('0x4e')]['id']}})[_0xeb84('0x1c')](handleEntityNotFound(_0x19d244,null))[_0xeb84('0x1c')](function(_0xff27af){if(_0xff27af){_0x1dc29a=_0xff27af;_0x412d5f[_0xeb84('0x3b')]=_[_0xeb84('0x3d')](db[_0xeb84('0x54')]['rawAttributes']);_0x412d5f['query']=_[_0xeb84('0x3d')](_0x4060bd[_0xeb84('0x3c')]);_0x412d5f[_0xeb84('0x55')]=_[_0xeb84('0x3e')](_0x412d5f[_0xeb84('0x3b')],_0x412d5f['query']);_0x2ff38d[_0xeb84('0x3f')]=_[_0xeb84('0x3e')](_0x412d5f[_0xeb84('0x3b')],qs['fields'](_0x4060bd[_0xeb84('0x3c')]['fields']));_0x2ff38d['attributes']=_0x2ff38d[_0xeb84('0x3f')]['length']?_0x2ff38d[_0xeb84('0x3f')]:_0x412d5f['model'];_0x2ff38d['order']=qs['sort'](_0x4060bd['query'][_0xeb84('0x44')]);_0x2ff38d[_0xeb84('0x46')]=qs[_0xeb84('0x55')](_['pick'](_0x4060bd[_0xeb84('0x3c')],_0x412d5f[_0xeb84('0x55')]));if(_0x4060bd[_0xeb84('0x3c')][_0xeb84('0x49')]){_0x2ff38d[_0xeb84('0x46')]=_['merge'](_0x2ff38d[_0xeb84('0x46')],{'$or':_[_0xeb84('0x37')](_0x2ff38d[_0xeb84('0x3f')],function(_0x57474c){var _0x3791ab={};_0x3791ab[_0x57474c]={'$like':'%'+_0x4060bd[_0xeb84('0x3c')][_0xeb84('0x49')]+'%'};return _0x3791ab;})});}_0x2ff38d=_['merge']({},_0x2ff38d,_0x4060bd[_0xeb84('0x56')]);return _0x1dc29a[_0xeb84('0x52')](_0x2ff38d);}})['then'](function(_0x43c7f3){if(_0x43c7f3){_0x4bb984=_0x43c7f3[_0xeb84('0x41')];if(!_0x4060bd[_0xeb84('0x3c')][_0xeb84('0x42')](_0xeb84('0x43'))){_0x2ff38d['limit']=qs[_0xeb84('0x2c')](_0x4060bd['query']['limit']);_0x2ff38d[_0xeb84('0x2b')]=qs[_0xeb84('0x2b')](_0x4060bd['query']['offset']);}return _0x1dc29a['getConfigurations'](_0x2ff38d);}})[_0xeb84('0x1c')](function(_0x1d1f06){if(_0x1d1f06){return _0x1d1f06?{'count':_0x4bb984,'rows':_0x1d1f06}:null;}})[_0xeb84('0x1c')](respondWithResult(_0x19d244,null))[_0xeb84('0x26')](handleError(_0x19d244,null));};exports[_0xeb84('0x57')]=function(_0x327c99,_0x371465,_0x25daf1){if(_0x327c99[_0xeb84('0x51')]['id']){delete _0x327c99[_0xeb84('0x51')]['id'];}return db[_0xeb84('0x38')][_0xeb84('0x53')]({'where':{'id':_0x327c99[_0xeb84('0x4e')]['id']}})['then'](handleEntityNotFound(_0x371465,null))['then'](function(_0x287900){if(_0x287900){_0x327c99['body'][_0xeb84('0x58')]=_0x287900['id'];_0x327c99[_0xeb84('0x51')]['Subjects']=integrations[_0xeb84('0x59')](_0x327c99['body'][_0xeb84('0x5a')],_0x327c99[_0xeb84('0x51')]['type']);_0x327c99[_0xeb84('0x51')][_0xeb84('0x5b')]=integrations['getDescriptions'](_0x327c99[_0xeb84('0x51')]['channel'],_0x327c99[_0xeb84('0x51')][_0xeb84('0x39')]);return db[_0xeb84('0x54')][_0xeb84('0x5c')](_0x327c99[_0xeb84('0x51')],{'include':[{'model':db[_0xeb84('0x5d')],'as':_0xeb84('0x5e')},{'model':db[_0xeb84('0x5d')],'as':_0xeb84('0x5b')}]});}return null;})[_0xeb84('0x1c')](respondWithResult(_0x371465,null))[_0xeb84('0x26')](handleError(_0x371465,null));};exports[_0xeb84('0x5f')]=function(_0x7da444,_0x1ffa70,_0x4ef5ef){var _0x5ecf89='';return db[_0xeb84('0x38')][_0xeb84('0x53')]({'where':{'id':_0x7da444[_0xeb84('0x4e')]['id']},'attributes':['id',_0xeb84('0x60'),'password',_0xeb84('0x61'),_0xeb84('0x62'),_0xeb84('0x63')]})['then'](handleEntityNotFound(_0x1ffa70,null))[_0xeb84('0x1c')](function(_0xace23d){if(_0xace23d){_0x5ecf89=_0xace23d[_0xeb84('0x63')];var _0xc529ed=_0x5ecf89['slice'](-0x1);if(_0xc529ed==='/'){_0x5ecf89=_0x5ecf89[_0xeb84('0x64')](0x0,_0x5ecf89[_0xeb84('0x65')](_0xc529ed));}var _0x1c90b8={'method':_0xeb84('0x66'),'uri':util[_0xeb84('0x67')](_0xeb84('0x68'),_0x5ecf89,_0xeb84('0x69')),'json':!![]};switch(_0xace23d[_0xeb84('0x62')]){case _0xeb84('0x6a'):_0x1c90b8[_0xeb84('0x6b')]={'Authorization':util[_0xeb84('0x67')](_0xeb84('0x6c'),new Buffer(util[_0xeb84('0x67')]('%s:%s',_0xace23d[_0xeb84('0x60')],_0xace23d[_0xeb84('0x6a')]))[_0xeb84('0x6d')]('base64'))};break;case'token':_0x1c90b8[_0xeb84('0x6b')]={'Authorization':util['format'](_0xeb84('0x6c'),new Buffer(util[_0xeb84('0x67')]('%s/token:%s',_0xace23d[_0xeb84('0x60')],_0xace23d[_0xeb84('0x61')]))[_0xeb84('0x6d')](_0xeb84('0x6e')))};break;default:throw new db[(_0xeb84('0x6f'))][(_0xeb84('0x70'))](_0xeb84('0x71'));}return rp(_0x1c90b8);}})['then'](function(_0x3e4664){if(_0x3e4664){var _0x37ae25=['subject','description','group',_0xeb84('0x72')];_[_0xeb84('0x73')](_0x3e4664['ticket_fields'],function(_0x521770){return _0x37ae25['includes'](_0x521770['type']);});return{'count':_0x3e4664[_0xeb84('0x69')][_0xeb84('0x41')],'rows':_[_0xeb84('0x37')](_0x3e4664[_0xeb84('0x69')],function(_0x372d92){return{'id':_0x372d92['id'],'name':_0x372d92[_0xeb84('0x74')]>0x7?_0x372d92[_0xeb84('0x75')]:_0x372d92['type'],'custom':_0x372d92['position']>0x7?!![]:![],'options':_0x372d92['system_field_options']?_0x372d92['system_field_options']:_0x372d92[_0xeb84('0x76')]?_0x372d92[_0xeb84('0x76')]:[]};})};}})['then'](respondWithResult(_0x1ffa70,null))[_0xeb84('0x26')](function(_0xff9806){var _0x2ed7ec=_0x7da444[_0xeb84('0x3c')][_0xeb84('0x77')]?0x1f4:_0xff9806[_0xeb84('0x78')]||0x1f4;logger[_0xeb84('0x22')](_0xeb84('0x79'),_0xeb84('0x5f'),_0x2ed7ec,JSON[_0xeb84('0x21')](_0xff9806));delete _0xff9806[_0xeb84('0x35')];if(_0x2ed7ec===0x191){_0x2ed7ec=0x190;}_0x1ffa70[_0xeb84('0x27')](_0x2ed7ec)[_0xeb84('0x7a')](_0x7da444[_0xeb84('0x3c')][_0xeb84('0x77')]?{'message':_0xeb84('0x7b'),'statusCode':_0xff9806[_0xeb84('0x78')]}:_0xff9806);});};