Built motion from commit (unavailable).|2.5.30
[motion2.git] / server / api / intFreshdeskAccount / intFreshdeskAccount.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 _0xf7f2=['FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','error','code','message','catch','end','status','offset','undefined','limit','count','set','Content-Range','json','reject','save','destroy','name','send','index','FreshdeskAccount','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','type','includeAll','findAll','rows','show','rawAttributes','include','options','find','create','body','update','params','getConfigurations','findOne','FreshdeskConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskField','getFields','remoteUri','apiKey','slice','substring','lastIndexOf','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','%s:X','toString','base64','requester','subject','agent','priority','group','source','ticket_type','company','includes','custom_text','custom_dropdown','label','choices','capitalize','test','statusCode','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','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','api','../../config/utils','../../config/license/util','../../components/integrations/configuration','jayson/promise','request','then','info'];(function(_0x52e68e,_0x309912){var _0x3211a4=function(_0x467c01){while(--_0x467c01){_0x52e68e['push'](_0x52e68e['shift']());}};_0x3211a4(++_0x309912);}(_0xf7f2,0x1da));var _0x2f7f=function(_0x2f7e15,_0x6e0949){_0x2f7e15=_0x2f7e15-0x0;var _0xbf1bf1=_0xf7f2[_0x2f7e15];return _0xbf1bf1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2f7f('0x0'));var zipdir=require(_0x2f7f('0x1'));var jsonpatch=require(_0x2f7f('0x2'));var rp=require(_0x2f7f('0x3'));var moment=require('moment');var BPromise=require(_0x2f7f('0x4'));var Mustache=require(_0x2f7f('0x5'));var util=require('util');var path=require(_0x2f7f('0x6'));var sox=require('sox');var csv=require(_0x2f7f('0x7'));var ejs=require(_0x2f7f('0x8'));var fs=require('fs');var fs_extra=require(_0x2f7f('0x9'));var _=require(_0x2f7f('0xa'));var squel=require(_0x2f7f('0xb'));var crypto=require(_0x2f7f('0xc'));var jsforce=require(_0x2f7f('0xd'));var deskjs=require(_0x2f7f('0xe'));var toCsv=require(_0x2f7f('0x7'));var querystring=require(_0x2f7f('0xf'));var Papa=require(_0x2f7f('0x10'));var Redis=require(_0x2f7f('0x11'));var authService=require(_0x2f7f('0x12'));var qs=require(_0x2f7f('0x13'));var as=require(_0x2f7f('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2f7f('0x15'))(_0x2f7f('0x16'));var utils=require(_0x2f7f('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x2f7f('0x18'));var db=require('../../mysqldb')['db'];var integrations=require(_0x2f7f('0x19'));var jayson=require(_0x2f7f('0x1a'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x1ba230,_0xc528d6,_0x39c4a1,_0x2174a5){return new BPromise(function(_0x3937dc,_0x4dc30f){var _0xe164a5=_0x2174a5||client;return _0xe164a5[_0x2f7f('0x1b')](_0x1ba230,_0x39c4a1)[_0x2f7f('0x1c')](function(_0x31e0a){logger[_0x2f7f('0x1d')](_0x2f7f('0x1e'),_0xc528d6,_0x2f7f('0x1f'));logger[_0x2f7f('0x20')](_0x2f7f('0x21'),_0xc528d6,_0x2f7f('0x1f'),JSON['stringify'](_0x31e0a));if(_0x31e0a[_0x2f7f('0x22')]){if(_0x31e0a[_0x2f7f('0x22')][_0x2f7f('0x23')]===0x1f4){logger['error'](_0x2f7f('0x1e'),_0xc528d6,_0x31e0a['error'][_0x2f7f('0x24')]);return _0x4dc30f(_0x31e0a[_0x2f7f('0x22')][_0x2f7f('0x24')]);}logger[_0x2f7f('0x22')](_0x2f7f('0x1e'),_0xc528d6,_0x31e0a[_0x2f7f('0x22')][_0x2f7f('0x24')]);return _0x3937dc(_0x31e0a[_0x2f7f('0x22')]['message']);}else{logger[_0x2f7f('0x1d')]('FreshdeskAccount,\x20%s,\x20%s',_0xc528d6,'request\x20sent');_0x3937dc(_0x31e0a['result'][_0x2f7f('0x24')]);}})[_0x2f7f('0x25')](function(_0x3bc9d8){logger[_0x2f7f('0x22')]('FreshdeskAccount,\x20%s,\x20%s',_0xc528d6,_0x3bc9d8);_0x4dc30f(_0x3bc9d8);});});}function respondWithStatusCode(_0x5398d0,_0x4b381e){_0x4b381e=_0x4b381e||0xcc;return function(_0x5a650c){if(_0x5a650c){return _0x5398d0['sendStatus'](_0x4b381e);}return _0x5398d0['status'](_0x4b381e)[_0x2f7f('0x26')]();};}function respondWithResult(_0x23c271,_0x31d0da){_0x31d0da=_0x31d0da||0xc8;return function(_0xbfa362){if(_0xbfa362){return _0x23c271[_0x2f7f('0x27')](_0x31d0da)['json'](_0xbfa362);}};}function respondWithFilteredResult(_0x4eb5c3,_0x1d8720){return function(_0x2271dc){if(_0x2271dc){var _0x488647=typeof _0x1d8720[_0x2f7f('0x28')]===_0x2f7f('0x29')&&typeof _0x1d8720[_0x2f7f('0x2a')]===_0x2f7f('0x29');var _0x4c94bf=_0x2271dc[_0x2f7f('0x2b')];var _0x4118e5=_0x488647?0x0:_0x1d8720[_0x2f7f('0x28')];var _0x58e186=_0x488647?_0x2271dc['count']:_0x1d8720[_0x2f7f('0x28')]+_0x1d8720[_0x2f7f('0x2a')];var _0x36ac50;if(_0x58e186>=_0x4c94bf){_0x58e186=_0x4c94bf;_0x36ac50=0xc8;}else{_0x36ac50=0xce;}_0x4eb5c3['status'](_0x36ac50);return _0x4eb5c3[_0x2f7f('0x2c')](_0x2f7f('0x2d'),_0x4118e5+'-'+_0x58e186+'/'+_0x4c94bf)[_0x2f7f('0x2e')](_0x2271dc);}return null;};}function patchUpdates(_0x3a4584){return function(_0x5a2cbf){try{jsonpatch['apply'](_0x5a2cbf,_0x3a4584,!![]);}catch(_0x2729b5){return BPromise[_0x2f7f('0x2f')](_0x2729b5);}return _0x5a2cbf[_0x2f7f('0x30')]();};}function saveUpdates(_0x12f903,_0x289364){return function(_0x4e717c){if(_0x4e717c){return _0x4e717c['update'](_0x12f903)[_0x2f7f('0x1c')](function(_0x7f0ebb){return _0x7f0ebb;});}return null;};}function removeEntity(_0x546a68,_0x3fe70a){return function(_0x50d1fd){if(_0x50d1fd){return _0x50d1fd[_0x2f7f('0x31')]()[_0x2f7f('0x1c')](function(){_0x546a68['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x404ece,_0x4679c8){return function(_0x8493b9){if(!_0x8493b9){_0x404ece['sendStatus'](0x194);}return _0x8493b9;};}function handleError(_0x3cafd3,_0x3b52a4){_0x3b52a4=_0x3b52a4||0x1f4;return function(_0x403cc8){logger[_0x2f7f('0x22')](_0x403cc8['stack']);if(_0x403cc8[_0x2f7f('0x32')]){delete _0x403cc8[_0x2f7f('0x32')];}_0x3cafd3[_0x2f7f('0x27')](_0x3b52a4)[_0x2f7f('0x33')](_0x403cc8);};}exports[_0x2f7f('0x34')]=function(_0x4ca311,_0x5418cd){var _0x485bc0={},_0x18ce60={},_0x5017a3={'count':0x0,'rows':[]};var _0x5607ae=_['map'](db[_0x2f7f('0x35')]['rawAttributes'],function(_0x4888da){return{'name':_0x4888da[_0x2f7f('0x36')],'type':_0x4888da['type'][_0x2f7f('0x37')]};});_0x18ce60[_0x2f7f('0x38')]=_[_0x2f7f('0x39')](_0x5607ae,'name');_0x18ce60[_0x2f7f('0x3a')]=_[_0x2f7f('0x3b')](_0x4ca311['query']);_0x18ce60[_0x2f7f('0x3c')]=_[_0x2f7f('0x3d')](_0x18ce60[_0x2f7f('0x38')],_0x18ce60[_0x2f7f('0x3a')]);_0x485bc0[_0x2f7f('0x3e')]=_[_0x2f7f('0x3d')](_0x18ce60[_0x2f7f('0x38')],qs[_0x2f7f('0x3f')](_0x4ca311[_0x2f7f('0x3a')][_0x2f7f('0x3f')]));_0x485bc0['attributes']=_0x485bc0['attributes'][_0x2f7f('0x40')]?_0x485bc0['attributes']:_0x18ce60[_0x2f7f('0x38')];if(!_0x4ca311['query'][_0x2f7f('0x41')](_0x2f7f('0x42'))){_0x485bc0[_0x2f7f('0x2a')]=qs[_0x2f7f('0x2a')](_0x4ca311[_0x2f7f('0x3a')][_0x2f7f('0x2a')]);_0x485bc0[_0x2f7f('0x28')]=qs[_0x2f7f('0x28')](_0x4ca311[_0x2f7f('0x3a')][_0x2f7f('0x28')]);}_0x485bc0[_0x2f7f('0x43')]=qs[_0x2f7f('0x44')](_0x4ca311[_0x2f7f('0x3a')][_0x2f7f('0x44')]);_0x485bc0['where']=qs[_0x2f7f('0x3c')](_[_0x2f7f('0x45')](_0x4ca311['query'],_0x18ce60['filters']),_0x5607ae);if(_0x4ca311['query'][_0x2f7f('0x46')]){_0x485bc0[_0x2f7f('0x47')]=_[_0x2f7f('0x48')](_0x485bc0[_0x2f7f('0x47')],{'$or':_[_0x2f7f('0x39')](_0x5607ae,function(_0x1a0886){if(_0x1a0886[_0x2f7f('0x49')]!=='VIRTUAL'){var _0x238bc6={};_0x238bc6[_0x1a0886[_0x2f7f('0x32')]]={'$like':'%'+_0x4ca311['query'][_0x2f7f('0x46')]+'%'};return _0x238bc6;}})});}_0x485bc0=_[_0x2f7f('0x48')]({},_0x485bc0,_0x4ca311['options']);var _0x19c28f={'where':_0x485bc0[_0x2f7f('0x47')]};return db[_0x2f7f('0x35')]['count'](_0x19c28f)[_0x2f7f('0x1c')](function(_0x490cf1){_0x5017a3['count']=_0x490cf1;if(_0x4ca311['query'][_0x2f7f('0x4a')]){_0x485bc0['include']=[{'all':!![]}];}return db[_0x2f7f('0x35')][_0x2f7f('0x4b')](_0x485bc0);})[_0x2f7f('0x1c')](function(_0x5223c5){_0x5017a3[_0x2f7f('0x4c')]=_0x5223c5;return _0x5017a3;})['then'](respondWithFilteredResult(_0x5418cd,_0x485bc0))[_0x2f7f('0x25')](handleError(_0x5418cd,null));};exports[_0x2f7f('0x4d')]=function(_0x215c76,_0x27a487){var _0x410705={'raw':![],'where':{'id':_0x215c76['params']['id']}},_0x1407c2={};_0x1407c2['model']=_[_0x2f7f('0x3b')](db[_0x2f7f('0x35')][_0x2f7f('0x4e')]);_0x1407c2['query']=_[_0x2f7f('0x3b')](_0x215c76[_0x2f7f('0x3a')]);_0x1407c2[_0x2f7f('0x3c')]=_['intersection'](_0x1407c2[_0x2f7f('0x38')],_0x1407c2[_0x2f7f('0x3a')]);_0x410705[_0x2f7f('0x3e')]=_[_0x2f7f('0x3d')](_0x1407c2[_0x2f7f('0x38')],qs['fields'](_0x215c76[_0x2f7f('0x3a')][_0x2f7f('0x3f')]));_0x410705[_0x2f7f('0x3e')]=_0x410705['attributes'][_0x2f7f('0x40')]?_0x410705['attributes']:_0x1407c2[_0x2f7f('0x38')];if(_0x215c76[_0x2f7f('0x3a')][_0x2f7f('0x4a')]){_0x410705[_0x2f7f('0x4f')]=[{'all':!![]}];}_0x410705=_['merge']({},_0x410705,_0x215c76[_0x2f7f('0x50')]);return db[_0x2f7f('0x35')][_0x2f7f('0x51')](_0x410705)[_0x2f7f('0x1c')](handleEntityNotFound(_0x27a487,null))[_0x2f7f('0x1c')](respondWithResult(_0x27a487,null))['catch'](handleError(_0x27a487,null));};exports[_0x2f7f('0x52')]=function(_0x192306,_0x17bc01){return db['FreshdeskAccount']['create'](_0x192306[_0x2f7f('0x53')],{})[_0x2f7f('0x1c')](respondWithResult(_0x17bc01,0xc9))[_0x2f7f('0x25')](handleError(_0x17bc01,null));};exports[_0x2f7f('0x54')]=function(_0x5a4084,_0x4e36b4){if(_0x5a4084[_0x2f7f('0x53')]['id']){delete _0x5a4084[_0x2f7f('0x53')]['id'];}return db[_0x2f7f('0x35')]['find']({'where':{'id':_0x5a4084[_0x2f7f('0x55')]['id']}})[_0x2f7f('0x1c')](handleEntityNotFound(_0x4e36b4,null))[_0x2f7f('0x1c')](saveUpdates(_0x5a4084[_0x2f7f('0x53')],null))[_0x2f7f('0x1c')](respondWithResult(_0x4e36b4,null))[_0x2f7f('0x25')](handleError(_0x4e36b4,null));};exports['destroy']=function(_0x59ce10,_0x263440){return db[_0x2f7f('0x35')][_0x2f7f('0x51')]({'where':{'id':_0x59ce10['params']['id']}})['then'](handleEntityNotFound(_0x263440,null))[_0x2f7f('0x1c')](removeEntity(_0x263440,null))[_0x2f7f('0x25')](handleError(_0x263440,null));};exports[_0x2f7f('0x56')]=function(_0x1080dc,_0xfa75ea,_0x37ffbe){var _0x3e6904={};var _0x994d59={};var _0x16d856;var _0x1c316b;return db['FreshdeskAccount'][_0x2f7f('0x57')]({'where':{'id':_0x1080dc[_0x2f7f('0x55')]['id']}})[_0x2f7f('0x1c')](handleEntityNotFound(_0xfa75ea,null))[_0x2f7f('0x1c')](function(_0x3bc501){if(_0x3bc501){_0x16d856=_0x3bc501;_0x994d59[_0x2f7f('0x38')]=_[_0x2f7f('0x3b')](db[_0x2f7f('0x58')][_0x2f7f('0x4e')]);_0x994d59[_0x2f7f('0x3a')]=_[_0x2f7f('0x3b')](_0x1080dc['query']);_0x994d59[_0x2f7f('0x3c')]=_[_0x2f7f('0x3d')](_0x994d59[_0x2f7f('0x38')],_0x994d59['query']);_0x3e6904[_0x2f7f('0x3e')]=_[_0x2f7f('0x3d')](_0x994d59[_0x2f7f('0x38')],qs['fields'](_0x1080dc['query']['fields']));_0x3e6904[_0x2f7f('0x3e')]=_0x3e6904[_0x2f7f('0x3e')][_0x2f7f('0x40')]?_0x3e6904[_0x2f7f('0x3e')]:_0x994d59[_0x2f7f('0x38')];_0x3e6904['order']=qs[_0x2f7f('0x44')](_0x1080dc[_0x2f7f('0x3a')][_0x2f7f('0x44')]);_0x3e6904[_0x2f7f('0x47')]=qs[_0x2f7f('0x3c')](_[_0x2f7f('0x45')](_0x1080dc[_0x2f7f('0x3a')],_0x994d59['filters']));if(_0x1080dc['query'][_0x2f7f('0x46')]){_0x3e6904['where']=_[_0x2f7f('0x48')](_0x3e6904[_0x2f7f('0x47')],{'$or':_[_0x2f7f('0x39')](_0x3e6904[_0x2f7f('0x3e')],function(_0x438f8b){var _0x507bad={};_0x507bad[_0x438f8b]={'$like':'%'+_0x1080dc[_0x2f7f('0x3a')][_0x2f7f('0x46')]+'%'};return _0x507bad;})});}_0x3e6904=_[_0x2f7f('0x48')]({},_0x3e6904,_0x1080dc[_0x2f7f('0x50')]);return _0x16d856['getConfigurations'](_0x3e6904);}})[_0x2f7f('0x1c')](function(_0x567162){if(_0x567162){_0x1c316b=_0x567162[_0x2f7f('0x40')];if(!_0x1080dc['query']['hasOwnProperty'](_0x2f7f('0x42'))){_0x3e6904[_0x2f7f('0x2a')]=qs[_0x2f7f('0x2a')](_0x1080dc[_0x2f7f('0x3a')][_0x2f7f('0x2a')]);_0x3e6904[_0x2f7f('0x28')]=qs['offset'](_0x1080dc[_0x2f7f('0x3a')][_0x2f7f('0x28')]);}return _0x16d856['getConfigurations'](_0x3e6904);}})['then'](function(_0x3c961a){if(_0x3c961a){return _0x3c961a?{'count':_0x1c316b,'rows':_0x3c961a}:null;}})[_0x2f7f('0x1c')](respondWithResult(_0xfa75ea,null))[_0x2f7f('0x25')](handleError(_0xfa75ea,null));};exports[_0x2f7f('0x59')]=function(_0x127840,_0x2f6aef,_0x4767bf){if(_0x127840[_0x2f7f('0x53')]['id']){delete _0x127840[_0x2f7f('0x53')]['id'];}return db[_0x2f7f('0x35')][_0x2f7f('0x57')]({'where':{'id':_0x127840[_0x2f7f('0x55')]['id']}})[_0x2f7f('0x1c')](handleEntityNotFound(_0x2f6aef,null))['then'](function(_0x585af4){if(_0x585af4){_0x127840[_0x2f7f('0x53')][_0x2f7f('0x5a')]=_0x585af4['id'];_0x127840[_0x2f7f('0x53')][_0x2f7f('0x5b')]=integrations[_0x2f7f('0x5c')](_0x127840['body'][_0x2f7f('0x5d')],_0x127840['body']['type']);_0x127840['body'][_0x2f7f('0x5e')]=integrations[_0x2f7f('0x5f')](_0x127840[_0x2f7f('0x53')]['channel'],_0x127840['body'][_0x2f7f('0x49')]);return db[_0x2f7f('0x58')][_0x2f7f('0x52')](_0x127840[_0x2f7f('0x53')],{'include':[{'model':db[_0x2f7f('0x60')],'as':_0x2f7f('0x5b')},{'model':db['FreshdeskField'],'as':_0x2f7f('0x5e')}]});}return null;})['then'](respondWithResult(_0x2f6aef,null))[_0x2f7f('0x25')](handleError(_0x2f6aef,null));};exports[_0x2f7f('0x61')]=function(_0x4e9e2e,_0x343284,_0x81a08c){var _0x45b162='';return db[_0x2f7f('0x35')][_0x2f7f('0x57')]({'where':{'id':_0x4e9e2e[_0x2f7f('0x55')]['id']},'attributes':['id',_0x2f7f('0x62'),_0x2f7f('0x63')]})[_0x2f7f('0x1c')](handleEntityNotFound(_0x343284,null))[_0x2f7f('0x1c')](function(_0x3046e9){if(_0x3046e9){_0x45b162=_0x3046e9[_0x2f7f('0x62')];var _0x48f20d=_0x45b162[_0x2f7f('0x64')](-0x1);if(_0x48f20d==='/'){_0x45b162=_0x45b162[_0x2f7f('0x65')](0x0,_0x45b162[_0x2f7f('0x66')](_0x48f20d));}return rp({'method':'GET','uri':util[_0x2f7f('0x67')](_0x2f7f('0x68'),_0x45b162,_0x2f7f('0x69')),'headers':{'Authorization':util[_0x2f7f('0x67')](_0x2f7f('0x6a'),new Buffer(util['format'](_0x2f7f('0x6b'),_0x3046e9['apiKey']))[_0x2f7f('0x6c')](_0x2f7f('0x6d')))},'json':!![]});}})['then'](function(_0x14d818){if(_0x14d818){var _0x2db91a=[_0x2f7f('0x6e'),_0x2f7f('0x6f'),_0x2f7f('0x70'),'description',_0x2f7f('0x27'),_0x2f7f('0x71'),_0x2f7f('0x72'),_0x2f7f('0x73'),_0x2f7f('0x74'),_0x2f7f('0x72'),_0x2f7f('0x75')];_['remove'](_0x14d818,function(_0x517baf){return _0x2db91a[_0x2f7f('0x76')](_0x517baf[_0x2f7f('0x32')])||!_0x517baf['default']&&_0x517baf[_0x2f7f('0x49')]!==_0x2f7f('0x77')&&_0x517baf[_0x2f7f('0x49')]!==_0x2f7f('0x78');});return{'count':_0x14d818['length'],'rows':_[_0x2f7f('0x39')](_0x14d818,function(_0x279e55){return{'id':_0x279e55[_0x2f7f('0x32')],'name':_0x279e55[_0x2f7f('0x79')],'custom':!_0x279e55['default'],'options':_0x279e55[_0x2f7f('0x7a')]?_['map'](_0x279e55[_0x2f7f('0x7a')],function(_0x34a769){return{'name':_[_0x2f7f('0x7b')](_0x34a769),'value':_0x34a769};}):[]};})};}})['then'](respondWithResult(_0x343284,null))['catch'](function(_0x1f83a4){var _0x36a72=_0x4e9e2e[_0x2f7f('0x3a')]['test']?0x1f4:_0x1f83a4['statusCode']||0x1f4;logger[_0x2f7f('0x22')]('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x36a72,JSON['stringify'](_0x1f83a4));delete _0x1f83a4[_0x2f7f('0x32')];if(_0x36a72===0x191){_0x36a72=0x190;}_0x343284['status'](_0x36a72)[_0x2f7f('0x33')](_0x4e9e2e['query'][_0x2f7f('0x7c')]?{'message':'Wrong\x20credentials','statusCode':_0x1f83a4[_0x2f7f('0x7d')]}:_0x1f83a4);});};