4a6f3512262e4ab8dcffacc9a185243b3dc170bc
[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 _0x3b59=['includeAll','findAll','rows','catch','show','params','include','create','body','getConfigurations','order','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','getFields','remoteUri','slice','substring','format','%s/%s','api/v2/ticket_fields','apiKey','toString','subject','agent','group','source','ticket_type','company','includes','default','custom_text','custom_dropdown','choices','capitalize','test','statusCode','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','reject','update','then','destroy','error','stack','name','send','index','map','FreshdeskAccount','rawAttributes','fieldName','type','key','model','keys','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','VIRTUAL','merge','options'];(function(_0x1e381c,_0x47b5b9){var _0x9b5ea9=function(_0x6d2be5){while(--_0x6d2be5){_0x1e381c['push'](_0x1e381c['shift']());}};_0x9b5ea9(++_0x47b5b9);}(_0x3b59,0x9c));var _0x93b5=function(_0xf71220,_0x3ec190){_0xf71220=_0xf71220-0x0;var _0x6efb4f=_0x3b59[_0xf71220];return _0x6efb4f;};'use strict';var emlformat=require(_0x93b5('0x0'));var rimraf=require(_0x93b5('0x1'));var zipdir=require(_0x93b5('0x2'));var jsonpatch=require(_0x93b5('0x3'));var rp=require(_0x93b5('0x4'));var moment=require(_0x93b5('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x93b5('0x6'));var util=require('util');var path=require(_0x93b5('0x7'));var sox=require(_0x93b5('0x8'));var csv=require(_0x93b5('0x9'));var ejs=require(_0x93b5('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x93b5('0xb'));var squel=require(_0x93b5('0xc'));var crypto=require(_0x93b5('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x93b5('0xe'));var toCsv=require(_0x93b5('0x9'));var querystring=require(_0x93b5('0xf'));var Papa=require(_0x93b5('0x10'));var Redis=require(_0x93b5('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x93b5('0x12'));var as=require(_0x93b5('0x13'));var hardwareService=require(_0x93b5('0x14'));var logger=require(_0x93b5('0x15'))(_0x93b5('0x16'));var utils=require('../../config/utils');var config=require(_0x93b5('0x17'));var licenseUtil=require(_0x93b5('0x18'));var db=require('../../mysqldb')['db'];var integrations=require(_0x93b5('0x19'));function respondWithStatusCode(_0x1d80b2,_0x3022c2){_0x3022c2=_0x3022c2||0xcc;return function(_0x3dad37){if(_0x3dad37){return _0x1d80b2[_0x93b5('0x1a')](_0x3022c2);}return _0x1d80b2['status'](_0x3022c2)[_0x93b5('0x1b')]();};}function respondWithResult(_0x151e45,_0x4e9b23){_0x4e9b23=_0x4e9b23||0xc8;return function(_0x15ffe2){if(_0x15ffe2){return _0x151e45[_0x93b5('0x1c')](_0x4e9b23)[_0x93b5('0x1d')](_0x15ffe2);}};}function respondWithFilteredResult(_0x4c3d28,_0x39d8f5){return function(_0x546d3e){if(_0x546d3e){var _0x4cb6bf=typeof _0x39d8f5[_0x93b5('0x1e')]==='undefined'&&typeof _0x39d8f5[_0x93b5('0x1f')]===_0x93b5('0x20');var _0xc92c18=_0x546d3e['count'];var _0x4fa3ae=_0x4cb6bf?0x0:_0x39d8f5['offset'];var _0x16e6e6=_0x4cb6bf?_0x546d3e[_0x93b5('0x21')]:_0x39d8f5[_0x93b5('0x1e')]+_0x39d8f5[_0x93b5('0x1f')];var _0x1c4019;if(_0x16e6e6>=_0xc92c18){_0x16e6e6=_0xc92c18;_0x1c4019=0xc8;}else{_0x1c4019=0xce;}_0x4c3d28[_0x93b5('0x1c')](_0x1c4019);return _0x4c3d28[_0x93b5('0x22')](_0x93b5('0x23'),_0x4fa3ae+'-'+_0x16e6e6+'/'+_0xc92c18)[_0x93b5('0x1d')](_0x546d3e);}return null;};}function patchUpdates(_0x3ba1bc){return function(_0x5c1172){try{jsonpatch['apply'](_0x5c1172,_0x3ba1bc,!![]);}catch(_0x3e2452){return BPromise[_0x93b5('0x24')](_0x3e2452);}return _0x5c1172['save']();};}function saveUpdates(_0x170379,_0x1d8270){return function(_0x2e9e75){if(_0x2e9e75){return _0x2e9e75[_0x93b5('0x25')](_0x170379)[_0x93b5('0x26')](function(_0x194ae3){return _0x194ae3;});}return null;};}function removeEntity(_0x45c8ee,_0x7f6df6){return function(_0x1c7349){if(_0x1c7349){return _0x1c7349[_0x93b5('0x27')]()[_0x93b5('0x26')](function(){_0x45c8ee[_0x93b5('0x1c')](0xcc)[_0x93b5('0x1b')]();});}};}function handleEntityNotFound(_0x3a31db,_0x3494f){return function(_0x7eed38){if(!_0x7eed38){_0x3a31db[_0x93b5('0x1a')](0x194);}return _0x7eed38;};}function handleError(_0x11add6,_0x4977df){_0x4977df=_0x4977df||0x1f4;return function(_0xc6c370){logger[_0x93b5('0x28')](_0xc6c370[_0x93b5('0x29')]);if(_0xc6c370[_0x93b5('0x2a')]){delete _0xc6c370[_0x93b5('0x2a')];}_0x11add6[_0x93b5('0x1c')](_0x4977df)[_0x93b5('0x2b')](_0xc6c370);};}exports[_0x93b5('0x2c')]=function(_0x59389b,_0x2a6b07){var _0x239f96={},_0x54bc50={},_0xf7fc9c={'count':0x0,'rows':[]};var _0x4e4212=_[_0x93b5('0x2d')](db[_0x93b5('0x2e')][_0x93b5('0x2f')],function(_0x1a3495){return{'name':_0x1a3495[_0x93b5('0x30')],'type':_0x1a3495[_0x93b5('0x31')][_0x93b5('0x32')]};});_0x54bc50[_0x93b5('0x33')]=_[_0x93b5('0x2d')](_0x4e4212,_0x93b5('0x2a'));_0x54bc50['query']=_[_0x93b5('0x34')](_0x59389b['query']);_0x54bc50['filters']=_['intersection'](_0x54bc50['model'],_0x54bc50[_0x93b5('0x35')]);_0x239f96[_0x93b5('0x36')]=_[_0x93b5('0x37')](_0x54bc50[_0x93b5('0x33')],qs[_0x93b5('0x38')](_0x59389b[_0x93b5('0x35')][_0x93b5('0x38')]));_0x239f96[_0x93b5('0x36')]=_0x239f96[_0x93b5('0x36')][_0x93b5('0x39')]?_0x239f96[_0x93b5('0x36')]:_0x54bc50['model'];if(!_0x59389b['query'][_0x93b5('0x3a')](_0x93b5('0x3b'))){_0x239f96[_0x93b5('0x1f')]=qs[_0x93b5('0x1f')](_0x59389b[_0x93b5('0x35')][_0x93b5('0x1f')]);_0x239f96['offset']=qs['offset'](_0x59389b['query']['offset']);}_0x239f96['order']=qs[_0x93b5('0x3c')](_0x59389b[_0x93b5('0x35')][_0x93b5('0x3c')]);_0x239f96[_0x93b5('0x3d')]=qs[_0x93b5('0x3e')](_[_0x93b5('0x3f')](_0x59389b[_0x93b5('0x35')],_0x54bc50[_0x93b5('0x3e')]),_0x4e4212);if(_0x59389b[_0x93b5('0x35')][_0x93b5('0x40')]){_0x239f96['where']=_['merge'](_0x239f96['where'],{'$or':_[_0x93b5('0x2d')](_0x4e4212,function(_0x394400){if(_0x394400[_0x93b5('0x31')]!==_0x93b5('0x41')){var _0x751eff={};_0x751eff[_0x394400[_0x93b5('0x2a')]]={'$like':'%'+_0x59389b['query'][_0x93b5('0x40')]+'%'};return _0x751eff;}})});}_0x239f96=_[_0x93b5('0x42')]({},_0x239f96,_0x59389b[_0x93b5('0x43')]);var _0x5d5134={'where':_0x239f96[_0x93b5('0x3d')]};return db[_0x93b5('0x2e')]['count'](_0x5d5134)['then'](function(_0xa46dca){_0xf7fc9c[_0x93b5('0x21')]=_0xa46dca;if(_0x59389b[_0x93b5('0x35')][_0x93b5('0x44')]){_0x239f96['include']=[{'all':!![]}];}return db[_0x93b5('0x2e')][_0x93b5('0x45')](_0x239f96);})[_0x93b5('0x26')](function(_0x30188f){_0xf7fc9c[_0x93b5('0x46')]=_0x30188f;return _0xf7fc9c;})[_0x93b5('0x26')](respondWithFilteredResult(_0x2a6b07,_0x239f96))[_0x93b5('0x47')](handleError(_0x2a6b07,null));};exports[_0x93b5('0x48')]=function(_0x51726a,_0x4cabd8){var _0x22b4cf={'raw':![],'where':{'id':_0x51726a[_0x93b5('0x49')]['id']}},_0x290e26={};_0x290e26[_0x93b5('0x33')]=_[_0x93b5('0x34')](db[_0x93b5('0x2e')][_0x93b5('0x2f')]);_0x290e26[_0x93b5('0x35')]=_[_0x93b5('0x34')](_0x51726a[_0x93b5('0x35')]);_0x290e26['filters']=_[_0x93b5('0x37')](_0x290e26['model'],_0x290e26[_0x93b5('0x35')]);_0x22b4cf[_0x93b5('0x36')]=_[_0x93b5('0x37')](_0x290e26['model'],qs[_0x93b5('0x38')](_0x51726a[_0x93b5('0x35')][_0x93b5('0x38')]));_0x22b4cf[_0x93b5('0x36')]=_0x22b4cf[_0x93b5('0x36')][_0x93b5('0x39')]?_0x22b4cf[_0x93b5('0x36')]:_0x290e26['model'];if(_0x51726a[_0x93b5('0x35')][_0x93b5('0x44')]){_0x22b4cf[_0x93b5('0x4a')]=[{'all':!![]}];}_0x22b4cf=_[_0x93b5('0x42')]({},_0x22b4cf,_0x51726a['options']);return db[_0x93b5('0x2e')]['find'](_0x22b4cf)['then'](handleEntityNotFound(_0x4cabd8,null))['then'](respondWithResult(_0x4cabd8,null))[_0x93b5('0x47')](handleError(_0x4cabd8,null));};exports[_0x93b5('0x4b')]=function(_0x6d8e3b,_0x19717d){return db[_0x93b5('0x2e')][_0x93b5('0x4b')](_0x6d8e3b[_0x93b5('0x4c')],{})['then'](respondWithResult(_0x19717d,0xc9))[_0x93b5('0x47')](handleError(_0x19717d,null));};exports[_0x93b5('0x25')]=function(_0x488c3c,_0x505217){if(_0x488c3c[_0x93b5('0x4c')]['id']){delete _0x488c3c[_0x93b5('0x4c')]['id'];}return db[_0x93b5('0x2e')]['find']({'where':{'id':_0x488c3c['params']['id']}})['then'](handleEntityNotFound(_0x505217,null))[_0x93b5('0x26')](saveUpdates(_0x488c3c['body'],null))['then'](respondWithResult(_0x505217,null))[_0x93b5('0x47')](handleError(_0x505217,null));};exports['destroy']=function(_0x27a39a,_0x5eee7d){return db[_0x93b5('0x2e')]['find']({'where':{'id':_0x27a39a['params']['id']}})[_0x93b5('0x26')](handleEntityNotFound(_0x5eee7d,null))[_0x93b5('0x26')](removeEntity(_0x5eee7d,null))[_0x93b5('0x47')](handleError(_0x5eee7d,null));};exports[_0x93b5('0x4d')]=function(_0x27c467,_0x53b4c1,_0x4b6792){var _0x49c5fd={};var _0x21c070={};var _0xe7b552;var _0x3b47bb;return db[_0x93b5('0x2e')]['findOne']({'where':{'id':_0x27c467['params']['id']}})[_0x93b5('0x26')](handleEntityNotFound(_0x53b4c1,null))['then'](function(_0x4853bf){if(_0x4853bf){_0xe7b552=_0x4853bf;_0x21c070[_0x93b5('0x33')]=_[_0x93b5('0x34')](db['FreshdeskConfiguration'][_0x93b5('0x2f')]);_0x21c070['query']=_[_0x93b5('0x34')](_0x27c467[_0x93b5('0x35')]);_0x21c070[_0x93b5('0x3e')]=_[_0x93b5('0x37')](_0x21c070[_0x93b5('0x33')],_0x21c070['query']);_0x49c5fd['attributes']=_[_0x93b5('0x37')](_0x21c070['model'],qs['fields'](_0x27c467[_0x93b5('0x35')][_0x93b5('0x38')]));_0x49c5fd['attributes']=_0x49c5fd[_0x93b5('0x36')]['length']?_0x49c5fd[_0x93b5('0x36')]:_0x21c070['model'];_0x49c5fd[_0x93b5('0x4e')]=qs['sort'](_0x27c467[_0x93b5('0x35')][_0x93b5('0x3c')]);_0x49c5fd['where']=qs['filters'](_[_0x93b5('0x3f')](_0x27c467[_0x93b5('0x35')],_0x21c070[_0x93b5('0x3e')]));if(_0x27c467['query'][_0x93b5('0x40')]){_0x49c5fd[_0x93b5('0x3d')]=_[_0x93b5('0x42')](_0x49c5fd[_0x93b5('0x3d')],{'$or':_[_0x93b5('0x2d')](_0x49c5fd[_0x93b5('0x36')],function(_0x4b3474){var _0x3d19a6={};_0x3d19a6[_0x4b3474]={'$like':'%'+_0x27c467[_0x93b5('0x35')]['filter']+'%'};return _0x3d19a6;})});}_0x49c5fd=_[_0x93b5('0x42')]({},_0x49c5fd,_0x27c467[_0x93b5('0x43')]);return _0xe7b552[_0x93b5('0x4d')](_0x49c5fd);}})[_0x93b5('0x26')](function(_0x152888){if(_0x152888){_0x3b47bb=_0x152888[_0x93b5('0x39')];if(!_0x27c467[_0x93b5('0x35')][_0x93b5('0x3a')](_0x93b5('0x3b'))){_0x49c5fd[_0x93b5('0x1f')]=qs[_0x93b5('0x1f')](_0x27c467[_0x93b5('0x35')]['limit']);_0x49c5fd[_0x93b5('0x1e')]=qs['offset'](_0x27c467[_0x93b5('0x35')][_0x93b5('0x1e')]);}return _0xe7b552[_0x93b5('0x4d')](_0x49c5fd);}})[_0x93b5('0x26')](function(_0x4efdb7){if(_0x4efdb7){return _0x4efdb7?{'count':_0x3b47bb,'rows':_0x4efdb7}:null;}})['then'](respondWithResult(_0x53b4c1,null))[_0x93b5('0x47')](handleError(_0x53b4c1,null));};exports[_0x93b5('0x4f')]=function(_0x2537c1,_0x465792,_0x288701){if(_0x2537c1[_0x93b5('0x4c')]['id']){delete _0x2537c1[_0x93b5('0x4c')]['id'];}return db['FreshdeskAccount'][_0x93b5('0x50')]({'where':{'id':_0x2537c1['params']['id']}})[_0x93b5('0x26')](handleEntityNotFound(_0x465792,null))[_0x93b5('0x26')](function(_0x1db0ef){if(_0x1db0ef){_0x2537c1['body'][_0x93b5('0x51')]=_0x1db0ef['id'];_0x2537c1[_0x93b5('0x4c')][_0x93b5('0x52')]=integrations[_0x93b5('0x53')](_0x2537c1['body'][_0x93b5('0x54')],_0x2537c1['body'][_0x93b5('0x31')]);_0x2537c1['body'][_0x93b5('0x55')]=integrations[_0x93b5('0x56')](_0x2537c1[_0x93b5('0x4c')]['channel'],_0x2537c1[_0x93b5('0x4c')]['type']);return db['FreshdeskConfiguration'][_0x93b5('0x4b')](_0x2537c1[_0x93b5('0x4c')],{'include':[{'model':db['FreshdeskField'],'as':_0x93b5('0x52')},{'model':db['FreshdeskField'],'as':_0x93b5('0x55')}]});}return null;})['then'](respondWithResult(_0x465792,null))[_0x93b5('0x47')](handleError(_0x465792,null));};exports[_0x93b5('0x57')]=function(_0x4efd03,_0x22c366,_0x8db8db){var _0x2ad932='';return db[_0x93b5('0x2e')][_0x93b5('0x50')]({'where':{'id':_0x4efd03[_0x93b5('0x49')]['id']},'attributes':['id',_0x93b5('0x58'),'apiKey']})[_0x93b5('0x26')](handleEntityNotFound(_0x22c366,null))[_0x93b5('0x26')](function(_0x2dea19){if(_0x2dea19){_0x2ad932=_0x2dea19['remoteUri'];var _0x2ef917=_0x2ad932[_0x93b5('0x59')](-0x1);if(_0x2ef917==='/'){_0x2ad932=_0x2ad932[_0x93b5('0x5a')](0x0,_0x2ad932['lastIndexOf'](_0x2ef917));}return rp({'method':'GET','uri':util[_0x93b5('0x5b')](_0x93b5('0x5c'),_0x2ad932,_0x93b5('0x5d')),'headers':{'Authorization':util[_0x93b5('0x5b')]('Basic\x20%s',new Buffer(util[_0x93b5('0x5b')]('%s:X',_0x2dea19[_0x93b5('0x5e')]))[_0x93b5('0x5f')]('base64'))},'json':!![]});}})[_0x93b5('0x26')](function(_0x4acd54){if(_0x4acd54){var _0x25ed4e=['requester',_0x93b5('0x60'),_0x93b5('0x61'),'description',_0x93b5('0x1c'),'priority',_0x93b5('0x62'),_0x93b5('0x63'),_0x93b5('0x64'),_0x93b5('0x62'),_0x93b5('0x65')];_['remove'](_0x4acd54,function(_0x4997eb){return _0x25ed4e[_0x93b5('0x66')](_0x4997eb[_0x93b5('0x2a')])||!_0x4997eb[_0x93b5('0x67')]&&_0x4997eb[_0x93b5('0x31')]!==_0x93b5('0x68')&&_0x4997eb[_0x93b5('0x31')]!==_0x93b5('0x69');});return{'count':_0x4acd54[_0x93b5('0x39')],'rows':_[_0x93b5('0x2d')](_0x4acd54,function(_0x35ed34){return{'id':_0x35ed34['name'],'name':_0x35ed34['label'],'custom':!_0x35ed34[_0x93b5('0x67')],'options':_0x35ed34[_0x93b5('0x6a')]?_[_0x93b5('0x2d')](_0x35ed34['choices'],function(_0x3b2d9d){return{'name':_[_0x93b5('0x6b')](_0x3b2d9d),'value':_0x3b2d9d};}):[]};})};}})[_0x93b5('0x26')](respondWithResult(_0x22c366,null))[_0x93b5('0x47')](function(_0x2d26c8){var _0x256925=_0x4efd03[_0x93b5('0x35')][_0x93b5('0x6c')]?0x1f4:_0x2d26c8[_0x93b5('0x6d')]||0x1f4;logger[_0x93b5('0x28')]('getFields,\x20%s,\x20%s,\x20%s',_0x93b5('0x57'),_0x256925,JSON[_0x93b5('0x6e')](_0x2d26c8));delete _0x2d26c8[_0x93b5('0x2a')];if(_0x256925===0x191){_0x256925=0x190;}_0x22c366['status'](_0x256925)[_0x93b5('0x2b')](_0x4efd03[_0x93b5('0x35')][_0x93b5('0x6c')]?{'message':_0x93b5('0x6f'),'statusCode':_0x2d26c8[_0x93b5('0x6d')]}:_0x2d26c8);});};