Built motion from commit (unavailable).|2.5.31
[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 _0x063c=['name','send','merge','body','contact','agent','interaction','account','index','FreshdeskAccount','rawAttributes','fieldName','type','key','model','map','filters','intersection','query','attributes','fields','length','nolimit','order','sort','where','pick','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','getConfigurations','findOne','FreshdeskConfiguration','addConfiguration','Subjects','channel','FreshdeskField','Descriptions','getFields','remoteUri','slice','substring','GET','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','apiKey','requester','subject','priority','group','source','ticket_type','remove','default','label','choices','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/environment','../../config/license/util','../../components/integrations/configuration','client','http','request','then','info','request\x20sent','debug','stringify','error','code','FreshdeskAccount,\x20%s,\x20%s','message','sendStatus','status','end','json','offset','undefined','limit','count','set','reject','save','update','destroy'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x063c,0xba));var _0xc063=function(_0x313516,_0x3c096c){_0x313516=_0x313516-0x0;var _0x6e127c=_0x063c[_0x313516];return _0x6e127c;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc063('0x0'));var zipdir=require(_0xc063('0x1'));var jsonpatch=require(_0xc063('0x2'));var rp=require(_0xc063('0x3'));var moment=require(_0xc063('0x4'));var BPromise=require(_0xc063('0x5'));var Mustache=require('mustache');var util=require(_0xc063('0x6'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xc063('0x7'));var fs=require('fs');var fs_extra=require(_0xc063('0x8'));var _=require('lodash');var squel=require(_0xc063('0x9'));var crypto=require(_0xc063('0xa'));var jsforce=require(_0xc063('0xb'));var deskjs=require(_0xc063('0xc'));var toCsv=require('to-csv');var querystring=require(_0xc063('0xd'));var Papa=require(_0xc063('0xe'));var Redis=require('ioredis');var authService=require(_0xc063('0xf'));var qs=require(_0xc063('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc063('0x11'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xc063('0x12'));var licenseUtil=require(_0xc063('0x13'));var db=require('../../mysqldb')['db'];var integrations=require(_0xc063('0x14'));var jayson=require('jayson/promise');var client=jayson[_0xc063('0x15')][_0xc063('0x16')]({'port':0x232a});function respondWithRpcPromise(_0x2f2816,_0x531f14,_0x364264,_0x1249b2){return new BPromise(function(_0x21b8da,_0x1fb110){var _0x332689=_0x1249b2||client;return _0x332689[_0xc063('0x17')](_0x2f2816,_0x364264)[_0xc063('0x18')](function(_0xac1724){logger[_0xc063('0x19')]('FreshdeskAccount,\x20%s,\x20%s',_0x531f14,_0xc063('0x1a'));logger[_0xc063('0x1b')]('FreshdeskAccount,\x20%s,\x20%s,\x20%s',_0x531f14,_0xc063('0x1a'),JSON[_0xc063('0x1c')](_0xac1724));if(_0xac1724['error']){if(_0xac1724[_0xc063('0x1d')][_0xc063('0x1e')]===0x1f4){logger[_0xc063('0x1d')](_0xc063('0x1f'),_0x531f14,_0xac1724['error'][_0xc063('0x20')]);return _0x1fb110(_0xac1724[_0xc063('0x1d')][_0xc063('0x20')]);}logger['error'](_0xc063('0x1f'),_0x531f14,_0xac1724[_0xc063('0x1d')]['message']);return _0x21b8da(_0xac1724[_0xc063('0x1d')][_0xc063('0x20')]);}else{logger[_0xc063('0x19')](_0xc063('0x1f'),_0x531f14,_0xc063('0x1a'));_0x21b8da(_0xac1724['result']['message']);}})['catch'](function(_0x2a6d90){logger['error']('FreshdeskAccount,\x20%s,\x20%s',_0x531f14,_0x2a6d90);_0x1fb110(_0x2a6d90);});});}function respondWithStatusCode(_0x481a6b,_0x382f79){_0x382f79=_0x382f79||0xcc;return function(_0x3e1040){if(_0x3e1040){return _0x481a6b[_0xc063('0x21')](_0x382f79);}return _0x481a6b[_0xc063('0x22')](_0x382f79)[_0xc063('0x23')]();};}function respondWithResult(_0x49f26e,_0x5a0d10){_0x5a0d10=_0x5a0d10||0xc8;return function(_0x7317e7){if(_0x7317e7){return _0x49f26e['status'](_0x5a0d10)[_0xc063('0x24')](_0x7317e7);}};}function respondWithFilteredResult(_0x43e592,_0x7db21a){return function(_0x93a4b1){if(_0x93a4b1){var _0x3bb999=typeof _0x7db21a[_0xc063('0x25')]===_0xc063('0x26')&&typeof _0x7db21a[_0xc063('0x27')]==='undefined';var _0x3a8663=_0x93a4b1[_0xc063('0x28')];var _0x5a623d=_0x3bb999?0x0:_0x7db21a[_0xc063('0x25')];var _0x3359cd=_0x3bb999?_0x93a4b1[_0xc063('0x28')]:_0x7db21a[_0xc063('0x25')]+_0x7db21a[_0xc063('0x27')];var _0x4e1e37;if(_0x3359cd>=_0x3a8663){_0x3359cd=_0x3a8663;_0x4e1e37=0xc8;}else{_0x4e1e37=0xce;}_0x43e592[_0xc063('0x22')](_0x4e1e37);return _0x43e592[_0xc063('0x29')]('Content-Range',_0x5a623d+'-'+_0x3359cd+'/'+_0x3a8663)['json'](_0x93a4b1);}return null;};}function patchUpdates(_0x5b0ed3){return function(_0x1bb941){try{jsonpatch['apply'](_0x1bb941,_0x5b0ed3,!![]);}catch(_0x391cef){return BPromise[_0xc063('0x2a')](_0x391cef);}return _0x1bb941[_0xc063('0x2b')]();};}function saveUpdates(_0x370f25,_0x5a1615){return function(_0x42940c){if(_0x42940c){return _0x42940c[_0xc063('0x2c')](_0x370f25)[_0xc063('0x18')](function(_0x5662d0){return _0x5662d0;});}return null;};}function removeEntity(_0x148e61,_0x4abb18){return function(_0x3e275e){if(_0x3e275e){return _0x3e275e[_0xc063('0x2d')]()['then'](function(){_0x148e61['status'](0xcc)[_0xc063('0x23')]();});}};}function handleEntityNotFound(_0x48395b,_0x9f3c15){return function(_0x70ed91){if(!_0x70ed91){_0x48395b[_0xc063('0x21')](0x194);}return _0x70ed91;};}function handleError(_0x492d58,_0x4e1bbe){_0x4e1bbe=_0x4e1bbe||0x1f4;return function(_0x584e44){logger[_0xc063('0x1d')](_0x584e44['stack']);if(_0x584e44[_0xc063('0x2e')]){delete _0x584e44['name'];}_0x492d58[_0xc063('0x22')](_0x4e1bbe)[_0xc063('0x2f')](_0x584e44);};}function getMustacheRender(_0x23fda1,_0x243e5f){return Mustache['render'](_0x23fda1,_[_0xc063('0x30')](_0x243e5f[_0xc063('0x31')],{'contact':_0x243e5f[_0xc063('0x32')],'message':_0x243e5f['message'],'agent':_0x243e5f[_0xc063('0x33')],'interaction':_0x243e5f[_0xc063('0x34')],'account':_0x243e5f[_0xc063('0x35')]}))||'';}exports[_0xc063('0x36')]=function(_0x364aa4,_0x281e07){var _0x3336b7={},_0x2ce6a8={},_0x1a775c={'count':0x0,'rows':[]};var _0x23414e=_['map'](db[_0xc063('0x37')][_0xc063('0x38')],function(_0x37ad4e){return{'name':_0x37ad4e[_0xc063('0x39')],'type':_0x37ad4e[_0xc063('0x3a')][_0xc063('0x3b')]};});_0x2ce6a8[_0xc063('0x3c')]=_[_0xc063('0x3d')](_0x23414e,'name');_0x2ce6a8['query']=_['keys'](_0x364aa4['query']);_0x2ce6a8[_0xc063('0x3e')]=_[_0xc063('0x3f')](_0x2ce6a8[_0xc063('0x3c')],_0x2ce6a8[_0xc063('0x40')]);_0x3336b7[_0xc063('0x41')]=_[_0xc063('0x3f')](_0x2ce6a8[_0xc063('0x3c')],qs[_0xc063('0x42')](_0x364aa4['query'][_0xc063('0x42')]));_0x3336b7[_0xc063('0x41')]=_0x3336b7[_0xc063('0x41')][_0xc063('0x43')]?_0x3336b7[_0xc063('0x41')]:_0x2ce6a8['model'];if(!_0x364aa4['query']['hasOwnProperty'](_0xc063('0x44'))){_0x3336b7[_0xc063('0x27')]=qs[_0xc063('0x27')](_0x364aa4[_0xc063('0x40')][_0xc063('0x27')]);_0x3336b7[_0xc063('0x25')]=qs[_0xc063('0x25')](_0x364aa4[_0xc063('0x40')]['offset']);}_0x3336b7[_0xc063('0x45')]=qs[_0xc063('0x46')](_0x364aa4['query'][_0xc063('0x46')]);_0x3336b7[_0xc063('0x47')]=qs['filters'](_[_0xc063('0x48')](_0x364aa4[_0xc063('0x40')],_0x2ce6a8[_0xc063('0x3e')]),_0x23414e);if(_0x364aa4[_0xc063('0x40')]['filter']){_0x3336b7[_0xc063('0x47')]=_[_0xc063('0x30')](_0x3336b7[_0xc063('0x47')],{'$or':_['map'](_0x23414e,function(_0x48da17){if(_0x48da17[_0xc063('0x3a')]!==_0xc063('0x49')){var _0x11cc18={};_0x11cc18[_0x48da17[_0xc063('0x2e')]]={'$like':'%'+_0x364aa4[_0xc063('0x40')]['filter']+'%'};return _0x11cc18;}})});}_0x3336b7=_[_0xc063('0x30')]({},_0x3336b7,_0x364aa4[_0xc063('0x4a')]);var _0x4008e6={'where':_0x3336b7[_0xc063('0x47')]};return db['FreshdeskAccount'][_0xc063('0x28')](_0x4008e6)[_0xc063('0x18')](function(_0x5f4260){_0x1a775c[_0xc063('0x28')]=_0x5f4260;if(_0x364aa4['query'][_0xc063('0x4b')]){_0x3336b7[_0xc063('0x4c')]=[{'all':!![]}];}return db[_0xc063('0x37')][_0xc063('0x4d')](_0x3336b7);})['then'](function(_0x356345){_0x1a775c[_0xc063('0x4e')]=_0x356345;return _0x1a775c;})[_0xc063('0x18')](respondWithFilteredResult(_0x281e07,_0x3336b7))[_0xc063('0x4f')](handleError(_0x281e07,null));};exports[_0xc063('0x50')]=function(_0x47ba3d,_0x29df07){var _0x4865d7={'raw':![],'where':{'id':_0x47ba3d[_0xc063('0x51')]['id']}},_0x2b6670={};_0x2b6670[_0xc063('0x3c')]=_[_0xc063('0x52')](db[_0xc063('0x37')][_0xc063('0x38')]);_0x2b6670[_0xc063('0x40')]=_[_0xc063('0x52')](_0x47ba3d[_0xc063('0x40')]);_0x2b6670[_0xc063('0x3e')]=_['intersection'](_0x2b6670['model'],_0x2b6670[_0xc063('0x40')]);_0x4865d7[_0xc063('0x41')]=_[_0xc063('0x3f')](_0x2b6670[_0xc063('0x3c')],qs['fields'](_0x47ba3d[_0xc063('0x40')][_0xc063('0x42')]));_0x4865d7[_0xc063('0x41')]=_0x4865d7[_0xc063('0x41')][_0xc063('0x43')]?_0x4865d7[_0xc063('0x41')]:_0x2b6670['model'];if(_0x47ba3d['query'][_0xc063('0x4b')]){_0x4865d7[_0xc063('0x4c')]=[{'all':!![]}];}_0x4865d7=_[_0xc063('0x30')]({},_0x4865d7,_0x47ba3d[_0xc063('0x4a')]);return db[_0xc063('0x37')][_0xc063('0x53')](_0x4865d7)[_0xc063('0x18')](handleEntityNotFound(_0x29df07,null))[_0xc063('0x18')](respondWithResult(_0x29df07,null))[_0xc063('0x4f')](handleError(_0x29df07,null));};exports[_0xc063('0x54')]=function(_0x1813be,_0x2fa6d3){return db['FreshdeskAccount'][_0xc063('0x54')](_0x1813be[_0xc063('0x31')],{})['then'](respondWithResult(_0x2fa6d3,0xc9))[_0xc063('0x4f')](handleError(_0x2fa6d3,null));};exports['update']=function(_0x153262,_0x3c08ba){if(_0x153262[_0xc063('0x31')]['id']){delete _0x153262['body']['id'];}return db[_0xc063('0x37')]['find']({'where':{'id':_0x153262[_0xc063('0x51')]['id']}})[_0xc063('0x18')](handleEntityNotFound(_0x3c08ba,null))[_0xc063('0x18')](saveUpdates(_0x153262[_0xc063('0x31')],null))[_0xc063('0x18')](respondWithResult(_0x3c08ba,null))[_0xc063('0x4f')](handleError(_0x3c08ba,null));};exports[_0xc063('0x2d')]=function(_0xf1824d,_0x5df57e){return db[_0xc063('0x37')][_0xc063('0x53')]({'where':{'id':_0xf1824d['params']['id']}})['then'](handleEntityNotFound(_0x5df57e,null))[_0xc063('0x18')](removeEntity(_0x5df57e,null))[_0xc063('0x4f')](handleError(_0x5df57e,null));};exports[_0xc063('0x55')]=function(_0x93f286,_0x157a48,_0x390239){var _0x5ad317={};var _0x2e5222={};var _0x2b051e;var _0x19381d;return db[_0xc063('0x37')][_0xc063('0x56')]({'where':{'id':_0x93f286[_0xc063('0x51')]['id']}})[_0xc063('0x18')](handleEntityNotFound(_0x157a48,null))[_0xc063('0x18')](function(_0xa20a43){if(_0xa20a43){_0x2b051e=_0xa20a43;_0x2e5222[_0xc063('0x3c')]=_[_0xc063('0x52')](db[_0xc063('0x57')]['rawAttributes']);_0x2e5222[_0xc063('0x40')]=_[_0xc063('0x52')](_0x93f286['query']);_0x2e5222['filters']=_[_0xc063('0x3f')](_0x2e5222[_0xc063('0x3c')],_0x2e5222[_0xc063('0x40')]);_0x5ad317[_0xc063('0x41')]=_['intersection'](_0x2e5222[_0xc063('0x3c')],qs[_0xc063('0x42')](_0x93f286[_0xc063('0x40')][_0xc063('0x42')]));_0x5ad317[_0xc063('0x41')]=_0x5ad317[_0xc063('0x41')][_0xc063('0x43')]?_0x5ad317['attributes']:_0x2e5222[_0xc063('0x3c')];_0x5ad317[_0xc063('0x45')]=qs[_0xc063('0x46')](_0x93f286[_0xc063('0x40')][_0xc063('0x46')]);_0x5ad317[_0xc063('0x47')]=qs[_0xc063('0x3e')](_[_0xc063('0x48')](_0x93f286['query'],_0x2e5222[_0xc063('0x3e')]));if(_0x93f286[_0xc063('0x40')]['filter']){_0x5ad317[_0xc063('0x47')]=_['merge'](_0x5ad317[_0xc063('0x47')],{'$or':_[_0xc063('0x3d')](_0x5ad317[_0xc063('0x41')],function(_0x51a8b6){var _0x30d202={};_0x30d202[_0x51a8b6]={'$like':'%'+_0x93f286['query']['filter']+'%'};return _0x30d202;})});}_0x5ad317=_[_0xc063('0x30')]({},_0x5ad317,_0x93f286[_0xc063('0x4a')]);return _0x2b051e[_0xc063('0x55')](_0x5ad317);}})[_0xc063('0x18')](function(_0x153408){if(_0x153408){_0x19381d=_0x153408[_0xc063('0x43')];if(!_0x93f286[_0xc063('0x40')]['hasOwnProperty'](_0xc063('0x44'))){_0x5ad317[_0xc063('0x27')]=qs[_0xc063('0x27')](_0x93f286[_0xc063('0x40')][_0xc063('0x27')]);_0x5ad317['offset']=qs[_0xc063('0x25')](_0x93f286[_0xc063('0x40')][_0xc063('0x25')]);}return _0x2b051e['getConfigurations'](_0x5ad317);}})[_0xc063('0x18')](function(_0x26fa1a){if(_0x26fa1a){return _0x26fa1a?{'count':_0x19381d,'rows':_0x26fa1a}:null;}})[_0xc063('0x18')](respondWithResult(_0x157a48,null))['catch'](handleError(_0x157a48,null));};exports[_0xc063('0x58')]=function(_0x14071e,_0x3091a5,_0x10b187){if(_0x14071e[_0xc063('0x31')]['id']){delete _0x14071e[_0xc063('0x31')]['id'];}return db[_0xc063('0x37')][_0xc063('0x56')]({'where':{'id':_0x14071e['params']['id']}})[_0xc063('0x18')](handleEntityNotFound(_0x3091a5,null))[_0xc063('0x18')](function(_0x1075bb){if(_0x1075bb){_0x14071e[_0xc063('0x31')]['AccountId']=_0x1075bb['id'];_0x14071e[_0xc063('0x31')][_0xc063('0x59')]=integrations['getSubjects'](_0x14071e[_0xc063('0x31')][_0xc063('0x5a')],_0x14071e[_0xc063('0x31')][_0xc063('0x3a')]);_0x14071e[_0xc063('0x31')]['Descriptions']=integrations['getDescriptions'](_0x14071e[_0xc063('0x31')]['channel'],_0x14071e[_0xc063('0x31')]['type']);return db[_0xc063('0x57')][_0xc063('0x54')](_0x14071e['body'],{'include':[{'model':db[_0xc063('0x5b')],'as':_0xc063('0x59')},{'model':db[_0xc063('0x5b')],'as':_0xc063('0x5c')}]});}return null;})[_0xc063('0x18')](respondWithResult(_0x3091a5,null))[_0xc063('0x4f')](handleError(_0x3091a5,null));};exports[_0xc063('0x5d')]=function(_0x5542bc,_0x3c70c8,_0x513725){var _0x57cc3a='';return db['FreshdeskAccount'][_0xc063('0x56')]({'where':{'id':_0x5542bc[_0xc063('0x51')]['id']},'attributes':['id',_0xc063('0x5e'),'apiKey']})[_0xc063('0x18')](handleEntityNotFound(_0x3c70c8,null))[_0xc063('0x18')](function(_0x458044){if(_0x458044){_0x57cc3a=_0x458044[_0xc063('0x5e')];var _0x15cfe3=_0x57cc3a[_0xc063('0x5f')](-0x1);if(_0x15cfe3==='/'){_0x57cc3a=_0x57cc3a[_0xc063('0x60')](0x0,_0x57cc3a['lastIndexOf'](_0x15cfe3));}return rp({'method':_0xc063('0x61'),'uri':util[_0xc063('0x62')](_0xc063('0x63'),_0x57cc3a,_0xc063('0x64')),'headers':{'Authorization':util[_0xc063('0x62')](_0xc063('0x65'),new Buffer(util[_0xc063('0x62')]('%s:X',_0x458044[_0xc063('0x66')]))['toString']('base64'))},'json':!![]});}})[_0xc063('0x18')](function(_0x155aac){if(_0x155aac){var _0xee3766=[_0xc063('0x67'),_0xc063('0x68'),_0xc063('0x33'),'description',_0xc063('0x22'),_0xc063('0x69'),_0xc063('0x6a'),_0xc063('0x6b'),_0xc063('0x6c'),_0xc063('0x6a'),'company'];_[_0xc063('0x6d')](_0x155aac,function(_0x20c4f1){return _0xee3766['includes'](_0x20c4f1[_0xc063('0x2e')])||!_0x20c4f1[_0xc063('0x6e')]&&_0x20c4f1[_0xc063('0x3a')]!=='custom_text'&&_0x20c4f1[_0xc063('0x3a')]!=='custom_dropdown';});return{'count':_0x155aac[_0xc063('0x43')],'rows':_['map'](_0x155aac,function(_0x4a0d92){return{'id':_0x4a0d92[_0xc063('0x2e')],'name':_0x4a0d92[_0xc063('0x6f')],'custom':!_0x4a0d92['default'],'options':_0x4a0d92[_0xc063('0x70')]?_[_0xc063('0x3d')](_0x4a0d92['choices'],function(_0xd5b6b1){return{'name':_['capitalize'](_0xd5b6b1),'value':_0xd5b6b1};}):[]};})};}})[_0xc063('0x18')](respondWithResult(_0x3c70c8,null))[_0xc063('0x4f')](function(_0x42884e){var _0x53d711=_0x5542bc[_0xc063('0x40')][_0xc063('0x71')]?0x1f4:_0x42884e[_0xc063('0x72')]||0x1f4;logger[_0xc063('0x1d')](_0xc063('0x73'),'getFields',_0x53d711,JSON[_0xc063('0x1c')](_0x42884e));delete _0x42884e[_0xc063('0x2e')];if(_0x53d711===0x191){_0x53d711=0x190;}_0x3c70c8[_0xc063('0x22')](_0x53d711)[_0xc063('0x2f')](_0x5542bc[_0xc063('0x40')][_0xc063('0x71')]?{'message':'Wrong\x20credentials','statusCode':_0x42884e[_0xc063('0x72')]}:_0x42884e);});};