Built motion from commit (unavailable).|2.5.29
[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 _0x6b20=['substring','lastIndexOf','GET','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','%s:X','requester','subject','agent','description','priority','source','company','remove','includes','default','custom_text','custom_dropdown','label','choices','capitalize','test','statusCode','Wrong\x20credentials','eml-format','rimraf','moment','mustache','util','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','request','then','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','destroy','name','send','index','FreshdeskAccount','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','pick','filter','where','merge','map','VIRTUAL','options','includeAll','include','findAll','rows','show','params','find','create','body','FreshdeskConfiguration','sort','getConfigurations','addConfiguration','findOne','AccountId','getSubjects','getDescriptions','Subjects','FreshdeskField','Descriptions','getFields','remoteUri','apiKey','slice'];(function(_0x406115,_0x19f7a1){var _0xbbabdb=function(_0x28554d){while(--_0x28554d){_0x406115['push'](_0x406115['shift']());}};_0xbbabdb(++_0x19f7a1);}(_0x6b20,0x191));var _0x06b2=function(_0x153fb5,_0x30aaec){_0x153fb5=_0x153fb5-0x0;var _0x18fab2=_0x6b20[_0x153fb5];return _0x18fab2;};'use strict';var emlformat=require(_0x06b2('0x0'));var rimraf=require(_0x06b2('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x06b2('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x06b2('0x3'));var util=require(_0x06b2('0x4'));var path=require('path');var sox=require(_0x06b2('0x5'));var csv=require('to-csv');var ejs=require(_0x06b2('0x6'));var fs=require('fs');var fs_extra=require(_0x06b2('0x7'));var _=require(_0x06b2('0x8'));var squel=require(_0x06b2('0x9'));var crypto=require('crypto');var jsforce=require(_0x06b2('0xa'));var deskjs=require(_0x06b2('0xb'));var toCsv=require(_0x06b2('0xc'));var querystring=require(_0x06b2('0xd'));var Papa=require('papaparse');var Redis=require(_0x06b2('0xe'));var authService=require(_0x06b2('0xf'));var qs=require(_0x06b2('0x10'));var as=require(_0x06b2('0x11'));var hardwareService=require(_0x06b2('0x12'));var logger=require(_0x06b2('0x13'))(_0x06b2('0x14'));var utils=require('../../config/utils');var config=require(_0x06b2('0x15'));var licenseUtil=require(_0x06b2('0x16'));var db=require(_0x06b2('0x17'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0x06b2('0x18'));var client=jayson[_0x06b2('0x19')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2fcab3,_0x532571,_0x42f46c,_0x35c99b){return new BPromise(function(_0x5ae2b4,_0x922920){var _0x225467=_0x35c99b||client;return _0x225467[_0x06b2('0x1a')](_0x2fcab3,_0x42f46c)[_0x06b2('0x1b')](function(_0x40d948){logger['info'](_0x06b2('0x1c'),_0x532571,_0x06b2('0x1d'));logger['debug'](_0x06b2('0x1e'),_0x532571,_0x06b2('0x1d'),JSON[_0x06b2('0x1f')](_0x40d948));if(_0x40d948['error']){if(_0x40d948[_0x06b2('0x20')][_0x06b2('0x21')]===0x1f4){logger[_0x06b2('0x20')](_0x06b2('0x1c'),_0x532571,_0x40d948[_0x06b2('0x20')][_0x06b2('0x22')]);return _0x922920(_0x40d948[_0x06b2('0x20')][_0x06b2('0x22')]);}logger['error']('FreshdeskAccount,\x20%s,\x20%s',_0x532571,_0x40d948[_0x06b2('0x20')][_0x06b2('0x22')]);return _0x5ae2b4(_0x40d948[_0x06b2('0x20')][_0x06b2('0x22')]);}else{logger[_0x06b2('0x23')](_0x06b2('0x1c'),_0x532571,'request\x20sent');_0x5ae2b4(_0x40d948[_0x06b2('0x24')]['message']);}})[_0x06b2('0x25')](function(_0x38ed9f){logger[_0x06b2('0x20')](_0x06b2('0x1c'),_0x532571,_0x38ed9f);_0x922920(_0x38ed9f);});});}function respondWithStatusCode(_0x5b34e7,_0x13c891){_0x13c891=_0x13c891||0xcc;return function(_0x2877cd){if(_0x2877cd){return _0x5b34e7['sendStatus'](_0x13c891);}return _0x5b34e7[_0x06b2('0x26')](_0x13c891)[_0x06b2('0x27')]();};}function respondWithResult(_0x580812,_0x1f62eb){_0x1f62eb=_0x1f62eb||0xc8;return function(_0x119e97){if(_0x119e97){return _0x580812[_0x06b2('0x26')](_0x1f62eb)[_0x06b2('0x28')](_0x119e97);}};}function respondWithFilteredResult(_0x1f0ee1,_0x1a39d0){return function(_0x333fcc){if(_0x333fcc){var _0x460f04=typeof _0x1a39d0[_0x06b2('0x29')]===_0x06b2('0x2a')&&typeof _0x1a39d0[_0x06b2('0x2b')]===_0x06b2('0x2a');var _0x281770=_0x333fcc['count'];var _0x3ffc63=_0x460f04?0x0:_0x1a39d0[_0x06b2('0x29')];var _0x1ee18f=_0x460f04?_0x333fcc[_0x06b2('0x2c')]:_0x1a39d0['offset']+_0x1a39d0[_0x06b2('0x2b')];var _0x5aaeb1;if(_0x1ee18f>=_0x281770){_0x1ee18f=_0x281770;_0x5aaeb1=0xc8;}else{_0x5aaeb1=0xce;}_0x1f0ee1[_0x06b2('0x26')](_0x5aaeb1);return _0x1f0ee1[_0x06b2('0x2d')](_0x06b2('0x2e'),_0x3ffc63+'-'+_0x1ee18f+'/'+_0x281770)[_0x06b2('0x28')](_0x333fcc);}return null;};}function patchUpdates(_0x4e3d21){return function(_0xd78bda){try{jsonpatch[_0x06b2('0x2f')](_0xd78bda,_0x4e3d21,!![]);}catch(_0x322e68){return BPromise[_0x06b2('0x30')](_0x322e68);}return _0xd78bda[_0x06b2('0x31')]();};}function saveUpdates(_0x43ffaa,_0x2bf517){return function(_0x49c858){if(_0x49c858){return _0x49c858['update'](_0x43ffaa)['then'](function(_0x40cc7a){return _0x40cc7a;});}return null;};}function removeEntity(_0xacdde7,_0x40fbc4){return function(_0x2125a2){if(_0x2125a2){return _0x2125a2[_0x06b2('0x32')]()[_0x06b2('0x1b')](function(){_0xacdde7['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1a30c3,_0x30d41e){return function(_0x42de56){if(!_0x42de56){_0x1a30c3['sendStatus'](0x194);}return _0x42de56;};}function handleError(_0xb47602,_0x2f8ea1){_0x2f8ea1=_0x2f8ea1||0x1f4;return function(_0x2c5d29){logger[_0x06b2('0x20')](_0x2c5d29['stack']);if(_0x2c5d29[_0x06b2('0x33')]){delete _0x2c5d29[_0x06b2('0x33')];}_0xb47602['status'](_0x2f8ea1)[_0x06b2('0x34')](_0x2c5d29);};}exports[_0x06b2('0x35')]=function(_0x9b7545,_0x3a97d7){var _0x5bb33b={},_0x3f0b9e={},_0x370d3a={'count':0x0,'rows':[]};var _0x38e42b=_['map'](db[_0x06b2('0x36')][_0x06b2('0x37')],function(_0x3b007f){return{'name':_0x3b007f[_0x06b2('0x38')],'type':_0x3b007f[_0x06b2('0x39')]['key']};});_0x3f0b9e[_0x06b2('0x3a')]=_['map'](_0x38e42b,_0x06b2('0x33'));_0x3f0b9e[_0x06b2('0x3b')]=_[_0x06b2('0x3c')](_0x9b7545[_0x06b2('0x3b')]);_0x3f0b9e[_0x06b2('0x3d')]=_[_0x06b2('0x3e')](_0x3f0b9e[_0x06b2('0x3a')],_0x3f0b9e['query']);_0x5bb33b[_0x06b2('0x3f')]=_[_0x06b2('0x3e')](_0x3f0b9e[_0x06b2('0x3a')],qs['fields'](_0x9b7545['query'][_0x06b2('0x40')]));_0x5bb33b[_0x06b2('0x3f')]=_0x5bb33b[_0x06b2('0x3f')][_0x06b2('0x41')]?_0x5bb33b['attributes']:_0x3f0b9e[_0x06b2('0x3a')];if(!_0x9b7545[_0x06b2('0x3b')][_0x06b2('0x42')](_0x06b2('0x43'))){_0x5bb33b[_0x06b2('0x2b')]=qs['limit'](_0x9b7545[_0x06b2('0x3b')][_0x06b2('0x2b')]);_0x5bb33b[_0x06b2('0x29')]=qs[_0x06b2('0x29')](_0x9b7545['query']['offset']);}_0x5bb33b['order']=qs['sort'](_0x9b7545[_0x06b2('0x3b')]['sort']);_0x5bb33b['where']=qs[_0x06b2('0x3d')](_[_0x06b2('0x44')](_0x9b7545[_0x06b2('0x3b')],_0x3f0b9e[_0x06b2('0x3d')]),_0x38e42b);if(_0x9b7545[_0x06b2('0x3b')][_0x06b2('0x45')]){_0x5bb33b[_0x06b2('0x46')]=_[_0x06b2('0x47')](_0x5bb33b['where'],{'$or':_[_0x06b2('0x48')](_0x38e42b,function(_0x3fe249){if(_0x3fe249[_0x06b2('0x39')]!==_0x06b2('0x49')){var _0x50a5a4={};_0x50a5a4[_0x3fe249['name']]={'$like':'%'+_0x9b7545[_0x06b2('0x3b')][_0x06b2('0x45')]+'%'};return _0x50a5a4;}})});}_0x5bb33b=_[_0x06b2('0x47')]({},_0x5bb33b,_0x9b7545[_0x06b2('0x4a')]);var _0xe298f0={'where':_0x5bb33b['where']};return db[_0x06b2('0x36')]['count'](_0xe298f0)[_0x06b2('0x1b')](function(_0x1d7953){_0x370d3a[_0x06b2('0x2c')]=_0x1d7953;if(_0x9b7545[_0x06b2('0x3b')][_0x06b2('0x4b')]){_0x5bb33b[_0x06b2('0x4c')]=[{'all':!![]}];}return db['FreshdeskAccount'][_0x06b2('0x4d')](_0x5bb33b);})['then'](function(_0x46019a){_0x370d3a[_0x06b2('0x4e')]=_0x46019a;return _0x370d3a;})[_0x06b2('0x1b')](respondWithFilteredResult(_0x3a97d7,_0x5bb33b))[_0x06b2('0x25')](handleError(_0x3a97d7,null));};exports[_0x06b2('0x4f')]=function(_0x1b6a98,_0x5f25c7){var _0x3b077e={'raw':![],'where':{'id':_0x1b6a98[_0x06b2('0x50')]['id']}},_0x239ec7={};_0x239ec7['model']=_[_0x06b2('0x3c')](db[_0x06b2('0x36')][_0x06b2('0x37')]);_0x239ec7[_0x06b2('0x3b')]=_[_0x06b2('0x3c')](_0x1b6a98[_0x06b2('0x3b')]);_0x239ec7[_0x06b2('0x3d')]=_[_0x06b2('0x3e')](_0x239ec7[_0x06b2('0x3a')],_0x239ec7[_0x06b2('0x3b')]);_0x3b077e['attributes']=_[_0x06b2('0x3e')](_0x239ec7['model'],qs[_0x06b2('0x40')](_0x1b6a98[_0x06b2('0x3b')][_0x06b2('0x40')]));_0x3b077e[_0x06b2('0x3f')]=_0x3b077e[_0x06b2('0x3f')]['length']?_0x3b077e[_0x06b2('0x3f')]:_0x239ec7['model'];if(_0x1b6a98['query'][_0x06b2('0x4b')]){_0x3b077e['include']=[{'all':!![]}];}_0x3b077e=_[_0x06b2('0x47')]({},_0x3b077e,_0x1b6a98[_0x06b2('0x4a')]);return db[_0x06b2('0x36')][_0x06b2('0x51')](_0x3b077e)['then'](handleEntityNotFound(_0x5f25c7,null))[_0x06b2('0x1b')](respondWithResult(_0x5f25c7,null))['catch'](handleError(_0x5f25c7,null));};exports[_0x06b2('0x52')]=function(_0x26dae5,_0x1bbd18){return db[_0x06b2('0x36')][_0x06b2('0x52')](_0x26dae5[_0x06b2('0x53')],{})[_0x06b2('0x1b')](respondWithResult(_0x1bbd18,0xc9))['catch'](handleError(_0x1bbd18,null));};exports['update']=function(_0x1526fa,_0x3918ae){if(_0x1526fa[_0x06b2('0x53')]['id']){delete _0x1526fa[_0x06b2('0x53')]['id'];}return db[_0x06b2('0x36')]['find']({'where':{'id':_0x1526fa[_0x06b2('0x50')]['id']}})['then'](handleEntityNotFound(_0x3918ae,null))['then'](saveUpdates(_0x1526fa[_0x06b2('0x53')],null))['then'](respondWithResult(_0x3918ae,null))[_0x06b2('0x25')](handleError(_0x3918ae,null));};exports[_0x06b2('0x32')]=function(_0x4f054b,_0x2e3cd9){return db[_0x06b2('0x36')][_0x06b2('0x51')]({'where':{'id':_0x4f054b['params']['id']}})[_0x06b2('0x1b')](handleEntityNotFound(_0x2e3cd9,null))['then'](removeEntity(_0x2e3cd9,null))[_0x06b2('0x25')](handleError(_0x2e3cd9,null));};exports['getConfigurations']=function(_0x280721,_0x640a63,_0x3d944e){var _0x2c6c11={};var _0x5266b9={};var _0x5935f4;var _0x3d3ec9;return db['FreshdeskAccount']['findOne']({'where':{'id':_0x280721[_0x06b2('0x50')]['id']}})['then'](handleEntityNotFound(_0x640a63,null))[_0x06b2('0x1b')](function(_0x1062c3){if(_0x1062c3){_0x5935f4=_0x1062c3;_0x5266b9['model']=_[_0x06b2('0x3c')](db[_0x06b2('0x54')][_0x06b2('0x37')]);_0x5266b9[_0x06b2('0x3b')]=_['keys'](_0x280721['query']);_0x5266b9[_0x06b2('0x3d')]=_[_0x06b2('0x3e')](_0x5266b9[_0x06b2('0x3a')],_0x5266b9[_0x06b2('0x3b')]);_0x2c6c11['attributes']=_['intersection'](_0x5266b9[_0x06b2('0x3a')],qs[_0x06b2('0x40')](_0x280721[_0x06b2('0x3b')][_0x06b2('0x40')]));_0x2c6c11[_0x06b2('0x3f')]=_0x2c6c11['attributes']['length']?_0x2c6c11['attributes']:_0x5266b9[_0x06b2('0x3a')];_0x2c6c11['order']=qs['sort'](_0x280721[_0x06b2('0x3b')][_0x06b2('0x55')]);_0x2c6c11[_0x06b2('0x46')]=qs['filters'](_[_0x06b2('0x44')](_0x280721[_0x06b2('0x3b')],_0x5266b9['filters']));if(_0x280721[_0x06b2('0x3b')][_0x06b2('0x45')]){_0x2c6c11[_0x06b2('0x46')]=_[_0x06b2('0x47')](_0x2c6c11[_0x06b2('0x46')],{'$or':_['map'](_0x2c6c11[_0x06b2('0x3f')],function(_0x526be3){var _0x35f7eb={};_0x35f7eb[_0x526be3]={'$like':'%'+_0x280721[_0x06b2('0x3b')]['filter']+'%'};return _0x35f7eb;})});}_0x2c6c11=_['merge']({},_0x2c6c11,_0x280721[_0x06b2('0x4a')]);return _0x5935f4[_0x06b2('0x56')](_0x2c6c11);}})[_0x06b2('0x1b')](function(_0x70aa13){if(_0x70aa13){_0x3d3ec9=_0x70aa13['length'];if(!_0x280721['query'][_0x06b2('0x42')](_0x06b2('0x43'))){_0x2c6c11[_0x06b2('0x2b')]=qs[_0x06b2('0x2b')](_0x280721[_0x06b2('0x3b')][_0x06b2('0x2b')]);_0x2c6c11[_0x06b2('0x29')]=qs[_0x06b2('0x29')](_0x280721[_0x06b2('0x3b')][_0x06b2('0x29')]);}return _0x5935f4[_0x06b2('0x56')](_0x2c6c11);}})[_0x06b2('0x1b')](function(_0x32348b){if(_0x32348b){return _0x32348b?{'count':_0x3d3ec9,'rows':_0x32348b}:null;}})[_0x06b2('0x1b')](respondWithResult(_0x640a63,null))[_0x06b2('0x25')](handleError(_0x640a63,null));};exports[_0x06b2('0x57')]=function(_0x574807,_0x474d7a,_0x9cbef8){if(_0x574807['body']['id']){delete _0x574807[_0x06b2('0x53')]['id'];}return db[_0x06b2('0x36')][_0x06b2('0x58')]({'where':{'id':_0x574807[_0x06b2('0x50')]['id']}})[_0x06b2('0x1b')](handleEntityNotFound(_0x474d7a,null))[_0x06b2('0x1b')](function(_0x82ec54){if(_0x82ec54){_0x574807[_0x06b2('0x53')][_0x06b2('0x59')]=_0x82ec54['id'];_0x574807[_0x06b2('0x53')]['Subjects']=integrations[_0x06b2('0x5a')](_0x574807[_0x06b2('0x53')]['channel'],_0x574807[_0x06b2('0x53')][_0x06b2('0x39')]);_0x574807[_0x06b2('0x53')]['Descriptions']=integrations[_0x06b2('0x5b')](_0x574807['body']['channel'],_0x574807['body'][_0x06b2('0x39')]);return db[_0x06b2('0x54')][_0x06b2('0x52')](_0x574807[_0x06b2('0x53')],{'include':[{'model':db['FreshdeskField'],'as':_0x06b2('0x5c')},{'model':db[_0x06b2('0x5d')],'as':_0x06b2('0x5e')}]});}return null;})[_0x06b2('0x1b')](respondWithResult(_0x474d7a,null))[_0x06b2('0x25')](handleError(_0x474d7a,null));};exports[_0x06b2('0x5f')]=function(_0xfbf1e,_0x575b3f,_0x51dfc2){var _0x3321de='';return db[_0x06b2('0x36')][_0x06b2('0x58')]({'where':{'id':_0xfbf1e['params']['id']},'attributes':['id',_0x06b2('0x60'),_0x06b2('0x61')]})[_0x06b2('0x1b')](handleEntityNotFound(_0x575b3f,null))[_0x06b2('0x1b')](function(_0x51ae9a){if(_0x51ae9a){_0x3321de=_0x51ae9a[_0x06b2('0x60')];var _0x44fb7b=_0x3321de[_0x06b2('0x62')](-0x1);if(_0x44fb7b==='/'){_0x3321de=_0x3321de[_0x06b2('0x63')](0x0,_0x3321de[_0x06b2('0x64')](_0x44fb7b));}return rp({'method':_0x06b2('0x65'),'uri':util[_0x06b2('0x66')](_0x06b2('0x67'),_0x3321de,_0x06b2('0x68')),'headers':{'Authorization':util[_0x06b2('0x66')](_0x06b2('0x69'),new Buffer(util[_0x06b2('0x66')](_0x06b2('0x6a'),_0x51ae9a[_0x06b2('0x61')]))['toString']('base64'))},'json':!![]});}})[_0x06b2('0x1b')](function(_0x545628){if(_0x545628){var _0x599972=[_0x06b2('0x6b'),_0x06b2('0x6c'),_0x06b2('0x6d'),_0x06b2('0x6e'),_0x06b2('0x26'),_0x06b2('0x6f'),'group',_0x06b2('0x70'),'ticket_type','group',_0x06b2('0x71')];_[_0x06b2('0x72')](_0x545628,function(_0x5ed7b4){return _0x599972[_0x06b2('0x73')](_0x5ed7b4[_0x06b2('0x33')])||!_0x5ed7b4[_0x06b2('0x74')]&&_0x5ed7b4[_0x06b2('0x39')]!==_0x06b2('0x75')&&_0x5ed7b4[_0x06b2('0x39')]!==_0x06b2('0x76');});return{'count':_0x545628[_0x06b2('0x41')],'rows':_[_0x06b2('0x48')](_0x545628,function(_0x94907d){return{'id':_0x94907d[_0x06b2('0x33')],'name':_0x94907d[_0x06b2('0x77')],'custom':!_0x94907d[_0x06b2('0x74')],'options':_0x94907d['choices']?_[_0x06b2('0x48')](_0x94907d[_0x06b2('0x78')],function(_0x401528){return{'name':_[_0x06b2('0x79')](_0x401528),'value':_0x401528};}):[]};})};}})[_0x06b2('0x1b')](respondWithResult(_0x575b3f,null))[_0x06b2('0x25')](function(_0xd97256){var _0x37ddfe=_0xfbf1e[_0x06b2('0x3b')][_0x06b2('0x7a')]?0x1f4:_0xd97256[_0x06b2('0x7b')]||0x1f4;logger[_0x06b2('0x20')]('getFields,\x20%s,\x20%s,\x20%s',_0x06b2('0x5f'),_0x37ddfe,JSON['stringify'](_0xd97256));delete _0xd97256[_0x06b2('0x33')];if(_0x37ddfe===0x191){_0x37ddfe=0x190;}_0x575b3f[_0x06b2('0x26')](_0x37ddfe)['send'](_0xfbf1e[_0x06b2('0x3b')]['test']?{'message':_0x06b2('0x7c'),'statusCode':_0xd97256[_0x06b2('0x7b')]}:_0xd97256);});};