Built motion from commit (unavailable).|2.5.6
[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 _0x454c=['find','create','body','getConfigurations','FreshdeskConfiguration','length','filter','addConfiguration','AccountId','getSubjects','channel','FreshdeskField','Subjects','Descriptions','getFields','findOne','remoteUri','apiKey','slice','substring','lastIndexOf','GET','format','%s/%s','api/v2/ticket_fields','%s:X','toString','base64','requester','subject','agent','description','priority','group','source','ticket_type','company','remove','includes','custom_text','custom_dropdown','label','default','choices','capitalize','statusCode','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','request','then','request\x20sent','debug','stringify','error','code','FreshdeskAccount,\x20%s,\x20%s','message','info','result','catch','sendStatus','status','json','count','offset','limit','set','Content-Range','reject','update','destroy','end','name','send','index','FreshdeskAccount','rawAttributes','fieldName','model','map','query','filters','attributes','intersection','fields','nolimit','order','sort','where','pick','merge','type','VIRTUAL','findAll','rows','show','params','keys','includeAll','include','options'];(function(_0x109f48,_0x40847c){var _0x197fff=function(_0x3b995b){while(--_0x3b995b){_0x109f48['push'](_0x109f48['shift']());}};_0x197fff(++_0x40847c);}(_0x454c,0x136));var _0xc454=function(_0xf0bc07,_0x510ebf){_0xf0bc07=_0xf0bc07-0x0;var _0x1c50c2=_0x454c[_0xf0bc07];return _0x1c50c2;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xc454('0x0'));var rimraf=require(_0xc454('0x1'));var zipdir=require(_0xc454('0x2'));var jsonpatch=require(_0xc454('0x3'));var rp=require(_0xc454('0x4'));var moment=require(_0xc454('0x5'));var BPromise=require(_0xc454('0x6'));var Mustache=require('mustache');var util=require(_0xc454('0x7'));var path=require(_0xc454('0x8'));var sox=require(_0xc454('0x9'));var csv=require(_0xc454('0xa'));var ejs=require(_0xc454('0xb'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xc454('0xc'));var jsforce=require(_0xc454('0xd'));var deskjs=require(_0xc454('0xe'));var toCsv=require(_0xc454('0xa'));var querystring=require('querystring');var Papa=require(_0xc454('0xf'));var Redis=require('ioredis');var authService=require(_0xc454('0x10'));var qs=require(_0xc454('0x11'));var as=require(_0xc454('0x12'));var hardwareService=require(_0xc454('0x13'));var logger=require(_0xc454('0x14'))(_0xc454('0x15'));var utils=require(_0xc454('0x16'));var config=require(_0xc454('0x17'));var licenseUtil=require(_0xc454('0x18'));var db=require(_0xc454('0x19'))['db'];var integrations=require(_0xc454('0x1a'));var jayson=require(_0xc454('0x1b'));var client=jayson[_0xc454('0x1c')][_0xc454('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x5440a5,_0x4d3564,_0x1435ac,_0xa7fa3d){return new BPromise(function(_0x1bfecd,_0x2421b2){var _0x51484d=_0xa7fa3d||client;return _0x51484d[_0xc454('0x1e')](_0x5440a5,_0x1435ac)[_0xc454('0x1f')](function(_0x48b876){logger['info']('FreshdeskAccount,\x20%s,\x20%s',_0x4d3564,_0xc454('0x20'));logger[_0xc454('0x21')]('FreshdeskAccount,\x20%s,\x20%s,\x20%s',_0x4d3564,_0xc454('0x20'),JSON[_0xc454('0x22')](_0x48b876));if(_0x48b876[_0xc454('0x23')]){if(_0x48b876[_0xc454('0x23')][_0xc454('0x24')]===0x1f4){logger['error'](_0xc454('0x25'),_0x4d3564,_0x48b876[_0xc454('0x23')][_0xc454('0x26')]);return _0x2421b2(_0x48b876[_0xc454('0x23')][_0xc454('0x26')]);}logger[_0xc454('0x23')]('FreshdeskAccount,\x20%s,\x20%s',_0x4d3564,_0x48b876['error'][_0xc454('0x26')]);return _0x1bfecd(_0x48b876[_0xc454('0x23')][_0xc454('0x26')]);}else{logger[_0xc454('0x27')](_0xc454('0x25'),_0x4d3564,_0xc454('0x20'));_0x1bfecd(_0x48b876[_0xc454('0x28')][_0xc454('0x26')]);}})[_0xc454('0x29')](function(_0x3cb6fb){logger['error'](_0xc454('0x25'),_0x4d3564,_0x3cb6fb);_0x2421b2(_0x3cb6fb);});});}function respondWithStatusCode(_0x47a6cb,_0x3a55f6){_0x3a55f6=_0x3a55f6||0xcc;return function(_0x2d950f){if(_0x2d950f){return _0x47a6cb[_0xc454('0x2a')](_0x3a55f6);}return _0x47a6cb[_0xc454('0x2b')](_0x3a55f6)['end']();};}function respondWithResult(_0x4dd53b,_0xce00d9){_0xce00d9=_0xce00d9||0xc8;return function(_0x241732){if(_0x241732){return _0x4dd53b[_0xc454('0x2b')](_0xce00d9)[_0xc454('0x2c')](_0x241732);}};}function respondWithFilteredResult(_0x51e29e,_0x47d8b9){return function(_0x103ce2){if(_0x103ce2){var _0x5db0ef=_0x103ce2[_0xc454('0x2d')],_0x183bad=_0x47d8b9['offset'],_0x253cec=_0x47d8b9[_0xc454('0x2e')]+_0x47d8b9[_0xc454('0x2f')],_0x140186;if(_0x253cec>=_0x5db0ef){_0x253cec=_0x5db0ef;_0x140186=0xc8;}else{_0x140186=0xce;}_0x51e29e[_0xc454('0x2b')](_0x140186);return _0x51e29e[_0xc454('0x30')](_0xc454('0x31'),_0x183bad+'-'+_0x253cec+'/'+_0x5db0ef)[_0xc454('0x2c')](_0x103ce2);}return null;};}function patchUpdates(_0x1ae71e){return function(_0x59a7ae){try{jsonpatch['apply'](_0x59a7ae,_0x1ae71e,!![]);}catch(_0x59956e){return BPromise[_0xc454('0x32')](_0x59956e);}return _0x59a7ae['save']();};}function saveUpdates(_0x3c70a9,_0x86bebf){return function(_0x14da20){if(_0x14da20){return _0x14da20[_0xc454('0x33')](_0x3c70a9)['then'](function(_0x185222){return _0x185222;});}return null;};}function removeEntity(_0x1cfd5c,_0x3ea6e2){return function(_0x5cdb7b){if(_0x5cdb7b){return _0x5cdb7b[_0xc454('0x34')]()['then'](function(){_0x1cfd5c[_0xc454('0x2b')](0xcc)[_0xc454('0x35')]();});}};}function handleEntityNotFound(_0x48f32d,_0xf31524){return function(_0x21e6af){if(!_0x21e6af){_0x48f32d['sendStatus'](0x194);}return _0x21e6af;};}function handleError(_0xbcf8f,_0x51850c){_0x51850c=_0x51850c||0x1f4;return function(_0x223add){logger['error'](_0x223add['stack']);if(_0x223add[_0xc454('0x36')]){delete _0x223add[_0xc454('0x36')];}_0xbcf8f['status'](_0x51850c)[_0xc454('0x37')](_0x223add);};}exports[_0xc454('0x38')]=function(_0x56d420,_0x598e61){var _0x3279eb={},_0x18540c={},_0x7bb2ed={'count':0x0,'rows':[]};var _0x3e7b13=_['map'](db[_0xc454('0x39')][_0xc454('0x3a')],function(_0x4de85b){return{'name':_0x4de85b[_0xc454('0x3b')],'type':_0x4de85b['type']['key']};});_0x18540c[_0xc454('0x3c')]=_[_0xc454('0x3d')](_0x3e7b13,'name');_0x18540c[_0xc454('0x3e')]=_['keys'](_0x56d420['query']);_0x18540c[_0xc454('0x3f')]=_['intersection'](_0x18540c['model'],_0x18540c[_0xc454('0x3e')]);_0x3279eb[_0xc454('0x40')]=_[_0xc454('0x41')](_0x18540c['model'],qs['fields'](_0x56d420['query'][_0xc454('0x42')]));_0x3279eb[_0xc454('0x40')]=_0x3279eb['attributes']['length']?_0x3279eb[_0xc454('0x40')]:_0x18540c['model'];if(!_0x56d420[_0xc454('0x3e')]['hasOwnProperty'](_0xc454('0x43'))){_0x3279eb[_0xc454('0x2f')]=qs[_0xc454('0x2f')](_0x56d420[_0xc454('0x3e')][_0xc454('0x2f')]);_0x3279eb[_0xc454('0x2e')]=qs[_0xc454('0x2e')](_0x56d420[_0xc454('0x3e')][_0xc454('0x2e')]);}_0x3279eb[_0xc454('0x44')]=qs[_0xc454('0x45')](_0x56d420[_0xc454('0x3e')][_0xc454('0x45')]);_0x3279eb[_0xc454('0x46')]=qs[_0xc454('0x3f')](_[_0xc454('0x47')](_0x56d420['query'],_0x18540c[_0xc454('0x3f')]),_0x3e7b13);if(_0x56d420[_0xc454('0x3e')]['filter']){_0x3279eb[_0xc454('0x46')]=_[_0xc454('0x48')](_0x3279eb['where'],{'$or':_['map'](_0x3e7b13,function(_0x2e0621){if(_0x2e0621[_0xc454('0x49')]!==_0xc454('0x4a')){var _0x17c1c1={};_0x17c1c1[_0x2e0621['name']]={'$like':'%'+_0x56d420[_0xc454('0x3e')]['filter']+'%'};return _0x17c1c1;}})});}_0x3279eb=_[_0xc454('0x48')]({},_0x3279eb,_0x56d420['options']);var _0x4b9064={'where':_0x3279eb[_0xc454('0x46')]};return db[_0xc454('0x39')]['count'](_0x4b9064)[_0xc454('0x1f')](function(_0x2a3502){_0x7bb2ed[_0xc454('0x2d')]=_0x2a3502;if(_0x56d420['query']['includeAll']){_0x3279eb['include']=[{'all':!![]}];}return db[_0xc454('0x39')][_0xc454('0x4b')](_0x3279eb);})[_0xc454('0x1f')](function(_0x5c2cb5){_0x7bb2ed[_0xc454('0x4c')]=_0x5c2cb5;return _0x7bb2ed;})['then'](respondWithFilteredResult(_0x598e61,_0x3279eb))[_0xc454('0x29')](handleError(_0x598e61,null));};exports[_0xc454('0x4d')]=function(_0x30de52,_0x13bb86){var _0x4dfacb={'raw':![],'where':{'id':_0x30de52[_0xc454('0x4e')]['id']}},_0x46edaa={};_0x46edaa['model']=_['keys'](db[_0xc454('0x39')][_0xc454('0x3a')]);_0x46edaa['query']=_[_0xc454('0x4f')](_0x30de52[_0xc454('0x3e')]);_0x46edaa[_0xc454('0x3f')]=_[_0xc454('0x41')](_0x46edaa[_0xc454('0x3c')],_0x46edaa['query']);_0x4dfacb['attributes']=_['intersection'](_0x46edaa['model'],qs[_0xc454('0x42')](_0x30de52[_0xc454('0x3e')][_0xc454('0x42')]));_0x4dfacb[_0xc454('0x40')]=_0x4dfacb[_0xc454('0x40')]['length']?_0x4dfacb[_0xc454('0x40')]:_0x46edaa[_0xc454('0x3c')];if(_0x30de52[_0xc454('0x3e')][_0xc454('0x50')]){_0x4dfacb[_0xc454('0x51')]=[{'all':!![]}];}_0x4dfacb=_[_0xc454('0x48')]({},_0x4dfacb,_0x30de52[_0xc454('0x52')]);return db[_0xc454('0x39')][_0xc454('0x53')](_0x4dfacb)['then'](handleEntityNotFound(_0x13bb86,null))[_0xc454('0x1f')](respondWithResult(_0x13bb86,null))['catch'](handleError(_0x13bb86,null));};exports[_0xc454('0x54')]=function(_0x3da820,_0x320f05){return db[_0xc454('0x39')]['create'](_0x3da820[_0xc454('0x55')],{})['then'](respondWithResult(_0x320f05,0xc9))[_0xc454('0x29')](handleError(_0x320f05,null));};exports['update']=function(_0x51d05b,_0x43807c){if(_0x51d05b[_0xc454('0x55')]['id']){delete _0x51d05b[_0xc454('0x55')]['id'];}return db[_0xc454('0x39')]['find']({'where':{'id':_0x51d05b['params']['id']}})[_0xc454('0x1f')](handleEntityNotFound(_0x43807c,null))[_0xc454('0x1f')](saveUpdates(_0x51d05b[_0xc454('0x55')],null))[_0xc454('0x1f')](respondWithResult(_0x43807c,null))[_0xc454('0x29')](handleError(_0x43807c,null));};exports[_0xc454('0x34')]=function(_0x3b6263,_0x1a5342){return db['FreshdeskAccount'][_0xc454('0x53')]({'where':{'id':_0x3b6263[_0xc454('0x4e')]['id']}})[_0xc454('0x1f')](handleEntityNotFound(_0x1a5342,null))[_0xc454('0x1f')](removeEntity(_0x1a5342,null))[_0xc454('0x29')](handleError(_0x1a5342,null));};exports[_0xc454('0x56')]=function(_0x113f68,_0x3b3f63,_0x2b1d23){var _0x1d478f={};var _0x243368={};var _0x2a1159;var _0x51150d;return db[_0xc454('0x39')]['findOne']({'where':{'id':_0x113f68[_0xc454('0x4e')]['id']}})[_0xc454('0x1f')](handleEntityNotFound(_0x3b3f63,null))[_0xc454('0x1f')](function(_0x2920b2){if(_0x2920b2){_0x2a1159=_0x2920b2;_0x243368[_0xc454('0x3c')]=_['keys'](db[_0xc454('0x57')]['rawAttributes']);_0x243368[_0xc454('0x3e')]=_[_0xc454('0x4f')](_0x113f68['query']);_0x243368[_0xc454('0x3f')]=_['intersection'](_0x243368['model'],_0x243368['query']);_0x1d478f[_0xc454('0x40')]=_[_0xc454('0x41')](_0x243368[_0xc454('0x3c')],qs['fields'](_0x113f68['query'][_0xc454('0x42')]));_0x1d478f[_0xc454('0x40')]=_0x1d478f[_0xc454('0x40')][_0xc454('0x58')]?_0x1d478f[_0xc454('0x40')]:_0x243368[_0xc454('0x3c')];_0x1d478f[_0xc454('0x44')]=qs[_0xc454('0x45')](_0x113f68['query'][_0xc454('0x45')]);_0x1d478f['where']=qs['filters'](_[_0xc454('0x47')](_0x113f68['query'],_0x243368[_0xc454('0x3f')]));if(_0x113f68[_0xc454('0x3e')]['filter']){_0x1d478f[_0xc454('0x46')]=_[_0xc454('0x48')](_0x1d478f[_0xc454('0x46')],{'$or':_['map'](_0x1d478f[_0xc454('0x40')],function(_0x34e933){var _0x44fd03={};_0x44fd03[_0x34e933]={'$like':'%'+_0x113f68[_0xc454('0x3e')][_0xc454('0x59')]+'%'};return _0x44fd03;})});}_0x1d478f=_[_0xc454('0x48')]({},_0x1d478f,_0x113f68['options']);return _0x2a1159[_0xc454('0x56')](_0x1d478f);}})['then'](function(_0xe969c8){if(_0xe969c8){_0x51150d=_0xe969c8[_0xc454('0x58')];if(!_0x113f68[_0xc454('0x3e')]['hasOwnProperty']('nolimit')){_0x1d478f[_0xc454('0x2f')]=qs[_0xc454('0x2f')](_0x113f68[_0xc454('0x3e')][_0xc454('0x2f')]);_0x1d478f['offset']=qs[_0xc454('0x2e')](_0x113f68[_0xc454('0x3e')][_0xc454('0x2e')]);}return _0x2a1159[_0xc454('0x56')](_0x1d478f);}})['then'](function(_0x4ded25){if(_0x4ded25){return _0x4ded25?{'count':_0x51150d,'rows':_0x4ded25}:null;}})[_0xc454('0x1f')](respondWithResult(_0x3b3f63,null))[_0xc454('0x29')](handleError(_0x3b3f63,null));};exports[_0xc454('0x5a')]=function(_0x297976,_0x3ae423,_0x461cba){if(_0x297976['body']['id']){delete _0x297976[_0xc454('0x55')]['id'];}return db['FreshdeskAccount']['findOne']({'where':{'id':_0x297976['params']['id']}})['then'](handleEntityNotFound(_0x3ae423,null))[_0xc454('0x1f')](function(_0x4d2aac){if(_0x4d2aac){_0x297976[_0xc454('0x55')][_0xc454('0x5b')]=_0x4d2aac['id'];_0x297976[_0xc454('0x55')]['Subjects']=integrations[_0xc454('0x5c')](_0x297976['body'][_0xc454('0x5d')],_0x297976[_0xc454('0x55')]['type']);_0x297976['body']['Descriptions']=integrations['getDescriptions'](_0x297976[_0xc454('0x55')][_0xc454('0x5d')],_0x297976[_0xc454('0x55')][_0xc454('0x49')]);return db[_0xc454('0x57')][_0xc454('0x54')](_0x297976[_0xc454('0x55')],{'include':[{'model':db[_0xc454('0x5e')],'as':_0xc454('0x5f')},{'model':db[_0xc454('0x5e')],'as':_0xc454('0x60')}]});}return null;})[_0xc454('0x1f')](respondWithResult(_0x3ae423,null))[_0xc454('0x29')](handleError(_0x3ae423,null));};exports[_0xc454('0x61')]=function(_0x14b789,_0x46a161,_0x4af045){var _0x5cd5ef='';return db[_0xc454('0x39')][_0xc454('0x62')]({'where':{'id':_0x14b789[_0xc454('0x4e')]['id']},'attributes':['id',_0xc454('0x63'),_0xc454('0x64')]})[_0xc454('0x1f')](handleEntityNotFound(_0x46a161,null))[_0xc454('0x1f')](function(_0x1e4ed9){if(_0x1e4ed9){_0x5cd5ef=_0x1e4ed9[_0xc454('0x63')];var _0xbb393a=_0x5cd5ef[_0xc454('0x65')](-0x1);if(_0xbb393a==='/'){_0x5cd5ef=_0x5cd5ef[_0xc454('0x66')](0x0,_0x5cd5ef[_0xc454('0x67')](_0xbb393a));}return rp({'method':_0xc454('0x68'),'uri':util[_0xc454('0x69')](_0xc454('0x6a'),_0x5cd5ef,_0xc454('0x6b')),'headers':{'Authorization':util['format']('Basic\x20%s',new Buffer(util[_0xc454('0x69')](_0xc454('0x6c'),_0x1e4ed9['apiKey']))[_0xc454('0x6d')](_0xc454('0x6e')))},'json':!![]});}})['then'](function(_0x234983){if(_0x234983){var _0x108db5=[_0xc454('0x6f'),_0xc454('0x70'),_0xc454('0x71'),_0xc454('0x72'),_0xc454('0x2b'),_0xc454('0x73'),_0xc454('0x74'),_0xc454('0x75'),_0xc454('0x76'),'group',_0xc454('0x77')];_[_0xc454('0x78')](_0x234983,function(_0x41903b){return _0x108db5[_0xc454('0x79')](_0x41903b[_0xc454('0x36')])||!_0x41903b['default']&&_0x41903b[_0xc454('0x49')]!==_0xc454('0x7a')&&_0x41903b[_0xc454('0x49')]!==_0xc454('0x7b');});return{'count':_0x234983[_0xc454('0x58')],'rows':_['map'](_0x234983,function(_0x731102){return{'id':_0x731102['name'],'name':_0x731102[_0xc454('0x7c')],'custom':!_0x731102[_0xc454('0x7d')],'options':_0x731102['choices']?_['map'](_0x731102[_0xc454('0x7e')],function(_0x1c612d){return{'name':_[_0xc454('0x7f')](_0x1c612d),'value':_0x1c612d};}):[]};})};}})[_0xc454('0x1f')](respondWithResult(_0x46a161,null))[_0xc454('0x29')](function(_0x4f225f){var _0x14fe45=_0x14b789[_0xc454('0x3e')]['test']?0x1f4:_0x4f225f[_0xc454('0x80')]||0x1f4;logger[_0xc454('0x23')]('getFields,\x20%s,\x20%s,\x20%s',_0xc454('0x61'),_0x14fe45,JSON[_0xc454('0x22')](_0x4f225f));delete _0x4f225f[_0xc454('0x36')];if(_0x14fe45===0x191){_0x14fe45=0x190;}_0x46a161['status'](_0x14fe45)[_0xc454('0x37')](_0x14b789[_0xc454('0x3e')][_0xc454('0x81')]?{'message':_0xc454('0x82'),'statusCode':_0x4f225f[_0xc454('0x80')]}:_0x4f225f);});};