eccdad6fa285153d7e30fda7ad38a402a68d99c7
[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 _0x9591=['statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','ZendeskAccount,\x20%s,\x20%s','request\x20sent','ZendeskAccount,\x20%s,\x20%s,\x20%s','error','code','message','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','update','stack','name','send','index','map','rawAttributes','fieldName','type','model','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit','limit','order','sort','filter','where','merge','VIRTUAL','options','ZendeskAccount','include','show','params','keys','catch','create','body','find','destroy','getConfigurations','ZendeskConfiguration','length','pick','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','ZendeskField','authType','remoteUri','substring','%s/%s','ticket_fields','headers','Basic\x20%s','format','%s:%s','username','toString','base64','token','%s/token:%s','Sequelize','ValidationError','Unknown\x20authentication\x20type','subject','group','assignee','remove','includes','position','title','system_field_options','custom_field_options'];(function(_0x1b6186,_0x1ec7f2){var _0x186121=function(_0x1748a8){while(--_0x1748a8){_0x1b6186['push'](_0x1b6186['shift']());}};_0x186121(++_0x1ec7f2);}(_0x9591,0x176));var _0x1959=function(_0x228562,_0x12b8ab){_0x228562=_0x228562-0x0;var _0xd13e64=_0x9591[_0x228562];return _0xd13e64;};'use strict';var emlformat=require(_0x1959('0x0'));var rimraf=require(_0x1959('0x1'));var zipdir=require(_0x1959('0x2'));var jsonpatch=require(_0x1959('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x1959('0x4'));var Mustache=require(_0x1959('0x5'));var util=require('util');var path=require(_0x1959('0x6'));var sox=require(_0x1959('0x7'));var csv=require(_0x1959('0x8'));var ejs=require(_0x1959('0x9'));var fs=require('fs');var fs_extra=require(_0x1959('0xa'));var _=require(_0x1959('0xb'));var squel=require(_0x1959('0xc'));var crypto=require(_0x1959('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x1959('0xe'));var toCsv=require(_0x1959('0x8'));var querystring=require(_0x1959('0xf'));var Papa=require(_0x1959('0x10'));var Redis=require(_0x1959('0x11'));var authService=require(_0x1959('0x12'));var qs=require(_0x1959('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1959('0x14'));var logger=require('../../config/logger')(_0x1959('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x1959('0x16'));var db=require(_0x1959('0x17'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0x1959('0x18'));var client=jayson[_0x1959('0x19')][_0x1959('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x326de7,_0x224fe9,_0x5b56f1,_0x220cb0){return new BPromise(function(_0x175862,_0x23f53d){var _0x2c3095=_0x220cb0||client;return _0x2c3095[_0x1959('0x1b')](_0x326de7,_0x5b56f1)[_0x1959('0x1c')](function(_0x12ead0){logger[_0x1959('0x1d')](_0x1959('0x1e'),_0x224fe9,_0x1959('0x1f'));logger['debug'](_0x1959('0x20'),_0x224fe9,'request\x20sent',JSON['stringify'](_0x12ead0));if(_0x12ead0[_0x1959('0x21')]){if(_0x12ead0[_0x1959('0x21')][_0x1959('0x22')]===0x1f4){logger[_0x1959('0x21')]('ZendeskAccount,\x20%s,\x20%s',_0x224fe9,_0x12ead0['error'][_0x1959('0x23')]);return _0x23f53d(_0x12ead0['error'][_0x1959('0x23')]);}logger[_0x1959('0x21')]('ZendeskAccount,\x20%s,\x20%s',_0x224fe9,_0x12ead0[_0x1959('0x21')][_0x1959('0x23')]);return _0x175862(_0x12ead0['error'][_0x1959('0x23')]);}else{logger[_0x1959('0x1d')]('ZendeskAccount,\x20%s,\x20%s',_0x224fe9,'request\x20sent');_0x175862(_0x12ead0['result']['message']);}})['catch'](function(_0x1c4b27){logger[_0x1959('0x21')]('ZendeskAccount,\x20%s,\x20%s',_0x224fe9,_0x1c4b27);_0x23f53d(_0x1c4b27);});});}function respondWithStatusCode(_0x46ec90,_0x30170f){_0x30170f=_0x30170f||0xcc;return function(_0x4afde3){if(_0x4afde3){return _0x46ec90[_0x1959('0x24')](_0x30170f);}return _0x46ec90[_0x1959('0x25')](_0x30170f)[_0x1959('0x26')]();};}function respondWithResult(_0x176a6b,_0x5806f2){_0x5806f2=_0x5806f2||0xc8;return function(_0xdb55ce){if(_0xdb55ce){return _0x176a6b[_0x1959('0x25')](_0x5806f2)[_0x1959('0x27')](_0xdb55ce);}};}function respondWithFilteredResult(_0x1825d9,_0x143adf){return function(_0x41d167){if(_0x41d167){var _0x487fb3=_0x41d167[_0x1959('0x28')],_0x22bd70=_0x143adf[_0x1959('0x29')],_0x29d8a6=_0x143adf['offset']+_0x143adf['limit'],_0x39534f;if(_0x29d8a6>=_0x487fb3){_0x29d8a6=_0x487fb3;_0x39534f=0xc8;}else{_0x39534f=0xce;}_0x1825d9[_0x1959('0x25')](_0x39534f);return _0x1825d9[_0x1959('0x2a')](_0x1959('0x2b'),_0x22bd70+'-'+_0x29d8a6+'/'+_0x487fb3)[_0x1959('0x27')](_0x41d167);}return null;};}function patchUpdates(_0x1a20ab){return function(_0x2c172b){try{jsonpatch[_0x1959('0x2c')](_0x2c172b,_0x1a20ab,!![]);}catch(_0x7cce7c){return BPromise[_0x1959('0x2d')](_0x7cce7c);}return _0x2c172b['save']();};}function saveUpdates(_0x2d0c68,_0x1d1d0f){return function(_0x1ea94a){if(_0x1ea94a){return _0x1ea94a[_0x1959('0x2e')](_0x2d0c68)[_0x1959('0x1c')](function(_0x567a56){return _0x567a56;});}return null;};}function removeEntity(_0x52b425,_0x4cd959){return function(_0x213eed){if(_0x213eed){return _0x213eed['destroy']()['then'](function(){_0x52b425[_0x1959('0x25')](0xcc)[_0x1959('0x26')]();});}};}function handleEntityNotFound(_0x5a5b12,_0x1bd806){return function(_0x6bcf22){if(!_0x6bcf22){_0x5a5b12[_0x1959('0x24')](0x194);}return _0x6bcf22;};}function handleError(_0x4045f6,_0x222bbc){_0x222bbc=_0x222bbc||0x1f4;return function(_0x365ad8){logger['error'](_0x365ad8[_0x1959('0x2f')]);if(_0x365ad8['name']){delete _0x365ad8[_0x1959('0x30')];}_0x4045f6[_0x1959('0x25')](_0x222bbc)[_0x1959('0x31')](_0x365ad8);};}exports[_0x1959('0x32')]=function(_0x18b46d,_0x2ee4e9){var _0x47313c={},_0x313cec={},_0x1395b7={'count':0x0,'rows':[]};var _0x2d5671=_[_0x1959('0x33')](db['ZendeskAccount'][_0x1959('0x34')],function(_0x3ff550){return{'name':_0x3ff550[_0x1959('0x35')],'type':_0x3ff550[_0x1959('0x36')]['key']};});_0x313cec[_0x1959('0x37')]=_[_0x1959('0x33')](_0x2d5671,_0x1959('0x30'));_0x313cec[_0x1959('0x38')]=_['keys'](_0x18b46d[_0x1959('0x38')]);_0x313cec[_0x1959('0x39')]=_['intersection'](_0x313cec['model'],_0x313cec[_0x1959('0x38')]);_0x47313c[_0x1959('0x3a')]=_[_0x1959('0x3b')](_0x313cec['model'],qs[_0x1959('0x3c')](_0x18b46d[_0x1959('0x38')]['fields']));_0x47313c[_0x1959('0x3a')]=_0x47313c['attributes']['length']?_0x47313c[_0x1959('0x3a')]:_0x313cec['model'];if(!_0x18b46d['query'][_0x1959('0x3d')](_0x1959('0x3e'))){_0x47313c[_0x1959('0x3f')]=qs[_0x1959('0x3f')](_0x18b46d[_0x1959('0x38')]['limit']);_0x47313c[_0x1959('0x29')]=qs['offset'](_0x18b46d[_0x1959('0x38')][_0x1959('0x29')]);}_0x47313c[_0x1959('0x40')]=qs[_0x1959('0x41')](_0x18b46d[_0x1959('0x38')]['sort']);_0x47313c['where']=qs[_0x1959('0x39')](_['pick'](_0x18b46d[_0x1959('0x38')],_0x313cec['filters']),_0x2d5671);if(_0x18b46d[_0x1959('0x38')][_0x1959('0x42')]){_0x47313c[_0x1959('0x43')]=_[_0x1959('0x44')](_0x47313c[_0x1959('0x43')],{'$or':_[_0x1959('0x33')](_0x2d5671,function(_0x428cd8){if(_0x428cd8[_0x1959('0x36')]!==_0x1959('0x45')){var _0x1b820e={};_0x1b820e[_0x428cd8[_0x1959('0x30')]]={'$like':'%'+_0x18b46d[_0x1959('0x38')][_0x1959('0x42')]+'%'};return _0x1b820e;}})});}_0x47313c=_[_0x1959('0x44')]({},_0x47313c,_0x18b46d[_0x1959('0x46')]);var _0x565021={'where':_0x47313c[_0x1959('0x43')]};return db[_0x1959('0x47')][_0x1959('0x28')](_0x565021)[_0x1959('0x1c')](function(_0x5fef44){_0x1395b7['count']=_0x5fef44;if(_0x18b46d[_0x1959('0x38')]['includeAll']){_0x47313c[_0x1959('0x48')]=[{'all':!![]}];}return db[_0x1959('0x47')]['findAll'](_0x47313c);})[_0x1959('0x1c')](function(_0x1a4b20){_0x1395b7['rows']=_0x1a4b20;return _0x1395b7;})[_0x1959('0x1c')](respondWithFilteredResult(_0x2ee4e9,_0x47313c))['catch'](handleError(_0x2ee4e9,null));};exports[_0x1959('0x49')]=function(_0x415f77,_0x40f367){var _0xe67f6={'raw':![],'where':{'id':_0x415f77[_0x1959('0x4a')]['id']}},_0x16c732={};_0x16c732[_0x1959('0x37')]=_['keys'](db[_0x1959('0x47')][_0x1959('0x34')]);_0x16c732[_0x1959('0x38')]=_[_0x1959('0x4b')](_0x415f77[_0x1959('0x38')]);_0x16c732[_0x1959('0x39')]=_['intersection'](_0x16c732[_0x1959('0x37')],_0x16c732[_0x1959('0x38')]);_0xe67f6[_0x1959('0x3a')]=_['intersection'](_0x16c732[_0x1959('0x37')],qs[_0x1959('0x3c')](_0x415f77[_0x1959('0x38')][_0x1959('0x3c')]));_0xe67f6[_0x1959('0x3a')]=_0xe67f6[_0x1959('0x3a')]['length']?_0xe67f6[_0x1959('0x3a')]:_0x16c732[_0x1959('0x37')];if(_0x415f77[_0x1959('0x38')]['includeAll']){_0xe67f6[_0x1959('0x48')]=[{'all':!![]}];}_0xe67f6=_[_0x1959('0x44')]({},_0xe67f6,_0x415f77[_0x1959('0x46')]);return db[_0x1959('0x47')]['find'](_0xe67f6)[_0x1959('0x1c')](handleEntityNotFound(_0x40f367,null))[_0x1959('0x1c')](respondWithResult(_0x40f367,null))[_0x1959('0x4c')](handleError(_0x40f367,null));};exports[_0x1959('0x4d')]=function(_0x589a5f,_0x1d3a04){return db[_0x1959('0x47')]['create'](_0x589a5f[_0x1959('0x4e')],{})[_0x1959('0x1c')](respondWithResult(_0x1d3a04,0xc9))['catch'](handleError(_0x1d3a04,null));};exports[_0x1959('0x2e')]=function(_0x4f5be2,_0x104481){if(_0x4f5be2[_0x1959('0x4e')]['id']){delete _0x4f5be2[_0x1959('0x4e')]['id'];}return db[_0x1959('0x47')][_0x1959('0x4f')]({'where':{'id':_0x4f5be2['params']['id']}})[_0x1959('0x1c')](handleEntityNotFound(_0x104481,null))[_0x1959('0x1c')](saveUpdates(_0x4f5be2[_0x1959('0x4e')],null))[_0x1959('0x1c')](respondWithResult(_0x104481,null))['catch'](handleError(_0x104481,null));};exports[_0x1959('0x50')]=function(_0x11ab97,_0x550331){return db['ZendeskAccount'][_0x1959('0x4f')]({'where':{'id':_0x11ab97[_0x1959('0x4a')]['id']}})[_0x1959('0x1c')](handleEntityNotFound(_0x550331,null))[_0x1959('0x1c')](removeEntity(_0x550331,null))[_0x1959('0x4c')](handleError(_0x550331,null));};exports[_0x1959('0x51')]=function(_0x1f5ef5,_0x6d1caf,_0x549d54){var _0x43bfa8={};var _0x1fd9ef={};var _0x293aa1;var _0x161c68;return db[_0x1959('0x47')]['findOne']({'where':{'id':_0x1f5ef5[_0x1959('0x4a')]['id']}})[_0x1959('0x1c')](handleEntityNotFound(_0x6d1caf,null))[_0x1959('0x1c')](function(_0x48ca8e){if(_0x48ca8e){_0x293aa1=_0x48ca8e;_0x1fd9ef[_0x1959('0x37')]=_['keys'](db[_0x1959('0x52')]['rawAttributes']);_0x1fd9ef[_0x1959('0x38')]=_['keys'](_0x1f5ef5[_0x1959('0x38')]);_0x1fd9ef[_0x1959('0x39')]=_[_0x1959('0x3b')](_0x1fd9ef['model'],_0x1fd9ef[_0x1959('0x38')]);_0x43bfa8['attributes']=_['intersection'](_0x1fd9ef[_0x1959('0x37')],qs[_0x1959('0x3c')](_0x1f5ef5['query'][_0x1959('0x3c')]));_0x43bfa8[_0x1959('0x3a')]=_0x43bfa8['attributes'][_0x1959('0x53')]?_0x43bfa8[_0x1959('0x3a')]:_0x1fd9ef[_0x1959('0x37')];_0x43bfa8[_0x1959('0x40')]=qs[_0x1959('0x41')](_0x1f5ef5['query']['sort']);_0x43bfa8[_0x1959('0x43')]=qs[_0x1959('0x39')](_[_0x1959('0x54')](_0x1f5ef5[_0x1959('0x38')],_0x1fd9ef[_0x1959('0x39')]));if(_0x1f5ef5[_0x1959('0x38')][_0x1959('0x42')]){_0x43bfa8[_0x1959('0x43')]=_['merge'](_0x43bfa8[_0x1959('0x43')],{'$or':_['map'](_0x43bfa8[_0x1959('0x3a')],function(_0x16e1f6){var _0x23a86b={};_0x23a86b[_0x16e1f6]={'$like':'%'+_0x1f5ef5['query'][_0x1959('0x42')]+'%'};return _0x23a86b;})});}_0x43bfa8=_[_0x1959('0x44')]({},_0x43bfa8,_0x1f5ef5[_0x1959('0x46')]);return _0x293aa1['getConfigurations'](_0x43bfa8);}})['then'](function(_0x255972){if(_0x255972){_0x161c68=_0x255972[_0x1959('0x53')];if(!_0x1f5ef5[_0x1959('0x38')][_0x1959('0x3d')](_0x1959('0x3e'))){_0x43bfa8[_0x1959('0x3f')]=qs['limit'](_0x1f5ef5[_0x1959('0x38')][_0x1959('0x3f')]);_0x43bfa8[_0x1959('0x29')]=qs['offset'](_0x1f5ef5[_0x1959('0x38')][_0x1959('0x29')]);}return _0x293aa1[_0x1959('0x51')](_0x43bfa8);}})[_0x1959('0x1c')](function(_0x4b6efb){if(_0x4b6efb){return _0x4b6efb?{'count':_0x161c68,'rows':_0x4b6efb}:null;}})['then'](respondWithResult(_0x6d1caf,null))[_0x1959('0x4c')](handleError(_0x6d1caf,null));};exports['addConfiguration']=function(_0x54d04e,_0x5884fc,_0xba46a0){if(_0x54d04e[_0x1959('0x4e')]['id']){delete _0x54d04e[_0x1959('0x4e')]['id'];}return db['ZendeskAccount'][_0x1959('0x55')]({'where':{'id':_0x54d04e[_0x1959('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5884fc,null))['then'](function(_0x3f3a0e){if(_0x3f3a0e){_0x54d04e[_0x1959('0x4e')][_0x1959('0x56')]=_0x3f3a0e['id'];_0x54d04e[_0x1959('0x4e')][_0x1959('0x57')]=integrations[_0x1959('0x58')](_0x54d04e[_0x1959('0x4e')][_0x1959('0x59')],_0x54d04e[_0x1959('0x4e')]['type']);_0x54d04e[_0x1959('0x4e')][_0x1959('0x5a')]=integrations['getDescriptions'](_0x54d04e[_0x1959('0x4e')]['channel'],_0x54d04e[_0x1959('0x4e')][_0x1959('0x36')]);return db[_0x1959('0x52')][_0x1959('0x4d')](_0x54d04e['body'],{'include':[{'model':db[_0x1959('0x5b')],'as':'Subjects'},{'model':db[_0x1959('0x5b')],'as':_0x1959('0x5a')}]});}return null;})[_0x1959('0x1c')](respondWithResult(_0x5884fc,null))['catch'](handleError(_0x5884fc,null));};exports['getFields']=function(_0x525175,_0x510a07,_0x36ba0f){var _0x598867='';return db[_0x1959('0x47')][_0x1959('0x55')]({'where':{'id':_0x525175[_0x1959('0x4a')]['id']},'attributes':['id','username','password','token',_0x1959('0x5c'),_0x1959('0x5d')]})[_0x1959('0x1c')](handleEntityNotFound(_0x510a07,null))[_0x1959('0x1c')](function(_0x16ddbd){if(_0x16ddbd){_0x598867=_0x16ddbd['remoteUri'];var _0x14ffbd=_0x598867['slice'](-0x1);if(_0x14ffbd==='/'){_0x598867=_0x598867[_0x1959('0x5e')](0x0,_0x598867['lastIndexOf'](_0x14ffbd));}var _0x33b55a={'method':'GET','uri':util['format'](_0x1959('0x5f'),_0x598867,_0x1959('0x60')),'json':!![]};switch(_0x16ddbd['authType']){case'password':_0x33b55a[_0x1959('0x61')]={'Authorization':util['format'](_0x1959('0x62'),new Buffer(util[_0x1959('0x63')](_0x1959('0x64'),_0x16ddbd[_0x1959('0x65')],_0x16ddbd['password']))[_0x1959('0x66')](_0x1959('0x67')))};break;case _0x1959('0x68'):_0x33b55a[_0x1959('0x61')]={'Authorization':util[_0x1959('0x63')](_0x1959('0x62'),new Buffer(util[_0x1959('0x63')](_0x1959('0x69'),_0x16ddbd[_0x1959('0x65')],_0x16ddbd[_0x1959('0x68')]))[_0x1959('0x66')](_0x1959('0x67')))};break;default:throw new db[(_0x1959('0x6a'))][(_0x1959('0x6b'))](_0x1959('0x6c'));}return rp(_0x33b55a);}})[_0x1959('0x1c')](function(_0x1caf3f){if(_0x1caf3f){var _0x5a00fa=[_0x1959('0x6d'),'description',_0x1959('0x6e'),_0x1959('0x6f')];_[_0x1959('0x70')](_0x1caf3f[_0x1959('0x60')],function(_0x4a44a1){return _0x5a00fa[_0x1959('0x71')](_0x4a44a1[_0x1959('0x36')]);});return{'count':_0x1caf3f['ticket_fields'][_0x1959('0x53')],'rows':_[_0x1959('0x33')](_0x1caf3f['ticket_fields'],function(_0x4882e8){return{'id':_0x4882e8['id'],'name':_0x4882e8[_0x1959('0x72')]>0x7?_0x4882e8[_0x1959('0x73')]:_0x4882e8[_0x1959('0x36')],'custom':_0x4882e8[_0x1959('0x72')]>0x7?!![]:![],'options':_0x4882e8[_0x1959('0x74')]?_0x4882e8[_0x1959('0x74')]:_0x4882e8[_0x1959('0x75')]?_0x4882e8[_0x1959('0x75')]:[]};})};}})['then'](respondWithResult(_0x510a07,null))['catch'](function(_0x1c4235){var _0x3d9cfa=_0x525175[_0x1959('0x38')]['test']?0x1f4:_0x1c4235[_0x1959('0x76')]||0x1f4;logger[_0x1959('0x21')](_0x1959('0x77'),'getFields',_0x3d9cfa,JSON[_0x1959('0x78')](_0x1c4235));delete _0x1c4235['name'];if(_0x3d9cfa===0x191){_0x3d9cfa=0x190;}_0x510a07[_0x1959('0x25')](_0x3d9cfa)[_0x1959('0x31')](_0x525175['query'][_0x1959('0x79')]?{'message':_0x1959('0x7a'),'statusCode':_0x1c4235[_0x1959('0x76')]}:_0x1c4235);});};