Built motion from commit 10af8726.|2.6.34
[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 _0xb299=['attributes','model','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','merge','options','includeAll','include','catch','show','params','keys','create','find','getConfigurations','findOne','FreshdeskConfiguration','nolimit','addConfiguration','body','Subjects','getSubjects','channel','getDescriptions','FreshdeskField','Descriptions','remoteUri','apiKey','slice','substring','GET','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','%s:X','toString','base64','requester','agent','group','source','ticket_type','remove','includes','default','custom_text','custom_dropdown','label','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','name','send','index','map','FreshdeskAccount','rawAttributes','fieldName','type','key','intersection','query'];(function(_0x5dff07,_0x2a827b){var _0x56151f=function(_0xe4ed17){while(--_0xe4ed17){_0x5dff07['push'](_0x5dff07['shift']());}};_0x56151f(++_0x2a827b);}(_0xb299,0x19b));var _0x9b29=function(_0x5e105c,_0x3846a4){_0x5e105c=_0x5e105c-0x0;var _0x5cc674=_0xb299[_0x5e105c];return _0x5cc674;};'use strict';var emlformat=require(_0x9b29('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9b29('0x1'));var jsonpatch=require(_0x9b29('0x2'));var rp=require(_0x9b29('0x3'));var moment=require(_0x9b29('0x4'));var BPromise=require(_0x9b29('0x5'));var Mustache=require(_0x9b29('0x6'));var util=require(_0x9b29('0x7'));var path=require('path');var sox=require(_0x9b29('0x8'));var csv=require(_0x9b29('0x9'));var ejs=require(_0x9b29('0xa'));var fs=require('fs');var fs_extra=require(_0x9b29('0xb'));var _=require(_0x9b29('0xc'));var squel=require(_0x9b29('0xd'));var crypto=require(_0x9b29('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x9b29('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x9b29('0x10'));var Redis=require(_0x9b29('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x9b29('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9b29('0x13'));var logger=require(_0x9b29('0x14'))(_0x9b29('0x15'));var utils=require('../../config/utils');var config=require(_0x9b29('0x16'));var licenseUtil=require(_0x9b29('0x17'));var db=require(_0x9b29('0x18'))['db'];var integrations=require(_0x9b29('0x19'));function respondWithStatusCode(_0x35da05,_0x353308){_0x353308=_0x353308||0xcc;return function(_0x2479a2){if(_0x2479a2){return _0x35da05[_0x9b29('0x1a')](_0x353308);}return _0x35da05[_0x9b29('0x1b')](_0x353308)[_0x9b29('0x1c')]();};}function respondWithResult(_0x370f86,_0x292a5f){_0x292a5f=_0x292a5f||0xc8;return function(_0x355806){if(_0x355806){return _0x370f86[_0x9b29('0x1b')](_0x292a5f)[_0x9b29('0x1d')](_0x355806);}};}function respondWithFilteredResult(_0x2e5976,_0x4773c3){return function(_0x45b857){if(_0x45b857){var _0x31d9a1=typeof _0x4773c3[_0x9b29('0x1e')]===_0x9b29('0x1f')&&typeof _0x4773c3[_0x9b29('0x20')]==='undefined';var _0x48d3b4=_0x45b857['count'];var _0xf8967d=_0x31d9a1?0x0:_0x4773c3[_0x9b29('0x1e')];var _0x24d45d=_0x31d9a1?_0x45b857[_0x9b29('0x21')]:_0x4773c3[_0x9b29('0x1e')]+_0x4773c3[_0x9b29('0x20')];var _0x12c2e4;if(_0x24d45d>=_0x48d3b4){_0x24d45d=_0x48d3b4;_0x12c2e4=0xc8;}else{_0x12c2e4=0xce;}_0x2e5976[_0x9b29('0x1b')](_0x12c2e4);return _0x2e5976[_0x9b29('0x22')](_0x9b29('0x23'),_0xf8967d+'-'+_0x24d45d+'/'+_0x48d3b4)['json'](_0x45b857);}return null;};}function patchUpdates(_0x598d3f){return function(_0xdebf3e){try{jsonpatch[_0x9b29('0x24')](_0xdebf3e,_0x598d3f,!![]);}catch(_0x7b8615){return BPromise[_0x9b29('0x25')](_0x7b8615);}return _0xdebf3e[_0x9b29('0x26')]();};}function saveUpdates(_0x389f27,_0x90a182){return function(_0x3ab389){if(_0x3ab389){return _0x3ab389[_0x9b29('0x27')](_0x389f27)[_0x9b29('0x28')](function(_0x4802f7){return _0x4802f7;});}return null;};}function removeEntity(_0x1d6743,_0x1861a4){return function(_0xeebf6c){if(_0xeebf6c){return _0xeebf6c['destroy']()[_0x9b29('0x28')](function(){_0x1d6743['status'](0xcc)[_0x9b29('0x1c')]();});}};}function handleEntityNotFound(_0x3d05fc,_0x48b85d){return function(_0x4ef61f){if(!_0x4ef61f){_0x3d05fc[_0x9b29('0x1a')](0x194);}return _0x4ef61f;};}function handleError(_0x405f2d,_0x50ea3d){_0x50ea3d=_0x50ea3d||0x1f4;return function(_0x3fa7b6){logger[_0x9b29('0x29')](_0x3fa7b6['stack']);if(_0x3fa7b6[_0x9b29('0x2a')]){delete _0x3fa7b6[_0x9b29('0x2a')];}_0x405f2d[_0x9b29('0x1b')](_0x50ea3d)[_0x9b29('0x2b')](_0x3fa7b6);};}exports[_0x9b29('0x2c')]=function(_0x49025f,_0x25a000){var _0x3cee24={},_0x36fb08={},_0x386c65={'count':0x0,'rows':[]};var _0x512e71=_[_0x9b29('0x2d')](db[_0x9b29('0x2e')][_0x9b29('0x2f')],function(_0x2fe6a5){return{'name':_0x2fe6a5[_0x9b29('0x30')],'type':_0x2fe6a5[_0x9b29('0x31')][_0x9b29('0x32')]};});_0x36fb08['model']=_[_0x9b29('0x2d')](_0x512e71,_0x9b29('0x2a'));_0x36fb08['query']=_['keys'](_0x49025f['query']);_0x36fb08['filters']=_[_0x9b29('0x33')](_0x36fb08['model'],_0x36fb08[_0x9b29('0x34')]);_0x3cee24[_0x9b29('0x35')]=_[_0x9b29('0x33')](_0x36fb08[_0x9b29('0x36')],qs[_0x9b29('0x37')](_0x49025f[_0x9b29('0x34')][_0x9b29('0x37')]));_0x3cee24['attributes']=_0x3cee24['attributes'][_0x9b29('0x38')]?_0x3cee24[_0x9b29('0x35')]:_0x36fb08[_0x9b29('0x36')];if(!_0x49025f[_0x9b29('0x34')][_0x9b29('0x39')]('nolimit')){_0x3cee24[_0x9b29('0x20')]=qs['limit'](_0x49025f['query'][_0x9b29('0x20')]);_0x3cee24[_0x9b29('0x1e')]=qs[_0x9b29('0x1e')](_0x49025f[_0x9b29('0x34')][_0x9b29('0x1e')]);}_0x3cee24[_0x9b29('0x3a')]=qs[_0x9b29('0x3b')](_0x49025f[_0x9b29('0x34')]['sort']);_0x3cee24[_0x9b29('0x3c')]=qs[_0x9b29('0x3d')](_[_0x9b29('0x3e')](_0x49025f[_0x9b29('0x34')],_0x36fb08[_0x9b29('0x3d')]),_0x512e71);if(_0x49025f[_0x9b29('0x34')][_0x9b29('0x3f')]){_0x3cee24[_0x9b29('0x3c')]=_[_0x9b29('0x40')](_0x3cee24[_0x9b29('0x3c')],{'$or':_[_0x9b29('0x2d')](_0x512e71,function(_0x1b7250){if(_0x1b7250[_0x9b29('0x31')]!=='VIRTUAL'){var _0x3a4699={};_0x3a4699[_0x1b7250[_0x9b29('0x2a')]]={'$like':'%'+_0x49025f[_0x9b29('0x34')]['filter']+'%'};return _0x3a4699;}})});}_0x3cee24=_[_0x9b29('0x40')]({},_0x3cee24,_0x49025f[_0x9b29('0x41')]);var _0x3620d9={'where':_0x3cee24['where']};return db[_0x9b29('0x2e')]['count'](_0x3620d9)[_0x9b29('0x28')](function(_0x8e91ed){_0x386c65['count']=_0x8e91ed;if(_0x49025f['query'][_0x9b29('0x42')]){_0x3cee24[_0x9b29('0x43')]=[{'all':!![]}];}return db[_0x9b29('0x2e')]['findAll'](_0x3cee24);})[_0x9b29('0x28')](function(_0x5a79fa){_0x386c65['rows']=_0x5a79fa;return _0x386c65;})[_0x9b29('0x28')](respondWithFilteredResult(_0x25a000,_0x3cee24))[_0x9b29('0x44')](handleError(_0x25a000,null));};exports[_0x9b29('0x45')]=function(_0x2d6be6,_0x59c3b0){var _0x6e0a00={'raw':![],'where':{'id':_0x2d6be6[_0x9b29('0x46')]['id']}},_0x116cb0={};_0x116cb0[_0x9b29('0x36')]=_['keys'](db['FreshdeskAccount'][_0x9b29('0x2f')]);_0x116cb0[_0x9b29('0x34')]=_[_0x9b29('0x47')](_0x2d6be6['query']);_0x116cb0[_0x9b29('0x3d')]=_[_0x9b29('0x33')](_0x116cb0[_0x9b29('0x36')],_0x116cb0['query']);_0x6e0a00[_0x9b29('0x35')]=_[_0x9b29('0x33')](_0x116cb0[_0x9b29('0x36')],qs[_0x9b29('0x37')](_0x2d6be6[_0x9b29('0x34')]['fields']));_0x6e0a00[_0x9b29('0x35')]=_0x6e0a00[_0x9b29('0x35')][_0x9b29('0x38')]?_0x6e0a00['attributes']:_0x116cb0[_0x9b29('0x36')];if(_0x2d6be6[_0x9b29('0x34')][_0x9b29('0x42')]){_0x6e0a00['include']=[{'all':!![]}];}_0x6e0a00=_[_0x9b29('0x40')]({},_0x6e0a00,_0x2d6be6[_0x9b29('0x41')]);return db[_0x9b29('0x2e')]['find'](_0x6e0a00)['then'](handleEntityNotFound(_0x59c3b0,null))['then'](respondWithResult(_0x59c3b0,null))[_0x9b29('0x44')](handleError(_0x59c3b0,null));};exports[_0x9b29('0x48')]=function(_0x31fcf9,_0x13d87d){return db[_0x9b29('0x2e')]['create'](_0x31fcf9['body'],{})[_0x9b29('0x28')](respondWithResult(_0x13d87d,0xc9))[_0x9b29('0x44')](handleError(_0x13d87d,null));};exports[_0x9b29('0x27')]=function(_0x50500e,_0x43508a){if(_0x50500e['body']['id']){delete _0x50500e['body']['id'];}return db[_0x9b29('0x2e')][_0x9b29('0x49')]({'where':{'id':_0x50500e[_0x9b29('0x46')]['id']}})[_0x9b29('0x28')](handleEntityNotFound(_0x43508a,null))[_0x9b29('0x28')](saveUpdates(_0x50500e['body'],null))['then'](respondWithResult(_0x43508a,null))['catch'](handleError(_0x43508a,null));};exports['destroy']=function(_0x2eb99c,_0x225c55){return db[_0x9b29('0x2e')][_0x9b29('0x49')]({'where':{'id':_0x2eb99c[_0x9b29('0x46')]['id']}})[_0x9b29('0x28')](handleEntityNotFound(_0x225c55,null))['then'](removeEntity(_0x225c55,null))[_0x9b29('0x44')](handleError(_0x225c55,null));};exports[_0x9b29('0x4a')]=function(_0x1fd72a,_0x4b53b2,_0x2088b9){var _0x193287={};var _0xab0b76={};var _0x16206c;var _0x3ac328;return db[_0x9b29('0x2e')][_0x9b29('0x4b')]({'where':{'id':_0x1fd72a[_0x9b29('0x46')]['id']}})[_0x9b29('0x28')](handleEntityNotFound(_0x4b53b2,null))['then'](function(_0x46484c){if(_0x46484c){_0x16206c=_0x46484c;_0xab0b76[_0x9b29('0x36')]=_[_0x9b29('0x47')](db[_0x9b29('0x4c')][_0x9b29('0x2f')]);_0xab0b76[_0x9b29('0x34')]=_[_0x9b29('0x47')](_0x1fd72a[_0x9b29('0x34')]);_0xab0b76[_0x9b29('0x3d')]=_[_0x9b29('0x33')](_0xab0b76[_0x9b29('0x36')],_0xab0b76[_0x9b29('0x34')]);_0x193287[_0x9b29('0x35')]=_['intersection'](_0xab0b76['model'],qs[_0x9b29('0x37')](_0x1fd72a[_0x9b29('0x34')]['fields']));_0x193287[_0x9b29('0x35')]=_0x193287[_0x9b29('0x35')][_0x9b29('0x38')]?_0x193287[_0x9b29('0x35')]:_0xab0b76[_0x9b29('0x36')];_0x193287[_0x9b29('0x3a')]=qs[_0x9b29('0x3b')](_0x1fd72a[_0x9b29('0x34')]['sort']);_0x193287['where']=qs[_0x9b29('0x3d')](_[_0x9b29('0x3e')](_0x1fd72a[_0x9b29('0x34')],_0xab0b76[_0x9b29('0x3d')]));if(_0x1fd72a['query'][_0x9b29('0x3f')]){_0x193287[_0x9b29('0x3c')]=_[_0x9b29('0x40')](_0x193287[_0x9b29('0x3c')],{'$or':_[_0x9b29('0x2d')](_0x193287[_0x9b29('0x35')],function(_0x82e152){var _0x297b75={};_0x297b75[_0x82e152]={'$like':'%'+_0x1fd72a[_0x9b29('0x34')][_0x9b29('0x3f')]+'%'};return _0x297b75;})});}_0x193287=_[_0x9b29('0x40')]({},_0x193287,_0x1fd72a['options']);return _0x16206c[_0x9b29('0x4a')](_0x193287);}})['then'](function(_0x28c5e9){if(_0x28c5e9){_0x3ac328=_0x28c5e9['length'];if(!_0x1fd72a[_0x9b29('0x34')][_0x9b29('0x39')](_0x9b29('0x4d'))){_0x193287[_0x9b29('0x20')]=qs[_0x9b29('0x20')](_0x1fd72a[_0x9b29('0x34')][_0x9b29('0x20')]);_0x193287[_0x9b29('0x1e')]=qs['offset'](_0x1fd72a[_0x9b29('0x34')][_0x9b29('0x1e')]);}return _0x16206c[_0x9b29('0x4a')](_0x193287);}})[_0x9b29('0x28')](function(_0x5a68b5){if(_0x5a68b5){return _0x5a68b5?{'count':_0x3ac328,'rows':_0x5a68b5}:null;}})[_0x9b29('0x28')](respondWithResult(_0x4b53b2,null))[_0x9b29('0x44')](handleError(_0x4b53b2,null));};exports[_0x9b29('0x4e')]=function(_0x3e9ff8,_0x1c37ad,_0x11036f){if(_0x3e9ff8[_0x9b29('0x4f')]['id']){delete _0x3e9ff8[_0x9b29('0x4f')]['id'];}return db[_0x9b29('0x2e')][_0x9b29('0x4b')]({'where':{'id':_0x3e9ff8['params']['id']}})[_0x9b29('0x28')](handleEntityNotFound(_0x1c37ad,null))[_0x9b29('0x28')](function(_0x478838){if(_0x478838){_0x3e9ff8[_0x9b29('0x4f')]['AccountId']=_0x478838['id'];_0x3e9ff8[_0x9b29('0x4f')][_0x9b29('0x50')]=integrations[_0x9b29('0x51')](_0x3e9ff8[_0x9b29('0x4f')][_0x9b29('0x52')],_0x3e9ff8[_0x9b29('0x4f')][_0x9b29('0x31')]);_0x3e9ff8[_0x9b29('0x4f')]['Descriptions']=integrations[_0x9b29('0x53')](_0x3e9ff8[_0x9b29('0x4f')]['channel'],_0x3e9ff8['body'][_0x9b29('0x31')]);return db[_0x9b29('0x4c')][_0x9b29('0x48')](_0x3e9ff8['body'],{'include':[{'model':db['FreshdeskField'],'as':_0x9b29('0x50')},{'model':db[_0x9b29('0x54')],'as':_0x9b29('0x55')}]});}return null;})[_0x9b29('0x28')](respondWithResult(_0x1c37ad,null))[_0x9b29('0x44')](handleError(_0x1c37ad,null));};exports['getFields']=function(_0x4248af,_0x4cd0bb,_0x48aa19){var _0x18eb00='';return db['FreshdeskAccount'][_0x9b29('0x4b')]({'where':{'id':_0x4248af[_0x9b29('0x46')]['id']},'attributes':['id',_0x9b29('0x56'),_0x9b29('0x57')]})[_0x9b29('0x28')](handleEntityNotFound(_0x4cd0bb,null))[_0x9b29('0x28')](function(_0x196bb1){if(_0x196bb1){_0x18eb00=_0x196bb1[_0x9b29('0x56')];var _0x5563f7=_0x18eb00[_0x9b29('0x58')](-0x1);if(_0x5563f7==='/'){_0x18eb00=_0x18eb00[_0x9b29('0x59')](0x0,_0x18eb00['lastIndexOf'](_0x5563f7));}return rp({'method':_0x9b29('0x5a'),'uri':util[_0x9b29('0x5b')](_0x9b29('0x5c'),_0x18eb00,_0x9b29('0x5d')),'headers':{'Authorization':util[_0x9b29('0x5b')](_0x9b29('0x5e'),new Buffer(util[_0x9b29('0x5b')](_0x9b29('0x5f'),_0x196bb1[_0x9b29('0x57')]))[_0x9b29('0x60')](_0x9b29('0x61')))},'json':!![]});}})[_0x9b29('0x28')](function(_0x514921){if(_0x514921){var _0x5d931b=[_0x9b29('0x62'),'subject',_0x9b29('0x63'),'description',_0x9b29('0x1b'),'priority',_0x9b29('0x64'),_0x9b29('0x65'),_0x9b29('0x66'),_0x9b29('0x64'),'company'];_[_0x9b29('0x67')](_0x514921,function(_0x2332e7){return _0x5d931b[_0x9b29('0x68')](_0x2332e7[_0x9b29('0x2a')])||!_0x2332e7[_0x9b29('0x69')]&&_0x2332e7[_0x9b29('0x31')]!==_0x9b29('0x6a')&&_0x2332e7[_0x9b29('0x31')]!==_0x9b29('0x6b');});return{'count':_0x514921[_0x9b29('0x38')],'rows':_['map'](_0x514921,function(_0x37e6f0){return{'id':_0x37e6f0['name'],'name':_0x37e6f0[_0x9b29('0x6c')],'custom':!_0x37e6f0['default'],'options':_0x37e6f0['choices']?_[_0x9b29('0x2d')](_0x37e6f0[_0x9b29('0x6d')],function(_0x10c151){return{'name':_[_0x9b29('0x6e')](_0x10c151),'value':_0x10c151};}):[]};})};}})['then'](respondWithResult(_0x4cd0bb,null))[_0x9b29('0x44')](function(_0x43cdf2){var _0x3a00fc=_0x4248af[_0x9b29('0x34')][_0x9b29('0x6f')]?0x1f4:_0x43cdf2[_0x9b29('0x70')]||0x1f4;logger['error'](_0x9b29('0x71'),_0x9b29('0x72'),_0x3a00fc,JSON[_0x9b29('0x73')](_0x43cdf2));delete _0x43cdf2[_0x9b29('0x2a')];if(_0x3a00fc===0x191){_0x3a00fc=0x190;}_0x4cd0bb['status'](_0x3a00fc)[_0x9b29('0x2b')](_0x4248af[_0x9b29('0x34')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x43cdf2[_0x9b29('0x70')]}:_0x43cdf2);});};