Built motion from commit (unavailable).|2.5.31
[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 _0x9016=['api','../../config/environment','../../config/license/util','../../components/integrations/configuration','jayson/promise','client','http','request','info','ZendeskAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','stack','name','send','render','merge','body','contact','agent','interaction','account','index','map','type','key','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','VIRTUAL','filter','options','ZendeskAccount','includeAll','include','findAll','rows','catch','show','rawAttributes','create','update','find','params','getConfigurations','findOne','ZendeskConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','ZendeskField','getFields','username','password','token','authType','remoteUri','slice','substring','lastIndexOf','format','%s/%s','ticket_fields','headers','base64','Basic\x20%s','Sequelize','ValidationError','Unknown\x20authentication\x20type','subject','description','group','assignee','remove','includes','position','title','system_field_options','test','statusCode','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger'];(function(_0x2386f3,_0x4bb6ef){var _0xa263ea=function(_0x1c7e5b){while(--_0x1c7e5b){_0x2386f3['push'](_0x2386f3['shift']());}};_0xa263ea(++_0x4bb6ef);}(_0x9016,0xf9));var _0x6901=function(_0x339217,_0x41b09d){_0x339217=_0x339217-0x0;var _0x582141=_0x9016[_0x339217];return _0x582141;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6901('0x0'));var zipdir=require(_0x6901('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6901('0x2'));var moment=require(_0x6901('0x3'));var BPromise=require(_0x6901('0x4'));var Mustache=require(_0x6901('0x5'));var util=require(_0x6901('0x6'));var path=require('path');var sox=require(_0x6901('0x7'));var csv=require(_0x6901('0x8'));var ejs=require(_0x6901('0x9'));var fs=require('fs');var fs_extra=require(_0x6901('0xa'));var _=require(_0x6901('0xb'));var squel=require(_0x6901('0xc'));var crypto=require('crypto');var jsforce=require(_0x6901('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x6901('0xe'));var Redis=require(_0x6901('0xf'));var authService=require(_0x6901('0x10'));var qs=require(_0x6901('0x11'));var as=require(_0x6901('0x12'));var hardwareService=require(_0x6901('0x13'));var logger=require(_0x6901('0x14'))(_0x6901('0x15'));var utils=require('../../config/utils');var config=require(_0x6901('0x16'));var licenseUtil=require(_0x6901('0x17'));var db=require('../../mysqldb')['db'];var integrations=require(_0x6901('0x18'));var jayson=require(_0x6901('0x19'));var client=jayson[_0x6901('0x1a')][_0x6901('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x4e9f4d,_0xbf1b57,_0x42cb93,_0x1c9015){return new BPromise(function(_0x53a79f,_0x1ab783){var _0x5bd23b=_0x1c9015||client;return _0x5bd23b[_0x6901('0x1c')](_0x4e9f4d,_0x42cb93)['then'](function(_0x382c22){logger[_0x6901('0x1d')](_0x6901('0x1e'),_0xbf1b57,_0x6901('0x1f'));logger[_0x6901('0x20')]('ZendeskAccount,\x20%s,\x20%s,\x20%s',_0xbf1b57,_0x6901('0x1f'),JSON[_0x6901('0x21')](_0x382c22));if(_0x382c22[_0x6901('0x22')]){if(_0x382c22[_0x6901('0x22')][_0x6901('0x23')]===0x1f4){logger['error'](_0x6901('0x1e'),_0xbf1b57,_0x382c22[_0x6901('0x22')]['message']);return _0x1ab783(_0x382c22[_0x6901('0x22')][_0x6901('0x24')]);}logger[_0x6901('0x22')](_0x6901('0x1e'),_0xbf1b57,_0x382c22[_0x6901('0x22')]['message']);return _0x53a79f(_0x382c22[_0x6901('0x22')][_0x6901('0x24')]);}else{logger[_0x6901('0x1d')](_0x6901('0x1e'),_0xbf1b57,_0x6901('0x1f'));_0x53a79f(_0x382c22[_0x6901('0x25')]['message']);}})['catch'](function(_0x4118bf){logger[_0x6901('0x22')]('ZendeskAccount,\x20%s,\x20%s',_0xbf1b57,_0x4118bf);_0x1ab783(_0x4118bf);});});}function respondWithStatusCode(_0x1a5efc,_0x3e4411){_0x3e4411=_0x3e4411||0xcc;return function(_0x3c67e5){if(_0x3c67e5){return _0x1a5efc['sendStatus'](_0x3e4411);}return _0x1a5efc[_0x6901('0x26')](_0x3e4411)[_0x6901('0x27')]();};}function respondWithResult(_0x5f1f36,_0x2ceea8){_0x2ceea8=_0x2ceea8||0xc8;return function(_0x40f627){if(_0x40f627){return _0x5f1f36[_0x6901('0x26')](_0x2ceea8)[_0x6901('0x28')](_0x40f627);}};}function respondWithFilteredResult(_0xb5edef,_0x36a9ae){return function(_0x46c736){if(_0x46c736){var _0x55c811=typeof _0x36a9ae[_0x6901('0x29')]===_0x6901('0x2a')&&typeof _0x36a9ae[_0x6901('0x2b')]===_0x6901('0x2a');var _0x12338c=_0x46c736[_0x6901('0x2c')];var _0x158c44=_0x55c811?0x0:_0x36a9ae[_0x6901('0x29')];var _0x30da03=_0x55c811?_0x46c736[_0x6901('0x2c')]:_0x36a9ae[_0x6901('0x29')]+_0x36a9ae[_0x6901('0x2b')];var _0x9c010b;if(_0x30da03>=_0x12338c){_0x30da03=_0x12338c;_0x9c010b=0xc8;}else{_0x9c010b=0xce;}_0xb5edef[_0x6901('0x26')](_0x9c010b);return _0xb5edef[_0x6901('0x2d')](_0x6901('0x2e'),_0x158c44+'-'+_0x30da03+'/'+_0x12338c)[_0x6901('0x28')](_0x46c736);}return null;};}function patchUpdates(_0x3277b6){return function(_0x5df333){try{jsonpatch[_0x6901('0x2f')](_0x5df333,_0x3277b6,!![]);}catch(_0x2a0872){return BPromise[_0x6901('0x30')](_0x2a0872);}return _0x5df333[_0x6901('0x31')]();};}function saveUpdates(_0x436bdb,_0xc41488){return function(_0x495b9f){if(_0x495b9f){return _0x495b9f['update'](_0x436bdb)[_0x6901('0x32')](function(_0x2d458e){return _0x2d458e;});}return null;};}function removeEntity(_0x3ddb9f,_0x3d2244){return function(_0xa7924f){if(_0xa7924f){return _0xa7924f[_0x6901('0x33')]()[_0x6901('0x32')](function(){_0x3ddb9f['status'](0xcc)[_0x6901('0x27')]();});}};}function handleEntityNotFound(_0x24b5b3,_0x19e464){return function(_0x95454e){if(!_0x95454e){_0x24b5b3['sendStatus'](0x194);}return _0x95454e;};}function handleError(_0xc618c3,_0x4f2389){_0x4f2389=_0x4f2389||0x1f4;return function(_0x98d2d3){logger[_0x6901('0x22')](_0x98d2d3[_0x6901('0x34')]);if(_0x98d2d3[_0x6901('0x35')]){delete _0x98d2d3[_0x6901('0x35')];}_0xc618c3[_0x6901('0x26')](_0x4f2389)[_0x6901('0x36')](_0x98d2d3);};}function getMustacheRender(_0x155aa7,_0x15d9d3){return Mustache[_0x6901('0x37')](_0x155aa7,_[_0x6901('0x38')](_0x15d9d3[_0x6901('0x39')],{'contact':_0x15d9d3[_0x6901('0x3a')],'message':_0x15d9d3[_0x6901('0x24')],'agent':_0x15d9d3[_0x6901('0x3b')],'interaction':_0x15d9d3[_0x6901('0x3c')],'account':_0x15d9d3[_0x6901('0x3d')]}))||'';}exports[_0x6901('0x3e')]=function(_0x162198,_0x2cfc3c){var _0x46f423={},_0x1b7923={},_0x4706ab={'count':0x0,'rows':[]};var _0x5820b=_[_0x6901('0x3f')](db['ZendeskAccount']['rawAttributes'],function(_0x2417ff){return{'name':_0x2417ff['fieldName'],'type':_0x2417ff[_0x6901('0x40')][_0x6901('0x41')]};});_0x1b7923['model']=_['map'](_0x5820b,_0x6901('0x35'));_0x1b7923[_0x6901('0x42')]=_[_0x6901('0x43')](_0x162198[_0x6901('0x42')]);_0x1b7923['filters']=_[_0x6901('0x44')](_0x1b7923[_0x6901('0x45')],_0x1b7923[_0x6901('0x42')]);_0x46f423['attributes']=_['intersection'](_0x1b7923[_0x6901('0x45')],qs[_0x6901('0x46')](_0x162198[_0x6901('0x42')]['fields']));_0x46f423[_0x6901('0x47')]=_0x46f423['attributes'][_0x6901('0x48')]?_0x46f423[_0x6901('0x47')]:_0x1b7923[_0x6901('0x45')];if(!_0x162198[_0x6901('0x42')][_0x6901('0x49')](_0x6901('0x4a'))){_0x46f423[_0x6901('0x2b')]=qs[_0x6901('0x2b')](_0x162198[_0x6901('0x42')]['limit']);_0x46f423[_0x6901('0x29')]=qs[_0x6901('0x29')](_0x162198[_0x6901('0x42')][_0x6901('0x29')]);}_0x46f423[_0x6901('0x4b')]=qs[_0x6901('0x4c')](_0x162198[_0x6901('0x42')][_0x6901('0x4c')]);_0x46f423[_0x6901('0x4d')]=qs[_0x6901('0x4e')](_[_0x6901('0x4f')](_0x162198['query'],_0x1b7923[_0x6901('0x4e')]),_0x5820b);if(_0x162198[_0x6901('0x42')]['filter']){_0x46f423[_0x6901('0x4d')]=_[_0x6901('0x38')](_0x46f423[_0x6901('0x4d')],{'$or':_[_0x6901('0x3f')](_0x5820b,function(_0x53a317){if(_0x53a317['type']!==_0x6901('0x50')){var _0x178007={};_0x178007[_0x53a317[_0x6901('0x35')]]={'$like':'%'+_0x162198['query'][_0x6901('0x51')]+'%'};return _0x178007;}})});}_0x46f423=_[_0x6901('0x38')]({},_0x46f423,_0x162198[_0x6901('0x52')]);var _0x2c4cc3={'where':_0x46f423[_0x6901('0x4d')]};return db[_0x6901('0x53')][_0x6901('0x2c')](_0x2c4cc3)[_0x6901('0x32')](function(_0x8d098e){_0x4706ab[_0x6901('0x2c')]=_0x8d098e;if(_0x162198['query'][_0x6901('0x54')]){_0x46f423[_0x6901('0x55')]=[{'all':!![]}];}return db[_0x6901('0x53')][_0x6901('0x56')](_0x46f423);})[_0x6901('0x32')](function(_0x406a76){_0x4706ab[_0x6901('0x57')]=_0x406a76;return _0x4706ab;})[_0x6901('0x32')](respondWithFilteredResult(_0x2cfc3c,_0x46f423))[_0x6901('0x58')](handleError(_0x2cfc3c,null));};exports[_0x6901('0x59')]=function(_0x44b04b,_0x3d5464){var _0x365c98={'raw':![],'where':{'id':_0x44b04b['params']['id']}},_0x5b1de8={};_0x5b1de8[_0x6901('0x45')]=_['keys'](db[_0x6901('0x53')][_0x6901('0x5a')]);_0x5b1de8['query']=_[_0x6901('0x43')](_0x44b04b[_0x6901('0x42')]);_0x5b1de8[_0x6901('0x4e')]=_[_0x6901('0x44')](_0x5b1de8[_0x6901('0x45')],_0x5b1de8[_0x6901('0x42')]);_0x365c98[_0x6901('0x47')]=_[_0x6901('0x44')](_0x5b1de8[_0x6901('0x45')],qs['fields'](_0x44b04b[_0x6901('0x42')]['fields']));_0x365c98['attributes']=_0x365c98['attributes'][_0x6901('0x48')]?_0x365c98[_0x6901('0x47')]:_0x5b1de8['model'];if(_0x44b04b[_0x6901('0x42')][_0x6901('0x54')]){_0x365c98['include']=[{'all':!![]}];}_0x365c98=_[_0x6901('0x38')]({},_0x365c98,_0x44b04b['options']);return db['ZendeskAccount']['find'](_0x365c98)['then'](handleEntityNotFound(_0x3d5464,null))[_0x6901('0x32')](respondWithResult(_0x3d5464,null))[_0x6901('0x58')](handleError(_0x3d5464,null));};exports[_0x6901('0x5b')]=function(_0x2b31c5,_0x59a11f){return db[_0x6901('0x53')][_0x6901('0x5b')](_0x2b31c5[_0x6901('0x39')],{})[_0x6901('0x32')](respondWithResult(_0x59a11f,0xc9))[_0x6901('0x58')](handleError(_0x59a11f,null));};exports[_0x6901('0x5c')]=function(_0xb91c0f,_0x1c6c28){if(_0xb91c0f[_0x6901('0x39')]['id']){delete _0xb91c0f[_0x6901('0x39')]['id'];}return db[_0x6901('0x53')]['find']({'where':{'id':_0xb91c0f['params']['id']}})[_0x6901('0x32')](handleEntityNotFound(_0x1c6c28,null))[_0x6901('0x32')](saveUpdates(_0xb91c0f['body'],null))['then'](respondWithResult(_0x1c6c28,null))[_0x6901('0x58')](handleError(_0x1c6c28,null));};exports[_0x6901('0x33')]=function(_0x2e4945,_0x5a1451){return db[_0x6901('0x53')][_0x6901('0x5d')]({'where':{'id':_0x2e4945[_0x6901('0x5e')]['id']}})[_0x6901('0x32')](handleEntityNotFound(_0x5a1451,null))[_0x6901('0x32')](removeEntity(_0x5a1451,null))[_0x6901('0x58')](handleError(_0x5a1451,null));};exports[_0x6901('0x5f')]=function(_0x4c998c,_0x22e732,_0x4ecc50){var _0x5a32bd={};var _0x50467a={};var _0x2bd915;var _0x4b4c86;return db['ZendeskAccount'][_0x6901('0x60')]({'where':{'id':_0x4c998c[_0x6901('0x5e')]['id']}})['then'](handleEntityNotFound(_0x22e732,null))[_0x6901('0x32')](function(_0x2e5be6){if(_0x2e5be6){_0x2bd915=_0x2e5be6;_0x50467a['model']=_[_0x6901('0x43')](db[_0x6901('0x61')][_0x6901('0x5a')]);_0x50467a[_0x6901('0x42')]=_[_0x6901('0x43')](_0x4c998c[_0x6901('0x42')]);_0x50467a[_0x6901('0x4e')]=_[_0x6901('0x44')](_0x50467a['model'],_0x50467a[_0x6901('0x42')]);_0x5a32bd['attributes']=_['intersection'](_0x50467a[_0x6901('0x45')],qs[_0x6901('0x46')](_0x4c998c[_0x6901('0x42')][_0x6901('0x46')]));_0x5a32bd[_0x6901('0x47')]=_0x5a32bd[_0x6901('0x47')][_0x6901('0x48')]?_0x5a32bd[_0x6901('0x47')]:_0x50467a[_0x6901('0x45')];_0x5a32bd[_0x6901('0x4b')]=qs[_0x6901('0x4c')](_0x4c998c[_0x6901('0x42')][_0x6901('0x4c')]);_0x5a32bd[_0x6901('0x4d')]=qs[_0x6901('0x4e')](_[_0x6901('0x4f')](_0x4c998c['query'],_0x50467a[_0x6901('0x4e')]));if(_0x4c998c[_0x6901('0x42')]['filter']){_0x5a32bd[_0x6901('0x4d')]=_[_0x6901('0x38')](_0x5a32bd[_0x6901('0x4d')],{'$or':_[_0x6901('0x3f')](_0x5a32bd[_0x6901('0x47')],function(_0x4a59c2){var _0x16f9e4={};_0x16f9e4[_0x4a59c2]={'$like':'%'+_0x4c998c['query'][_0x6901('0x51')]+'%'};return _0x16f9e4;})});}_0x5a32bd=_['merge']({},_0x5a32bd,_0x4c998c['options']);return _0x2bd915[_0x6901('0x5f')](_0x5a32bd);}})[_0x6901('0x32')](function(_0x52035b){if(_0x52035b){_0x4b4c86=_0x52035b[_0x6901('0x48')];if(!_0x4c998c['query']['hasOwnProperty'](_0x6901('0x4a'))){_0x5a32bd['limit']=qs[_0x6901('0x2b')](_0x4c998c[_0x6901('0x42')][_0x6901('0x2b')]);_0x5a32bd[_0x6901('0x29')]=qs[_0x6901('0x29')](_0x4c998c[_0x6901('0x42')]['offset']);}return _0x2bd915[_0x6901('0x5f')](_0x5a32bd);}})[_0x6901('0x32')](function(_0x3d0433){if(_0x3d0433){return _0x3d0433?{'count':_0x4b4c86,'rows':_0x3d0433}:null;}})['then'](respondWithResult(_0x22e732,null))['catch'](handleError(_0x22e732,null));};exports[_0x6901('0x62')]=function(_0x3f1744,_0x3873c2,_0x559d3d){if(_0x3f1744[_0x6901('0x39')]['id']){delete _0x3f1744[_0x6901('0x39')]['id'];}return db[_0x6901('0x53')][_0x6901('0x60')]({'where':{'id':_0x3f1744[_0x6901('0x5e')]['id']}})[_0x6901('0x32')](handleEntityNotFound(_0x3873c2,null))['then'](function(_0x16fc1b){if(_0x16fc1b){_0x3f1744[_0x6901('0x39')][_0x6901('0x63')]=_0x16fc1b['id'];_0x3f1744[_0x6901('0x39')][_0x6901('0x64')]=integrations[_0x6901('0x65')](_0x3f1744[_0x6901('0x39')][_0x6901('0x66')],_0x3f1744['body'][_0x6901('0x40')]);_0x3f1744[_0x6901('0x39')][_0x6901('0x67')]=integrations[_0x6901('0x68')](_0x3f1744[_0x6901('0x39')]['channel'],_0x3f1744[_0x6901('0x39')]['type']);return db[_0x6901('0x61')][_0x6901('0x5b')](_0x3f1744['body'],{'include':[{'model':db[_0x6901('0x69')],'as':_0x6901('0x64')},{'model':db[_0x6901('0x69')],'as':_0x6901('0x67')}]});}return null;})[_0x6901('0x32')](respondWithResult(_0x3873c2,null))[_0x6901('0x58')](handleError(_0x3873c2,null));};exports[_0x6901('0x6a')]=function(_0x34196,_0xe7f497,_0x2b3aae){var _0x265de2='';return db['ZendeskAccount'][_0x6901('0x60')]({'where':{'id':_0x34196[_0x6901('0x5e')]['id']},'attributes':['id',_0x6901('0x6b'),_0x6901('0x6c'),_0x6901('0x6d'),_0x6901('0x6e'),_0x6901('0x6f')]})[_0x6901('0x32')](handleEntityNotFound(_0xe7f497,null))['then'](function(_0x161925){if(_0x161925){_0x265de2=_0x161925[_0x6901('0x6f')];var _0x5d2e8a=_0x265de2[_0x6901('0x70')](-0x1);if(_0x5d2e8a==='/'){_0x265de2=_0x265de2[_0x6901('0x71')](0x0,_0x265de2[_0x6901('0x72')](_0x5d2e8a));}var _0x2b6cc9={'method':'GET','uri':util[_0x6901('0x73')](_0x6901('0x74'),_0x265de2,_0x6901('0x75')),'json':!![]};switch(_0x161925['authType']){case'password':_0x2b6cc9[_0x6901('0x76')]={'Authorization':util['format']('Basic\x20%s',new Buffer(util[_0x6901('0x73')]('%s:%s',_0x161925[_0x6901('0x6b')],_0x161925['password']))['toString'](_0x6901('0x77')))};break;case _0x6901('0x6d'):_0x2b6cc9[_0x6901('0x76')]={'Authorization':util['format'](_0x6901('0x78'),new Buffer(util['format']('%s/token:%s',_0x161925[_0x6901('0x6b')],_0x161925[_0x6901('0x6d')]))['toString'](_0x6901('0x77')))};break;default:throw new db[(_0x6901('0x79'))][(_0x6901('0x7a'))](_0x6901('0x7b'));}return rp(_0x2b6cc9);}})[_0x6901('0x32')](function(_0x42fb10){if(_0x42fb10){var _0x2e5953=[_0x6901('0x7c'),_0x6901('0x7d'),_0x6901('0x7e'),_0x6901('0x7f')];_[_0x6901('0x80')](_0x42fb10[_0x6901('0x75')],function(_0x4dcd7a){return _0x2e5953[_0x6901('0x81')](_0x4dcd7a[_0x6901('0x40')]);});return{'count':_0x42fb10['ticket_fields'][_0x6901('0x48')],'rows':_[_0x6901('0x3f')](_0x42fb10[_0x6901('0x75')],function(_0x5a0f22){return{'id':_0x5a0f22['id'],'name':_0x5a0f22[_0x6901('0x82')]>0x7?_0x5a0f22[_0x6901('0x83')]:_0x5a0f22[_0x6901('0x40')],'custom':_0x5a0f22[_0x6901('0x82')]>0x7?!![]:![],'options':_0x5a0f22[_0x6901('0x84')]?_0x5a0f22[_0x6901('0x84')]:_0x5a0f22['custom_field_options']?_0x5a0f22['custom_field_options']:[]};})};}})[_0x6901('0x32')](respondWithResult(_0xe7f497,null))[_0x6901('0x58')](function(_0x3d525e){var _0x389937=_0x34196[_0x6901('0x42')][_0x6901('0x85')]?0x1f4:_0x3d525e['statusCode']||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x6901('0x6a'),_0x389937,JSON[_0x6901('0x21')](_0x3d525e));delete _0x3d525e[_0x6901('0x35')];if(_0x389937===0x191){_0x389937=0x190;}_0xe7f497[_0x6901('0x26')](_0x389937)[_0x6901('0x36')](_0x34196['query'][_0x6901('0x85')]?{'message':'Wrong\x20credentials','statusCode':_0x3d525e[_0x6901('0x86')]}:_0x3d525e);});};