Built motion from commit da24aabd.|2.6.20
[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 _0x1339=['priority','group','source','company','includes','default','custom_text','label','choices','capitalize','test','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','statusCode','eml-format','rimraf','fast-json-patch','request-promise','mustache','util','sox','to-csv','ejs','fs-extra','lodash','jsforce','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','error','name','send','map','FreshdeskAccount','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','nolimit','order','sort','pick','where','merge','type','filter','includeAll','include','show','params','options','find','catch','create','update','body','findOne','FreshdeskConfiguration','getConfigurations','hasOwnProperty','addConfiguration','channel','getDescriptions','FreshdeskField','getFields','remoteUri','apiKey','slice','substring','lastIndexOf','GET','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','%s:X','toString','base64','agent','description'];(function(_0x270427,_0x5d40d8){var _0x5d2357=function(_0x4c5131){while(--_0x4c5131){_0x270427['push'](_0x270427['shift']());}};_0x5d2357(++_0x5d40d8);}(_0x1339,0x1bf));var _0x9133=function(_0x35acda,_0x1bbecc){_0x35acda=_0x35acda-0x0;var _0x50084e=_0x1339[_0x35acda];return _0x50084e;};'use strict';var emlformat=require(_0x9133('0x0'));var rimraf=require(_0x9133('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9133('0x2'));var rp=require(_0x9133('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x9133('0x4'));var util=require(_0x9133('0x5'));var path=require('path');var sox=require(_0x9133('0x6'));var csv=require(_0x9133('0x7'));var ejs=require(_0x9133('0x8'));var fs=require('fs');var fs_extra=require(_0x9133('0x9'));var _=require(_0x9133('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x9133('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x9133('0x7'));var querystring=require('querystring');var Papa=require(_0x9133('0xc'));var Redis=require('ioredis');var authService=require(_0x9133('0xd'));var qs=require(_0x9133('0xe'));var as=require(_0x9133('0xf'));var hardwareService=require(_0x9133('0x10'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x9133('0x11'));var licenseUtil=require(_0x9133('0x12'));var db=require(_0x9133('0x13'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x3048a5,_0x177239){_0x177239=_0x177239||0xcc;return function(_0x2d3333){if(_0x2d3333){return _0x3048a5[_0x9133('0x14')](_0x177239);}return _0x3048a5[_0x9133('0x15')](_0x177239)[_0x9133('0x16')]();};}function respondWithResult(_0x8e9362,_0xb05b1c){_0xb05b1c=_0xb05b1c||0xc8;return function(_0x39122a){if(_0x39122a){return _0x8e9362['status'](_0xb05b1c)[_0x9133('0x17')](_0x39122a);}};}function respondWithFilteredResult(_0x57f4d9,_0x555651){return function(_0x8e3461){if(_0x8e3461){var _0x1aabd0=typeof _0x555651[_0x9133('0x18')]===_0x9133('0x19')&&typeof _0x555651[_0x9133('0x1a')]===_0x9133('0x19');var _0x38f2fd=_0x8e3461['count'];var _0x4d60b7=_0x1aabd0?0x0:_0x555651[_0x9133('0x18')];var _0x969520=_0x1aabd0?_0x8e3461[_0x9133('0x1b')]:_0x555651['offset']+_0x555651['limit'];var _0xfe140d;if(_0x969520>=_0x38f2fd){_0x969520=_0x38f2fd;_0xfe140d=0xc8;}else{_0xfe140d=0xce;}_0x57f4d9[_0x9133('0x15')](_0xfe140d);return _0x57f4d9[_0x9133('0x1c')](_0x9133('0x1d'),_0x4d60b7+'-'+_0x969520+'/'+_0x38f2fd)[_0x9133('0x17')](_0x8e3461);}return null;};}function patchUpdates(_0x21720){return function(_0x445244){try{jsonpatch[_0x9133('0x1e')](_0x445244,_0x21720,!![]);}catch(_0x1fa17d){return BPromise[_0x9133('0x1f')](_0x1fa17d);}return _0x445244[_0x9133('0x20')]();};}function saveUpdates(_0x2219d7,_0xeb79c1){return function(_0x2a311a){if(_0x2a311a){return _0x2a311a['update'](_0x2219d7)[_0x9133('0x21')](function(_0xdc20d9){return _0xdc20d9;});}return null;};}function removeEntity(_0x4bf1ed,_0x4f6c6a){return function(_0x2f54cb){if(_0x2f54cb){return _0x2f54cb[_0x9133('0x22')]()[_0x9133('0x21')](function(){_0x4bf1ed['status'](0xcc)[_0x9133('0x16')]();});}};}function handleEntityNotFound(_0x3a7c70,_0x50d1da){return function(_0x16366e){if(!_0x16366e){_0x3a7c70['sendStatus'](0x194);}return _0x16366e;};}function handleError(_0x552011,_0x5a83e0){_0x5a83e0=_0x5a83e0||0x1f4;return function(_0x44fb6a){logger[_0x9133('0x23')](_0x44fb6a['stack']);if(_0x44fb6a[_0x9133('0x24')]){delete _0x44fb6a[_0x9133('0x24')];}_0x552011[_0x9133('0x15')](_0x5a83e0)[_0x9133('0x25')](_0x44fb6a);};}exports['index']=function(_0x276583,_0x3f8b9b){var _0x3c8081={},_0x5f43ec={},_0x7e8423={'count':0x0,'rows':[]};var _0x108852=_[_0x9133('0x26')](db[_0x9133('0x27')][_0x9133('0x28')],function(_0x52eb56){return{'name':_0x52eb56[_0x9133('0x29')],'type':_0x52eb56['type'][_0x9133('0x2a')]};});_0x5f43ec[_0x9133('0x2b')]=_[_0x9133('0x26')](_0x108852,_0x9133('0x24'));_0x5f43ec['query']=_[_0x9133('0x2c')](_0x276583[_0x9133('0x2d')]);_0x5f43ec[_0x9133('0x2e')]=_[_0x9133('0x2f')](_0x5f43ec['model'],_0x5f43ec[_0x9133('0x2d')]);_0x3c8081[_0x9133('0x30')]=_[_0x9133('0x2f')](_0x5f43ec[_0x9133('0x2b')],qs[_0x9133('0x31')](_0x276583['query'][_0x9133('0x31')]));_0x3c8081[_0x9133('0x30')]=_0x3c8081['attributes'][_0x9133('0x32')]?_0x3c8081[_0x9133('0x30')]:_0x5f43ec[_0x9133('0x2b')];if(!_0x276583[_0x9133('0x2d')]['hasOwnProperty'](_0x9133('0x33'))){_0x3c8081['limit']=qs[_0x9133('0x1a')](_0x276583[_0x9133('0x2d')]['limit']);_0x3c8081[_0x9133('0x18')]=qs[_0x9133('0x18')](_0x276583['query'][_0x9133('0x18')]);}_0x3c8081[_0x9133('0x34')]=qs['sort'](_0x276583['query'][_0x9133('0x35')]);_0x3c8081['where']=qs[_0x9133('0x2e')](_[_0x9133('0x36')](_0x276583['query'],_0x5f43ec[_0x9133('0x2e')]),_0x108852);if(_0x276583[_0x9133('0x2d')]['filter']){_0x3c8081[_0x9133('0x37')]=_[_0x9133('0x38')](_0x3c8081[_0x9133('0x37')],{'$or':_[_0x9133('0x26')](_0x108852,function(_0x1126bc){if(_0x1126bc[_0x9133('0x39')]!=='VIRTUAL'){var _0x374f3b={};_0x374f3b[_0x1126bc[_0x9133('0x24')]]={'$like':'%'+_0x276583[_0x9133('0x2d')][_0x9133('0x3a')]+'%'};return _0x374f3b;}})});}_0x3c8081=_['merge']({},_0x3c8081,_0x276583['options']);var _0x577340={'where':_0x3c8081[_0x9133('0x37')]};return db['FreshdeskAccount'][_0x9133('0x1b')](_0x577340)[_0x9133('0x21')](function(_0x3d3a8b){_0x7e8423['count']=_0x3d3a8b;if(_0x276583[_0x9133('0x2d')][_0x9133('0x3b')]){_0x3c8081[_0x9133('0x3c')]=[{'all':!![]}];}return db[_0x9133('0x27')]['findAll'](_0x3c8081);})[_0x9133('0x21')](function(_0x382d28){_0x7e8423['rows']=_0x382d28;return _0x7e8423;})['then'](respondWithFilteredResult(_0x3f8b9b,_0x3c8081))['catch'](handleError(_0x3f8b9b,null));};exports[_0x9133('0x3d')]=function(_0x4f362e,_0x1a629c){var _0x32bd9b={'raw':![],'where':{'id':_0x4f362e[_0x9133('0x3e')]['id']}},_0x41a330={};_0x41a330[_0x9133('0x2b')]=_[_0x9133('0x2c')](db[_0x9133('0x27')][_0x9133('0x28')]);_0x41a330[_0x9133('0x2d')]=_[_0x9133('0x2c')](_0x4f362e['query']);_0x41a330[_0x9133('0x2e')]=_['intersection'](_0x41a330['model'],_0x41a330['query']);_0x32bd9b[_0x9133('0x30')]=_[_0x9133('0x2f')](_0x41a330['model'],qs[_0x9133('0x31')](_0x4f362e[_0x9133('0x2d')][_0x9133('0x31')]));_0x32bd9b[_0x9133('0x30')]=_0x32bd9b['attributes'][_0x9133('0x32')]?_0x32bd9b['attributes']:_0x41a330[_0x9133('0x2b')];if(_0x4f362e[_0x9133('0x2d')][_0x9133('0x3b')]){_0x32bd9b[_0x9133('0x3c')]=[{'all':!![]}];}_0x32bd9b=_[_0x9133('0x38')]({},_0x32bd9b,_0x4f362e[_0x9133('0x3f')]);return db[_0x9133('0x27')][_0x9133('0x40')](_0x32bd9b)[_0x9133('0x21')](handleEntityNotFound(_0x1a629c,null))['then'](respondWithResult(_0x1a629c,null))[_0x9133('0x41')](handleError(_0x1a629c,null));};exports[_0x9133('0x42')]=function(_0xe0cf1d,_0xd1e581){return db[_0x9133('0x27')][_0x9133('0x42')](_0xe0cf1d['body'],{})[_0x9133('0x21')](respondWithResult(_0xd1e581,0xc9))[_0x9133('0x41')](handleError(_0xd1e581,null));};exports[_0x9133('0x43')]=function(_0x1f8a27,_0x2275b5){if(_0x1f8a27[_0x9133('0x44')]['id']){delete _0x1f8a27['body']['id'];}return db[_0x9133('0x27')][_0x9133('0x40')]({'where':{'id':_0x1f8a27[_0x9133('0x3e')]['id']}})[_0x9133('0x21')](handleEntityNotFound(_0x2275b5,null))[_0x9133('0x21')](saveUpdates(_0x1f8a27[_0x9133('0x44')],null))[_0x9133('0x21')](respondWithResult(_0x2275b5,null))[_0x9133('0x41')](handleError(_0x2275b5,null));};exports['destroy']=function(_0x1c6840,_0x597854){return db[_0x9133('0x27')][_0x9133('0x40')]({'where':{'id':_0x1c6840[_0x9133('0x3e')]['id']}})['then'](handleEntityNotFound(_0x597854,null))[_0x9133('0x21')](removeEntity(_0x597854,null))['catch'](handleError(_0x597854,null));};exports['getConfigurations']=function(_0xc34745,_0x1f1593,_0x103ab8){var _0xe1b188={};var _0x2898ae={};var _0x3d3e67;var _0x3df357;return db[_0x9133('0x27')][_0x9133('0x45')]({'where':{'id':_0xc34745[_0x9133('0x3e')]['id']}})[_0x9133('0x21')](handleEntityNotFound(_0x1f1593,null))[_0x9133('0x21')](function(_0x48ef9b){if(_0x48ef9b){_0x3d3e67=_0x48ef9b;_0x2898ae[_0x9133('0x2b')]=_[_0x9133('0x2c')](db[_0x9133('0x46')]['rawAttributes']);_0x2898ae['query']=_[_0x9133('0x2c')](_0xc34745[_0x9133('0x2d')]);_0x2898ae[_0x9133('0x2e')]=_[_0x9133('0x2f')](_0x2898ae['model'],_0x2898ae[_0x9133('0x2d')]);_0xe1b188[_0x9133('0x30')]=_[_0x9133('0x2f')](_0x2898ae[_0x9133('0x2b')],qs['fields'](_0xc34745[_0x9133('0x2d')]['fields']));_0xe1b188['attributes']=_0xe1b188[_0x9133('0x30')][_0x9133('0x32')]?_0xe1b188['attributes']:_0x2898ae[_0x9133('0x2b')];_0xe1b188[_0x9133('0x34')]=qs[_0x9133('0x35')](_0xc34745[_0x9133('0x2d')][_0x9133('0x35')]);_0xe1b188[_0x9133('0x37')]=qs[_0x9133('0x2e')](_[_0x9133('0x36')](_0xc34745[_0x9133('0x2d')],_0x2898ae[_0x9133('0x2e')]));if(_0xc34745[_0x9133('0x2d')][_0x9133('0x3a')]){_0xe1b188[_0x9133('0x37')]=_['merge'](_0xe1b188[_0x9133('0x37')],{'$or':_[_0x9133('0x26')](_0xe1b188[_0x9133('0x30')],function(_0x5d5267){var _0x43e6d8={};_0x43e6d8[_0x5d5267]={'$like':'%'+_0xc34745['query'][_0x9133('0x3a')]+'%'};return _0x43e6d8;})});}_0xe1b188=_[_0x9133('0x38')]({},_0xe1b188,_0xc34745[_0x9133('0x3f')]);return _0x3d3e67[_0x9133('0x47')](_0xe1b188);}})[_0x9133('0x21')](function(_0x1ee863){if(_0x1ee863){_0x3df357=_0x1ee863[_0x9133('0x32')];if(!_0xc34745[_0x9133('0x2d')][_0x9133('0x48')](_0x9133('0x33'))){_0xe1b188[_0x9133('0x1a')]=qs[_0x9133('0x1a')](_0xc34745[_0x9133('0x2d')][_0x9133('0x1a')]);_0xe1b188[_0x9133('0x18')]=qs[_0x9133('0x18')](_0xc34745[_0x9133('0x2d')]['offset']);}return _0x3d3e67[_0x9133('0x47')](_0xe1b188);}})[_0x9133('0x21')](function(_0x30f9b7){if(_0x30f9b7){return _0x30f9b7?{'count':_0x3df357,'rows':_0x30f9b7}:null;}})[_0x9133('0x21')](respondWithResult(_0x1f1593,null))[_0x9133('0x41')](handleError(_0x1f1593,null));};exports[_0x9133('0x49')]=function(_0x341a93,_0x594e25,_0x3a1467){if(_0x341a93[_0x9133('0x44')]['id']){delete _0x341a93['body']['id'];}return db[_0x9133('0x27')]['findOne']({'where':{'id':_0x341a93['params']['id']}})[_0x9133('0x21')](handleEntityNotFound(_0x594e25,null))[_0x9133('0x21')](function(_0x57171e){if(_0x57171e){_0x341a93[_0x9133('0x44')]['AccountId']=_0x57171e['id'];_0x341a93['body']['Subjects']=integrations['getSubjects'](_0x341a93[_0x9133('0x44')][_0x9133('0x4a')],_0x341a93[_0x9133('0x44')][_0x9133('0x39')]);_0x341a93[_0x9133('0x44')]['Descriptions']=integrations[_0x9133('0x4b')](_0x341a93[_0x9133('0x44')]['channel'],_0x341a93[_0x9133('0x44')][_0x9133('0x39')]);return db[_0x9133('0x46')][_0x9133('0x42')](_0x341a93[_0x9133('0x44')],{'include':[{'model':db[_0x9133('0x4c')],'as':'Subjects'},{'model':db[_0x9133('0x4c')],'as':'Descriptions'}]});}return null;})[_0x9133('0x21')](respondWithResult(_0x594e25,null))[_0x9133('0x41')](handleError(_0x594e25,null));};exports[_0x9133('0x4d')]=function(_0xcd5d09,_0x32f39e,_0x3f9623){var _0x5835fb='';return db[_0x9133('0x27')]['findOne']({'where':{'id':_0xcd5d09[_0x9133('0x3e')]['id']},'attributes':['id',_0x9133('0x4e'),_0x9133('0x4f')]})[_0x9133('0x21')](handleEntityNotFound(_0x32f39e,null))['then'](function(_0x22252e){if(_0x22252e){_0x5835fb=_0x22252e[_0x9133('0x4e')];var _0x3755ec=_0x5835fb[_0x9133('0x50')](-0x1);if(_0x3755ec==='/'){_0x5835fb=_0x5835fb[_0x9133('0x51')](0x0,_0x5835fb[_0x9133('0x52')](_0x3755ec));}return rp({'method':_0x9133('0x53'),'uri':util[_0x9133('0x54')](_0x9133('0x55'),_0x5835fb,_0x9133('0x56')),'headers':{'Authorization':util[_0x9133('0x54')](_0x9133('0x57'),new Buffer(util[_0x9133('0x54')](_0x9133('0x58'),_0x22252e[_0x9133('0x4f')]))[_0x9133('0x59')](_0x9133('0x5a')))},'json':!![]});}})[_0x9133('0x21')](function(_0x3b54da){if(_0x3b54da){var _0x2fcd37=['requester','subject',_0x9133('0x5b'),_0x9133('0x5c'),_0x9133('0x15'),_0x9133('0x5d'),_0x9133('0x5e'),_0x9133('0x5f'),'ticket_type',_0x9133('0x5e'),_0x9133('0x60')];_['remove'](_0x3b54da,function(_0x4777d8){return _0x2fcd37[_0x9133('0x61')](_0x4777d8['name'])||!_0x4777d8[_0x9133('0x62')]&&_0x4777d8[_0x9133('0x39')]!==_0x9133('0x63')&&_0x4777d8[_0x9133('0x39')]!=='custom_dropdown';});return{'count':_0x3b54da[_0x9133('0x32')],'rows':_[_0x9133('0x26')](_0x3b54da,function(_0x4f1816){return{'id':_0x4f1816['name'],'name':_0x4f1816[_0x9133('0x64')],'custom':!_0x4f1816['default'],'options':_0x4f1816['choices']?_[_0x9133('0x26')](_0x4f1816[_0x9133('0x65')],function(_0x25356c){return{'name':_[_0x9133('0x66')](_0x25356c),'value':_0x25356c};}):[]};})};}})[_0x9133('0x21')](respondWithResult(_0x32f39e,null))[_0x9133('0x41')](function(_0x907dc0){var _0x53b50f=_0xcd5d09['query'][_0x9133('0x67')]?0x1f4:_0x907dc0['statusCode']||0x1f4;logger[_0x9133('0x23')](_0x9133('0x68'),_0x9133('0x4d'),_0x53b50f,JSON[_0x9133('0x69')](_0x907dc0));delete _0x907dc0[_0x9133('0x24')];if(_0x53b50f===0x191){_0x53b50f=0x190;}_0x32f39e[_0x9133('0x15')](_0x53b50f)['send'](_0xcd5d09[_0x9133('0x2d')][_0x9133('0x67')]?{'message':_0x9133('0x6a'),'statusCode':_0x907dc0[_0x9133('0x6b')]}:_0x907dc0);});};