7a30dfdaddbb0bcbcec4a34126ea6cafb3b4a190
[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 _0x826a=['Descriptions','getDescriptions','ZendeskField','getFields','username','password','token','authType','remoteUri','slice','lastIndexOf','GET','format','%s/%s','headers','Basic\x20%s','%s:%s','toString','%s/token:%s','base64','Sequelize','subject','description','group','assignee','remove','ticket_fields','includes','position','title','system_field_options','custom_field_options','test','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','statusCode','rimraf','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','request','info','ZendeskAccount,\x20%s,\x20%s','request\x20sent','ZendeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','sendStatus','end','json','count','offset','limit','status','set','Content-Range','reject','save','then','destroy','stack','name','send','index','ZendeskAccount','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','includeAll','include','findAll','rows','rawAttributes','length','find','create','body','update','params','getConfigurations','findOne','ZendeskConfiguration','order','options','addConfiguration','AccountId','Subjects','getSubjects'];(function(_0x4bada7,_0x2a529e){var _0x33832f=function(_0x35cd5c){while(--_0x35cd5c){_0x4bada7['push'](_0x4bada7['shift']());}};_0x33832f(++_0x2a529e);}(_0x826a,0x1aa));var _0xa826=function(_0x7a71dc,_0x196f65){_0x7a71dc=_0x7a71dc-0x0;var _0x295fe2=_0x826a[_0x7a71dc];return _0x295fe2;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa826('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa826('0x1'));var rp=require('request-promise');var moment=require(_0xa826('0x2'));var BPromise=require(_0xa826('0x3'));var Mustache=require(_0xa826('0x4'));var util=require(_0xa826('0x5'));var path=require('path');var sox=require(_0xa826('0x6'));var csv=require(_0xa826('0x7'));var ejs=require(_0xa826('0x8'));var fs=require('fs');var fs_extra=require(_0xa826('0x9'));var _=require(_0xa826('0xa'));var squel=require(_0xa826('0xb'));var crypto=require(_0xa826('0xc'));var jsforce=require(_0xa826('0xd'));var deskjs=require(_0xa826('0xe'));var toCsv=require(_0xa826('0x7'));var querystring=require(_0xa826('0xf'));var Papa=require(_0xa826('0x10'));var Redis=require(_0xa826('0x11'));var authService=require(_0xa826('0x12'));var qs=require(_0xa826('0x13'));var as=require(_0xa826('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa826('0x15'))('api');var utils=require(_0xa826('0x16'));var config=require(_0xa826('0x17'));var licenseUtil=require(_0xa826('0x18'));var db=require(_0xa826('0x19'))['db'];var integrations=require(_0xa826('0x1a'));var jayson=require(_0xa826('0x1b'));var client=jayson[_0xa826('0x1c')]['http']({'port':0x232a});function respondWithRpcPromise(_0x74f6ec,_0x5c6cee,_0x3e99b0,_0x41c0c2){return new BPromise(function(_0x5dc0c7,_0x512ba9){var _0x49c91e=_0x41c0c2||client;return _0x49c91e[_0xa826('0x1d')](_0x74f6ec,_0x3e99b0)['then'](function(_0x4c546b){logger[_0xa826('0x1e')](_0xa826('0x1f'),_0x5c6cee,_0xa826('0x20'));logger['debug'](_0xa826('0x21'),_0x5c6cee,_0xa826('0x20'),JSON[_0xa826('0x22')](_0x4c546b));if(_0x4c546b[_0xa826('0x23')]){if(_0x4c546b[_0xa826('0x23')]['code']===0x1f4){logger[_0xa826('0x23')](_0xa826('0x1f'),_0x5c6cee,_0x4c546b[_0xa826('0x23')]['message']);return _0x512ba9(_0x4c546b['error'][_0xa826('0x24')]);}logger[_0xa826('0x23')](_0xa826('0x1f'),_0x5c6cee,_0x4c546b[_0xa826('0x23')][_0xa826('0x24')]);return _0x5dc0c7(_0x4c546b['error'][_0xa826('0x24')]);}else{logger[_0xa826('0x1e')](_0xa826('0x1f'),_0x5c6cee,'request\x20sent');_0x5dc0c7(_0x4c546b['result'][_0xa826('0x24')]);}})[_0xa826('0x25')](function(_0x3b43da){logger['error'](_0xa826('0x1f'),_0x5c6cee,_0x3b43da);_0x512ba9(_0x3b43da);});});}function respondWithStatusCode(_0x26ef25,_0x1d4ade){_0x1d4ade=_0x1d4ade||0xcc;return function(_0x448b4d){if(_0x448b4d){return _0x26ef25[_0xa826('0x26')](_0x1d4ade);}return _0x26ef25['status'](_0x1d4ade)[_0xa826('0x27')]();};}function respondWithResult(_0x4fa5db,_0x17ef2d){_0x17ef2d=_0x17ef2d||0xc8;return function(_0x174f16){if(_0x174f16){return _0x4fa5db['status'](_0x17ef2d)[_0xa826('0x28')](_0x174f16);}};}function respondWithFilteredResult(_0xfa4d94,_0x38c919){return function(_0xf132e0){if(_0xf132e0){var _0x1107a4=_0xf132e0[_0xa826('0x29')],_0x3c6307=_0x38c919[_0xa826('0x2a')],_0x14e836=_0x38c919[_0xa826('0x2a')]+_0x38c919[_0xa826('0x2b')],_0x3b9c6d;if(_0x14e836>=_0x1107a4){_0x14e836=_0x1107a4;_0x3b9c6d=0xc8;}else{_0x3b9c6d=0xce;}_0xfa4d94[_0xa826('0x2c')](_0x3b9c6d);return _0xfa4d94[_0xa826('0x2d')](_0xa826('0x2e'),_0x3c6307+'-'+_0x14e836+'/'+_0x1107a4)[_0xa826('0x28')](_0xf132e0);}return null;};}function patchUpdates(_0x55886f){return function(_0x19bd84){try{jsonpatch['apply'](_0x19bd84,_0x55886f,!![]);}catch(_0x2dd810){return BPromise[_0xa826('0x2f')](_0x2dd810);}return _0x19bd84[_0xa826('0x30')]();};}function saveUpdates(_0x27d779,_0xddac0f){return function(_0x5d40f5){if(_0x5d40f5){return _0x5d40f5['update'](_0x27d779)[_0xa826('0x31')](function(_0x6bf769){return _0x6bf769;});}return null;};}function removeEntity(_0xd666b7,_0x45a69e){return function(_0x4cec68){if(_0x4cec68){return _0x4cec68[_0xa826('0x32')]()[_0xa826('0x31')](function(){_0xd666b7['status'](0xcc)[_0xa826('0x27')]();});}};}function handleEntityNotFound(_0x56ddc4,_0x189c71){return function(_0x40093a){if(!_0x40093a){_0x56ddc4[_0xa826('0x26')](0x194);}return _0x40093a;};}function handleError(_0x16700f,_0x24efa7){_0x24efa7=_0x24efa7||0x1f4;return function(_0x4c00bd){logger[_0xa826('0x23')](_0x4c00bd[_0xa826('0x33')]);if(_0x4c00bd[_0xa826('0x34')]){delete _0x4c00bd[_0xa826('0x34')];}_0x16700f[_0xa826('0x2c')](_0x24efa7)[_0xa826('0x35')](_0x4c00bd);};}exports[_0xa826('0x36')]=function(_0x1aaeae,_0x3bbbdc){var _0xd2b875={},_0xd82ea2={},_0x5e5916={'count':0x0,'rows':[]};var _0x46f50e=_['map'](db[_0xa826('0x37')]['rawAttributes'],function(_0x179c29){return{'name':_0x179c29[_0xa826('0x38')],'type':_0x179c29[_0xa826('0x39')][_0xa826('0x3a')]};});_0xd82ea2[_0xa826('0x3b')]=_[_0xa826('0x3c')](_0x46f50e,_0xa826('0x34'));_0xd82ea2[_0xa826('0x3d')]=_[_0xa826('0x3e')](_0x1aaeae[_0xa826('0x3d')]);_0xd82ea2[_0xa826('0x3f')]=_[_0xa826('0x40')](_0xd82ea2['model'],_0xd82ea2[_0xa826('0x3d')]);_0xd2b875[_0xa826('0x41')]=_[_0xa826('0x40')](_0xd82ea2['model'],qs[_0xa826('0x42')](_0x1aaeae[_0xa826('0x3d')]['fields']));_0xd2b875[_0xa826('0x41')]=_0xd2b875['attributes']['length']?_0xd2b875[_0xa826('0x41')]:_0xd82ea2[_0xa826('0x3b')];if(!_0x1aaeae[_0xa826('0x3d')][_0xa826('0x43')](_0xa826('0x44'))){_0xd2b875[_0xa826('0x2b')]=qs['limit'](_0x1aaeae[_0xa826('0x3d')][_0xa826('0x2b')]);_0xd2b875[_0xa826('0x2a')]=qs[_0xa826('0x2a')](_0x1aaeae[_0xa826('0x3d')][_0xa826('0x2a')]);}_0xd2b875['order']=qs[_0xa826('0x45')](_0x1aaeae[_0xa826('0x3d')][_0xa826('0x45')]);_0xd2b875[_0xa826('0x46')]=qs[_0xa826('0x3f')](_['pick'](_0x1aaeae[_0xa826('0x3d')],_0xd82ea2[_0xa826('0x3f')]),_0x46f50e);if(_0x1aaeae[_0xa826('0x3d')][_0xa826('0x47')]){_0xd2b875[_0xa826('0x46')]=_[_0xa826('0x48')](_0xd2b875[_0xa826('0x46')],{'$or':_[_0xa826('0x3c')](_0x46f50e,function(_0x459c79){if(_0x459c79[_0xa826('0x39')]!==_0xa826('0x49')){var _0x2921a5={};_0x2921a5[_0x459c79['name']]={'$like':'%'+_0x1aaeae[_0xa826('0x3d')][_0xa826('0x47')]+'%'};return _0x2921a5;}})});}_0xd2b875=_[_0xa826('0x48')]({},_0xd2b875,_0x1aaeae['options']);var _0x24122e={'where':_0xd2b875[_0xa826('0x46')]};return db[_0xa826('0x37')][_0xa826('0x29')](_0x24122e)[_0xa826('0x31')](function(_0x58ac74){_0x5e5916[_0xa826('0x29')]=_0x58ac74;if(_0x1aaeae[_0xa826('0x3d')][_0xa826('0x4a')]){_0xd2b875[_0xa826('0x4b')]=[{'all':!![]}];}return db[_0xa826('0x37')][_0xa826('0x4c')](_0xd2b875);})[_0xa826('0x31')](function(_0x5def02){_0x5e5916[_0xa826('0x4d')]=_0x5def02;return _0x5e5916;})['then'](respondWithFilteredResult(_0x3bbbdc,_0xd2b875))['catch'](handleError(_0x3bbbdc,null));};exports['show']=function(_0x26a858,_0x35d118){var _0x15a137={'raw':![],'where':{'id':_0x26a858['params']['id']}},_0x24143b={};_0x24143b[_0xa826('0x3b')]=_['keys'](db['ZendeskAccount'][_0xa826('0x4e')]);_0x24143b[_0xa826('0x3d')]=_['keys'](_0x26a858[_0xa826('0x3d')]);_0x24143b[_0xa826('0x3f')]=_['intersection'](_0x24143b['model'],_0x24143b['query']);_0x15a137['attributes']=_['intersection'](_0x24143b['model'],qs['fields'](_0x26a858[_0xa826('0x3d')]['fields']));_0x15a137[_0xa826('0x41')]=_0x15a137['attributes'][_0xa826('0x4f')]?_0x15a137[_0xa826('0x41')]:_0x24143b[_0xa826('0x3b')];if(_0x26a858[_0xa826('0x3d')][_0xa826('0x4a')]){_0x15a137['include']=[{'all':!![]}];}_0x15a137=_[_0xa826('0x48')]({},_0x15a137,_0x26a858['options']);return db['ZendeskAccount'][_0xa826('0x50')](_0x15a137)[_0xa826('0x31')](handleEntityNotFound(_0x35d118,null))['then'](respondWithResult(_0x35d118,null))[_0xa826('0x25')](handleError(_0x35d118,null));};exports[_0xa826('0x51')]=function(_0x410840,_0x4be11a){return db[_0xa826('0x37')][_0xa826('0x51')](_0x410840[_0xa826('0x52')],{})[_0xa826('0x31')](respondWithResult(_0x4be11a,0xc9))[_0xa826('0x25')](handleError(_0x4be11a,null));};exports[_0xa826('0x53')]=function(_0x18ffd7,_0x1080d1){if(_0x18ffd7['body']['id']){delete _0x18ffd7[_0xa826('0x52')]['id'];}return db[_0xa826('0x37')][_0xa826('0x50')]({'where':{'id':_0x18ffd7[_0xa826('0x54')]['id']}})[_0xa826('0x31')](handleEntityNotFound(_0x1080d1,null))['then'](saveUpdates(_0x18ffd7[_0xa826('0x52')],null))[_0xa826('0x31')](respondWithResult(_0x1080d1,null))[_0xa826('0x25')](handleError(_0x1080d1,null));};exports['destroy']=function(_0x19f2c0,_0x1623e2){return db['ZendeskAccount'][_0xa826('0x50')]({'where':{'id':_0x19f2c0[_0xa826('0x54')]['id']}})[_0xa826('0x31')](handleEntityNotFound(_0x1623e2,null))[_0xa826('0x31')](removeEntity(_0x1623e2,null))[_0xa826('0x25')](handleError(_0x1623e2,null));};exports[_0xa826('0x55')]=function(_0x21469f,_0x115337,_0x1d5ad1){var _0x2287ea={};var _0x1745ea={};var _0x4a7ba6;var _0x39132b;return db[_0xa826('0x37')][_0xa826('0x56')]({'where':{'id':_0x21469f[_0xa826('0x54')]['id']}})[_0xa826('0x31')](handleEntityNotFound(_0x115337,null))[_0xa826('0x31')](function(_0x2e746a){if(_0x2e746a){_0x4a7ba6=_0x2e746a;_0x1745ea[_0xa826('0x3b')]=_['keys'](db[_0xa826('0x57')][_0xa826('0x4e')]);_0x1745ea[_0xa826('0x3d')]=_['keys'](_0x21469f[_0xa826('0x3d')]);_0x1745ea[_0xa826('0x3f')]=_[_0xa826('0x40')](_0x1745ea['model'],_0x1745ea['query']);_0x2287ea[_0xa826('0x41')]=_[_0xa826('0x40')](_0x1745ea[_0xa826('0x3b')],qs[_0xa826('0x42')](_0x21469f['query'][_0xa826('0x42')]));_0x2287ea[_0xa826('0x41')]=_0x2287ea[_0xa826('0x41')][_0xa826('0x4f')]?_0x2287ea[_0xa826('0x41')]:_0x1745ea[_0xa826('0x3b')];_0x2287ea[_0xa826('0x58')]=qs[_0xa826('0x45')](_0x21469f[_0xa826('0x3d')]['sort']);_0x2287ea['where']=qs['filters'](_['pick'](_0x21469f[_0xa826('0x3d')],_0x1745ea[_0xa826('0x3f')]));if(_0x21469f[_0xa826('0x3d')][_0xa826('0x47')]){_0x2287ea[_0xa826('0x46')]=_[_0xa826('0x48')](_0x2287ea['where'],{'$or':_[_0xa826('0x3c')](_0x2287ea[_0xa826('0x41')],function(_0x33e682){var _0x5a5bce={};_0x5a5bce[_0x33e682]={'$like':'%'+_0x21469f[_0xa826('0x3d')][_0xa826('0x47')]+'%'};return _0x5a5bce;})});}_0x2287ea=_[_0xa826('0x48')]({},_0x2287ea,_0x21469f[_0xa826('0x59')]);return _0x4a7ba6[_0xa826('0x55')](_0x2287ea);}})[_0xa826('0x31')](function(_0x3b440a){if(_0x3b440a){_0x39132b=_0x3b440a[_0xa826('0x4f')];if(!_0x21469f[_0xa826('0x3d')][_0xa826('0x43')](_0xa826('0x44'))){_0x2287ea[_0xa826('0x2b')]=qs[_0xa826('0x2b')](_0x21469f[_0xa826('0x3d')][_0xa826('0x2b')]);_0x2287ea['offset']=qs[_0xa826('0x2a')](_0x21469f['query'][_0xa826('0x2a')]);}return _0x4a7ba6['getConfigurations'](_0x2287ea);}})[_0xa826('0x31')](function(_0x53311f){if(_0x53311f){return _0x53311f?{'count':_0x39132b,'rows':_0x53311f}:null;}})[_0xa826('0x31')](respondWithResult(_0x115337,null))[_0xa826('0x25')](handleError(_0x115337,null));};exports[_0xa826('0x5a')]=function(_0x545eaa,_0x5d41f8,_0x5ea2d2){if(_0x545eaa[_0xa826('0x52')]['id']){delete _0x545eaa[_0xa826('0x52')]['id'];}return db[_0xa826('0x37')]['findOne']({'where':{'id':_0x545eaa[_0xa826('0x54')]['id']}})[_0xa826('0x31')](handleEntityNotFound(_0x5d41f8,null))[_0xa826('0x31')](function(_0x425fe2){if(_0x425fe2){_0x545eaa['body'][_0xa826('0x5b')]=_0x425fe2['id'];_0x545eaa[_0xa826('0x52')][_0xa826('0x5c')]=integrations[_0xa826('0x5d')](_0x545eaa[_0xa826('0x52')]['channel'],_0x545eaa['body'][_0xa826('0x39')]);_0x545eaa[_0xa826('0x52')][_0xa826('0x5e')]=integrations[_0xa826('0x5f')](_0x545eaa[_0xa826('0x52')]['channel'],_0x545eaa['body'][_0xa826('0x39')]);return db[_0xa826('0x57')][_0xa826('0x51')](_0x545eaa[_0xa826('0x52')],{'include':[{'model':db[_0xa826('0x60')],'as':_0xa826('0x5c')},{'model':db['ZendeskField'],'as':_0xa826('0x5e')}]});}return null;})['then'](respondWithResult(_0x5d41f8,null))[_0xa826('0x25')](handleError(_0x5d41f8,null));};exports[_0xa826('0x61')]=function(_0x53b55f,_0x2addbf,_0x556a5d){var _0x108510='';return db['ZendeskAccount'][_0xa826('0x56')]({'where':{'id':_0x53b55f[_0xa826('0x54')]['id']},'attributes':['id',_0xa826('0x62'),_0xa826('0x63'),_0xa826('0x64'),_0xa826('0x65'),'remoteUri']})['then'](handleEntityNotFound(_0x2addbf,null))[_0xa826('0x31')](function(_0x575185){if(_0x575185){_0x108510=_0x575185[_0xa826('0x66')];var _0x1b3c99=_0x108510[_0xa826('0x67')](-0x1);if(_0x1b3c99==='/'){_0x108510=_0x108510['substring'](0x0,_0x108510[_0xa826('0x68')](_0x1b3c99));}var _0x3c4ea8={'method':_0xa826('0x69'),'uri':util[_0xa826('0x6a')](_0xa826('0x6b'),_0x108510,'ticket_fields'),'json':!![]};switch(_0x575185[_0xa826('0x65')]){case _0xa826('0x63'):_0x3c4ea8[_0xa826('0x6c')]={'Authorization':util[_0xa826('0x6a')](_0xa826('0x6d'),new Buffer(util[_0xa826('0x6a')](_0xa826('0x6e'),_0x575185[_0xa826('0x62')],_0x575185[_0xa826('0x63')]))[_0xa826('0x6f')]('base64'))};break;case _0xa826('0x64'):_0x3c4ea8[_0xa826('0x6c')]={'Authorization':util['format']('Basic\x20%s',new Buffer(util[_0xa826('0x6a')](_0xa826('0x70'),_0x575185['username'],_0x575185[_0xa826('0x64')]))[_0xa826('0x6f')](_0xa826('0x71')))};break;default:throw new db[(_0xa826('0x72'))]['ValidationError']('Unknown\x20authentication\x20type');}return rp(_0x3c4ea8);}})[_0xa826('0x31')](function(_0x16056e){if(_0x16056e){var _0x4fb14a=[_0xa826('0x73'),_0xa826('0x74'),_0xa826('0x75'),_0xa826('0x76')];_[_0xa826('0x77')](_0x16056e[_0xa826('0x78')],function(_0x22baee){return _0x4fb14a[_0xa826('0x79')](_0x22baee['type']);});return{'count':_0x16056e[_0xa826('0x78')][_0xa826('0x4f')],'rows':_[_0xa826('0x3c')](_0x16056e[_0xa826('0x78')],function(_0x4c2d51){return{'id':_0x4c2d51['id'],'name':_0x4c2d51[_0xa826('0x7a')]>0x7?_0x4c2d51[_0xa826('0x7b')]:_0x4c2d51[_0xa826('0x39')],'custom':_0x4c2d51[_0xa826('0x7a')]>0x7?!![]:![],'options':_0x4c2d51[_0xa826('0x7c')]?_0x4c2d51[_0xa826('0x7c')]:_0x4c2d51[_0xa826('0x7d')]?_0x4c2d51['custom_field_options']:[]};})};}})[_0xa826('0x31')](respondWithResult(_0x2addbf,null))[_0xa826('0x25')](function(_0x17caf5){var _0x2188b6=_0x53b55f[_0xa826('0x3d')][_0xa826('0x7e')]?0x1f4:_0x17caf5['statusCode']||0x1f4;logger[_0xa826('0x23')](_0xa826('0x7f'),_0xa826('0x61'),_0x2188b6,JSON['stringify'](_0x17caf5));delete _0x17caf5[_0xa826('0x34')];if(_0x2188b6===0x191){_0x2188b6=0x190;}_0x2addbf[_0xa826('0x2c')](_0x2188b6)[_0xa826('0x35')](_0x53b55f[_0xa826('0x3d')]['test']?{'message':_0xa826('0x80'),'statusCode':_0x17caf5[_0xa826('0x81')]}:_0x17caf5);});};