Built motion from commit 44b1f254.|2.6.26
[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 _0x1cc3=['pick','hasOwnProperty','addConfiguration','findOne','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','FreshdeskField','remoteUri','apiKey','slice','substring','lastIndexOf','GET','format','api/v2/ticket_fields','Basic\x20%s','%s:X','toString','base64','requester','subject','agent','description','priority','group','source','remove','includes','default','custom_text','custom_dropdown','choices','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','destroy','error','stack','name','send','index','FreshdeskAccount','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','nolimit','order','sort','where','filters','filter','merge','options','then','includeAll','include','findAll','rows','show','params','catch','create','body','find','getConfigurations','FreshdeskConfiguration','length'];(function(_0x8cb2f9,_0x2b8706){var _0x164887=function(_0x1812cc){while(--_0x1812cc){_0x8cb2f9['push'](_0x8cb2f9['shift']());}};_0x164887(++_0x2b8706);}(_0x1cc3,0x11b));var _0x31cc=function(_0x27af45,_0x1b57aa){_0x27af45=_0x27af45-0x0;var _0x18df21=_0x1cc3[_0x27af45];return _0x18df21;};'use strict';var emlformat=require(_0x31cc('0x0'));var rimraf=require(_0x31cc('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x31cc('0x2'));var rp=require('request-promise');var moment=require(_0x31cc('0x3'));var BPromise=require(_0x31cc('0x4'));var Mustache=require(_0x31cc('0x5'));var util=require('util');var path=require(_0x31cc('0x6'));var sox=require(_0x31cc('0x7'));var csv=require(_0x31cc('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x31cc('0x9'));var _=require(_0x31cc('0xa'));var squel=require(_0x31cc('0xb'));var crypto=require(_0x31cc('0xc'));var jsforce=require(_0x31cc('0xd'));var deskjs=require(_0x31cc('0xe'));var toCsv=require(_0x31cc('0x8'));var querystring=require(_0x31cc('0xf'));var Papa=require(_0x31cc('0x10'));var Redis=require('ioredis');var authService=require(_0x31cc('0x11'));var qs=require(_0x31cc('0x12'));var as=require(_0x31cc('0x13'));var hardwareService=require(_0x31cc('0x14'));var logger=require(_0x31cc('0x15'))(_0x31cc('0x16'));var utils=require(_0x31cc('0x17'));var config=require(_0x31cc('0x18'));var licenseUtil=require(_0x31cc('0x19'));var db=require(_0x31cc('0x1a'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x11ce41,_0x1b939e){_0x1b939e=_0x1b939e||0xcc;return function(_0x4a26dc){if(_0x4a26dc){return _0x11ce41[_0x31cc('0x1b')](_0x1b939e);}return _0x11ce41[_0x31cc('0x1c')](_0x1b939e)[_0x31cc('0x1d')]();};}function respondWithResult(_0x34b164,_0x10738a){_0x10738a=_0x10738a||0xc8;return function(_0x118bb0){if(_0x118bb0){return _0x34b164[_0x31cc('0x1c')](_0x10738a)[_0x31cc('0x1e')](_0x118bb0);}};}function respondWithFilteredResult(_0x1227ad,_0xc22d83){return function(_0x171917){if(_0x171917){var _0x5b970e=typeof _0xc22d83[_0x31cc('0x1f')]===_0x31cc('0x20')&&typeof _0xc22d83[_0x31cc('0x21')]==='undefined';var _0x2908cd=_0x171917[_0x31cc('0x22')];var _0x56f18e=_0x5b970e?0x0:_0xc22d83[_0x31cc('0x1f')];var _0x3a9a53=_0x5b970e?_0x171917[_0x31cc('0x22')]:_0xc22d83[_0x31cc('0x1f')]+_0xc22d83[_0x31cc('0x21')];var _0x4a5d34;if(_0x3a9a53>=_0x2908cd){_0x3a9a53=_0x2908cd;_0x4a5d34=0xc8;}else{_0x4a5d34=0xce;}_0x1227ad[_0x31cc('0x1c')](_0x4a5d34);return _0x1227ad[_0x31cc('0x23')](_0x31cc('0x24'),_0x56f18e+'-'+_0x3a9a53+'/'+_0x2908cd)[_0x31cc('0x1e')](_0x171917);}return null;};}function patchUpdates(_0x1e3039){return function(_0x3c0db5){try{jsonpatch[_0x31cc('0x25')](_0x3c0db5,_0x1e3039,!![]);}catch(_0x43c769){return BPromise['reject'](_0x43c769);}return _0x3c0db5[_0x31cc('0x26')]();};}function saveUpdates(_0x34dccf,_0xbe2be8){return function(_0x5c2248){if(_0x5c2248){return _0x5c2248[_0x31cc('0x27')](_0x34dccf)['then'](function(_0x408c4d){return _0x408c4d;});}return null;};}function removeEntity(_0x5c86da,_0x39dd8e){return function(_0x4ebeb7){if(_0x4ebeb7){return _0x4ebeb7[_0x31cc('0x28')]()['then'](function(){_0x5c86da[_0x31cc('0x1c')](0xcc)[_0x31cc('0x1d')]();});}};}function handleEntityNotFound(_0x482e67,_0x1c48ef){return function(_0x57862d){if(!_0x57862d){_0x482e67[_0x31cc('0x1b')](0x194);}return _0x57862d;};}function handleError(_0x4da7ee,_0x2edaff){_0x2edaff=_0x2edaff||0x1f4;return function(_0x5a51ff){logger[_0x31cc('0x29')](_0x5a51ff[_0x31cc('0x2a')]);if(_0x5a51ff[_0x31cc('0x2b')]){delete _0x5a51ff[_0x31cc('0x2b')];}_0x4da7ee[_0x31cc('0x1c')](_0x2edaff)[_0x31cc('0x2c')](_0x5a51ff);};}exports[_0x31cc('0x2d')]=function(_0x485a64,_0x56d618){var _0x1c21ea={},_0x3ea677={},_0x1c897e={'count':0x0,'rows':[]};var _0xca940f=_['map'](db[_0x31cc('0x2e')][_0x31cc('0x2f')],function(_0xd8108d){return{'name':_0xd8108d[_0x31cc('0x30')],'type':_0xd8108d[_0x31cc('0x31')][_0x31cc('0x32')]};});_0x3ea677[_0x31cc('0x33')]=_[_0x31cc('0x34')](_0xca940f,_0x31cc('0x2b'));_0x3ea677[_0x31cc('0x35')]=_[_0x31cc('0x36')](_0x485a64[_0x31cc('0x35')]);_0x3ea677['filters']=_[_0x31cc('0x37')](_0x3ea677[_0x31cc('0x33')],_0x3ea677['query']);_0x1c21ea[_0x31cc('0x38')]=_[_0x31cc('0x37')](_0x3ea677[_0x31cc('0x33')],qs['fields'](_0x485a64[_0x31cc('0x35')][_0x31cc('0x39')]));_0x1c21ea[_0x31cc('0x38')]=_0x1c21ea[_0x31cc('0x38')]['length']?_0x1c21ea[_0x31cc('0x38')]:_0x3ea677[_0x31cc('0x33')];if(!_0x485a64['query']['hasOwnProperty'](_0x31cc('0x3a'))){_0x1c21ea[_0x31cc('0x21')]=qs[_0x31cc('0x21')](_0x485a64['query']['limit']);_0x1c21ea[_0x31cc('0x1f')]=qs[_0x31cc('0x1f')](_0x485a64[_0x31cc('0x35')]['offset']);}_0x1c21ea[_0x31cc('0x3b')]=qs[_0x31cc('0x3c')](_0x485a64[_0x31cc('0x35')][_0x31cc('0x3c')]);_0x1c21ea[_0x31cc('0x3d')]=qs['filters'](_['pick'](_0x485a64[_0x31cc('0x35')],_0x3ea677[_0x31cc('0x3e')]),_0xca940f);if(_0x485a64[_0x31cc('0x35')][_0x31cc('0x3f')]){_0x1c21ea[_0x31cc('0x3d')]=_[_0x31cc('0x40')](_0x1c21ea[_0x31cc('0x3d')],{'$or':_[_0x31cc('0x34')](_0xca940f,function(_0x3e3202){if(_0x3e3202[_0x31cc('0x31')]!=='VIRTUAL'){var _0x1d3e42={};_0x1d3e42[_0x3e3202['name']]={'$like':'%'+_0x485a64['query'][_0x31cc('0x3f')]+'%'};return _0x1d3e42;}})});}_0x1c21ea=_[_0x31cc('0x40')]({},_0x1c21ea,_0x485a64[_0x31cc('0x41')]);var _0x233c00={'where':_0x1c21ea[_0x31cc('0x3d')]};return db['FreshdeskAccount']['count'](_0x233c00)[_0x31cc('0x42')](function(_0x378d35){_0x1c897e[_0x31cc('0x22')]=_0x378d35;if(_0x485a64[_0x31cc('0x35')][_0x31cc('0x43')]){_0x1c21ea[_0x31cc('0x44')]=[{'all':!![]}];}return db[_0x31cc('0x2e')][_0x31cc('0x45')](_0x1c21ea);})[_0x31cc('0x42')](function(_0x3cdcdf){_0x1c897e[_0x31cc('0x46')]=_0x3cdcdf;return _0x1c897e;})[_0x31cc('0x42')](respondWithFilteredResult(_0x56d618,_0x1c21ea))['catch'](handleError(_0x56d618,null));};exports[_0x31cc('0x47')]=function(_0x337756,_0x4ec973){var _0x2ef3c8={'raw':![],'where':{'id':_0x337756[_0x31cc('0x48')]['id']}},_0x4cd149={};_0x4cd149[_0x31cc('0x33')]=_[_0x31cc('0x36')](db[_0x31cc('0x2e')][_0x31cc('0x2f')]);_0x4cd149[_0x31cc('0x35')]=_[_0x31cc('0x36')](_0x337756[_0x31cc('0x35')]);_0x4cd149[_0x31cc('0x3e')]=_['intersection'](_0x4cd149[_0x31cc('0x33')],_0x4cd149[_0x31cc('0x35')]);_0x2ef3c8['attributes']=_[_0x31cc('0x37')](_0x4cd149[_0x31cc('0x33')],qs[_0x31cc('0x39')](_0x337756['query'][_0x31cc('0x39')]));_0x2ef3c8['attributes']=_0x2ef3c8['attributes']['length']?_0x2ef3c8[_0x31cc('0x38')]:_0x4cd149[_0x31cc('0x33')];if(_0x337756[_0x31cc('0x35')][_0x31cc('0x43')]){_0x2ef3c8[_0x31cc('0x44')]=[{'all':!![]}];}_0x2ef3c8=_[_0x31cc('0x40')]({},_0x2ef3c8,_0x337756[_0x31cc('0x41')]);return db[_0x31cc('0x2e')]['find'](_0x2ef3c8)[_0x31cc('0x42')](handleEntityNotFound(_0x4ec973,null))['then'](respondWithResult(_0x4ec973,null))[_0x31cc('0x49')](handleError(_0x4ec973,null));};exports[_0x31cc('0x4a')]=function(_0x3bf96d,_0x2e16f2){return db['FreshdeskAccount'][_0x31cc('0x4a')](_0x3bf96d[_0x31cc('0x4b')],{})[_0x31cc('0x42')](respondWithResult(_0x2e16f2,0xc9))[_0x31cc('0x49')](handleError(_0x2e16f2,null));};exports['update']=function(_0x23aff5,_0x4a6eab){if(_0x23aff5[_0x31cc('0x4b')]['id']){delete _0x23aff5[_0x31cc('0x4b')]['id'];}return db[_0x31cc('0x2e')][_0x31cc('0x4c')]({'where':{'id':_0x23aff5[_0x31cc('0x48')]['id']}})['then'](handleEntityNotFound(_0x4a6eab,null))[_0x31cc('0x42')](saveUpdates(_0x23aff5[_0x31cc('0x4b')],null))[_0x31cc('0x42')](respondWithResult(_0x4a6eab,null))[_0x31cc('0x49')](handleError(_0x4a6eab,null));};exports[_0x31cc('0x28')]=function(_0x3eb77b,_0x438a0b){return db[_0x31cc('0x2e')]['find']({'where':{'id':_0x3eb77b[_0x31cc('0x48')]['id']}})[_0x31cc('0x42')](handleEntityNotFound(_0x438a0b,null))['then'](removeEntity(_0x438a0b,null))[_0x31cc('0x49')](handleError(_0x438a0b,null));};exports[_0x31cc('0x4d')]=function(_0x2117e7,_0xd47299,_0x136b9a){var _0x5a3418={};var _0x19835b={};var _0x20cbe4;var _0x5ed0cd;return db['FreshdeskAccount']['findOne']({'where':{'id':_0x2117e7[_0x31cc('0x48')]['id']}})['then'](handleEntityNotFound(_0xd47299,null))[_0x31cc('0x42')](function(_0x6ccb1){if(_0x6ccb1){_0x20cbe4=_0x6ccb1;_0x19835b['model']=_[_0x31cc('0x36')](db[_0x31cc('0x4e')]['rawAttributes']);_0x19835b[_0x31cc('0x35')]=_[_0x31cc('0x36')](_0x2117e7[_0x31cc('0x35')]);_0x19835b[_0x31cc('0x3e')]=_[_0x31cc('0x37')](_0x19835b[_0x31cc('0x33')],_0x19835b[_0x31cc('0x35')]);_0x5a3418[_0x31cc('0x38')]=_[_0x31cc('0x37')](_0x19835b[_0x31cc('0x33')],qs[_0x31cc('0x39')](_0x2117e7[_0x31cc('0x35')][_0x31cc('0x39')]));_0x5a3418['attributes']=_0x5a3418[_0x31cc('0x38')][_0x31cc('0x4f')]?_0x5a3418['attributes']:_0x19835b[_0x31cc('0x33')];_0x5a3418[_0x31cc('0x3b')]=qs[_0x31cc('0x3c')](_0x2117e7[_0x31cc('0x35')][_0x31cc('0x3c')]);_0x5a3418[_0x31cc('0x3d')]=qs[_0x31cc('0x3e')](_[_0x31cc('0x50')](_0x2117e7[_0x31cc('0x35')],_0x19835b['filters']));if(_0x2117e7[_0x31cc('0x35')][_0x31cc('0x3f')]){_0x5a3418[_0x31cc('0x3d')]=_[_0x31cc('0x40')](_0x5a3418[_0x31cc('0x3d')],{'$or':_[_0x31cc('0x34')](_0x5a3418[_0x31cc('0x38')],function(_0x36df68){var _0x14c68c={};_0x14c68c[_0x36df68]={'$like':'%'+_0x2117e7['query']['filter']+'%'};return _0x14c68c;})});}_0x5a3418=_[_0x31cc('0x40')]({},_0x5a3418,_0x2117e7[_0x31cc('0x41')]);return _0x20cbe4['getConfigurations'](_0x5a3418);}})[_0x31cc('0x42')](function(_0x265493){if(_0x265493){_0x5ed0cd=_0x265493[_0x31cc('0x4f')];if(!_0x2117e7['query'][_0x31cc('0x51')](_0x31cc('0x3a'))){_0x5a3418[_0x31cc('0x21')]=qs['limit'](_0x2117e7[_0x31cc('0x35')][_0x31cc('0x21')]);_0x5a3418['offset']=qs['offset'](_0x2117e7[_0x31cc('0x35')][_0x31cc('0x1f')]);}return _0x20cbe4[_0x31cc('0x4d')](_0x5a3418);}})[_0x31cc('0x42')](function(_0x196f51){if(_0x196f51){return _0x196f51?{'count':_0x5ed0cd,'rows':_0x196f51}:null;}})[_0x31cc('0x42')](respondWithResult(_0xd47299,null))['catch'](handleError(_0xd47299,null));};exports[_0x31cc('0x52')]=function(_0x6114e8,_0x36a055,_0xe22a0d){if(_0x6114e8[_0x31cc('0x4b')]['id']){delete _0x6114e8[_0x31cc('0x4b')]['id'];}return db['FreshdeskAccount'][_0x31cc('0x53')]({'where':{'id':_0x6114e8[_0x31cc('0x48')]['id']}})[_0x31cc('0x42')](handleEntityNotFound(_0x36a055,null))['then'](function(_0x200a4f){if(_0x200a4f){_0x6114e8[_0x31cc('0x4b')][_0x31cc('0x54')]=_0x200a4f['id'];_0x6114e8['body'][_0x31cc('0x55')]=integrations[_0x31cc('0x56')](_0x6114e8[_0x31cc('0x4b')]['channel'],_0x6114e8[_0x31cc('0x4b')][_0x31cc('0x31')]);_0x6114e8[_0x31cc('0x4b')][_0x31cc('0x57')]=integrations[_0x31cc('0x58')](_0x6114e8['body'][_0x31cc('0x59')],_0x6114e8['body'][_0x31cc('0x31')]);return db['FreshdeskConfiguration'][_0x31cc('0x4a')](_0x6114e8[_0x31cc('0x4b')],{'include':[{'model':db[_0x31cc('0x5a')],'as':_0x31cc('0x55')},{'model':db[_0x31cc('0x5a')],'as':_0x31cc('0x57')}]});}return null;})[_0x31cc('0x42')](respondWithResult(_0x36a055,null))['catch'](handleError(_0x36a055,null));};exports['getFields']=function(_0x7b6d6f,_0x2bf513,_0x128c33){var _0x204a34='';return db[_0x31cc('0x2e')]['findOne']({'where':{'id':_0x7b6d6f[_0x31cc('0x48')]['id']},'attributes':['id',_0x31cc('0x5b'),_0x31cc('0x5c')]})[_0x31cc('0x42')](handleEntityNotFound(_0x2bf513,null))['then'](function(_0x5c0e0c){if(_0x5c0e0c){_0x204a34=_0x5c0e0c[_0x31cc('0x5b')];var _0x22acbe=_0x204a34[_0x31cc('0x5d')](-0x1);if(_0x22acbe==='/'){_0x204a34=_0x204a34[_0x31cc('0x5e')](0x0,_0x204a34[_0x31cc('0x5f')](_0x22acbe));}return rp({'method':_0x31cc('0x60'),'uri':util[_0x31cc('0x61')]('%s/%s',_0x204a34,_0x31cc('0x62')),'headers':{'Authorization':util[_0x31cc('0x61')](_0x31cc('0x63'),new Buffer(util[_0x31cc('0x61')](_0x31cc('0x64'),_0x5c0e0c['apiKey']))[_0x31cc('0x65')](_0x31cc('0x66')))},'json':!![]});}})[_0x31cc('0x42')](function(_0x22f064){if(_0x22f064){var _0x1bea57=[_0x31cc('0x67'),_0x31cc('0x68'),_0x31cc('0x69'),_0x31cc('0x6a'),_0x31cc('0x1c'),_0x31cc('0x6b'),_0x31cc('0x6c'),_0x31cc('0x6d'),'ticket_type',_0x31cc('0x6c'),'company'];_[_0x31cc('0x6e')](_0x22f064,function(_0x39b3ae){return _0x1bea57[_0x31cc('0x6f')](_0x39b3ae[_0x31cc('0x2b')])||!_0x39b3ae[_0x31cc('0x70')]&&_0x39b3ae['type']!==_0x31cc('0x71')&&_0x39b3ae[_0x31cc('0x31')]!==_0x31cc('0x72');});return{'count':_0x22f064[_0x31cc('0x4f')],'rows':_['map'](_0x22f064,function(_0xec392){return{'id':_0xec392[_0x31cc('0x2b')],'name':_0xec392['label'],'custom':!_0xec392[_0x31cc('0x70')],'options':_0xec392[_0x31cc('0x73')]?_[_0x31cc('0x34')](_0xec392[_0x31cc('0x73')],function(_0xed1228){return{'name':_['capitalize'](_0xed1228),'value':_0xed1228};}):[]};})};}})['then'](respondWithResult(_0x2bf513,null))[_0x31cc('0x49')](function(_0x5b9f3e){var _0x15f60e=_0x7b6d6f[_0x31cc('0x35')][_0x31cc('0x74')]?0x1f4:_0x5b9f3e[_0x31cc('0x75')]||0x1f4;logger[_0x31cc('0x29')](_0x31cc('0x76'),'getFields',_0x15f60e,JSON[_0x31cc('0x77')](_0x5b9f3e));delete _0x5b9f3e[_0x31cc('0x2b')];if(_0x15f60e===0x191){_0x15f60e=0x190;}_0x2bf513[_0x31cc('0x1c')](_0x15f60e)['send'](_0x7b6d6f[_0x31cc('0x35')][_0x31cc('0x74')]?{'message':_0x31cc('0x78'),'statusCode':_0x5b9f3e['statusCode']}:_0x5b9f3e);});};