Built motion from commit 896e83a8.|2.6.30
[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 _0xfbe2=['../../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','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','save','update','then','destroy','stack','name','index','map','FreshdeskAccount','rawAttributes','fieldName','type','key','query','filters','model','attributes','intersection','fields','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','keys','length','find','catch','create','body','getConfigurations','findOne','hasOwnProperty','addConfiguration','AccountId','getSubjects','Descriptions','channel','FreshdeskConfiguration','FreshdeskField','Subjects','remoteUri','slice','substring','lastIndexOf','GET','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','%s:X','requester','subject','agent','priority','group','source','ticket_type','company','includes','default','custom_text','custom_dropdown','label','choices','capitalize','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','send','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','ioredis'];(function(_0x2aec52,_0x59d962){var _0x3b8835=function(_0x3e2604){while(--_0x3e2604){_0x2aec52['push'](_0x2aec52['shift']());}};_0x3b8835(++_0x59d962);}(_0xfbe2,0x1da));var _0x2fbe=function(_0x1032bd,_0x263dcc){_0x1032bd=_0x1032bd-0x0;var _0x85db08=_0xfbe2[_0x1032bd];return _0x85db08;};'use strict';var emlformat=require(_0x2fbe('0x0'));var rimraf=require(_0x2fbe('0x1'));var zipdir=require(_0x2fbe('0x2'));var jsonpatch=require(_0x2fbe('0x3'));var rp=require('request-promise');var moment=require(_0x2fbe('0x4'));var BPromise=require(_0x2fbe('0x5'));var Mustache=require(_0x2fbe('0x6'));var util=require('util');var path=require(_0x2fbe('0x7'));var sox=require(_0x2fbe('0x8'));var csv=require(_0x2fbe('0x9'));var ejs=require(_0x2fbe('0xa'));var fs=require('fs');var fs_extra=require(_0x2fbe('0xb'));var _=require(_0x2fbe('0xc'));var squel=require(_0x2fbe('0xd'));var crypto=require(_0x2fbe('0xe'));var jsforce=require(_0x2fbe('0xf'));var deskjs=require(_0x2fbe('0x10'));var toCsv=require(_0x2fbe('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x2fbe('0x11'));var authService=require(_0x2fbe('0x12'));var qs=require(_0x2fbe('0x13'));var as=require(_0x2fbe('0x14'));var hardwareService=require(_0x2fbe('0x15'));var logger=require(_0x2fbe('0x16'))(_0x2fbe('0x17'));var utils=require(_0x2fbe('0x18'));var config=require(_0x2fbe('0x19'));var licenseUtil=require(_0x2fbe('0x1a'));var db=require(_0x2fbe('0x1b'))['db'];var integrations=require(_0x2fbe('0x1c'));function respondWithStatusCode(_0x421387,_0x12be84){_0x12be84=_0x12be84||0xcc;return function(_0x511986){if(_0x511986){return _0x421387[_0x2fbe('0x1d')](_0x12be84);}return _0x421387[_0x2fbe('0x1e')](_0x12be84)[_0x2fbe('0x1f')]();};}function respondWithResult(_0x2dcfbb,_0x19777a){_0x19777a=_0x19777a||0xc8;return function(_0x1cff2a){if(_0x1cff2a){return _0x2dcfbb['status'](_0x19777a)[_0x2fbe('0x20')](_0x1cff2a);}};}function respondWithFilteredResult(_0x312970,_0x556a98){return function(_0x19d8fd){if(_0x19d8fd){var _0x56aa7d=typeof _0x556a98['offset']===_0x2fbe('0x21')&&typeof _0x556a98[_0x2fbe('0x22')]===_0x2fbe('0x21');var _0x7a2f2b=_0x19d8fd[_0x2fbe('0x23')];var _0x1dc730=_0x56aa7d?0x0:_0x556a98[_0x2fbe('0x24')];var _0x3fefe7=_0x56aa7d?_0x19d8fd[_0x2fbe('0x23')]:_0x556a98[_0x2fbe('0x24')]+_0x556a98[_0x2fbe('0x22')];var _0x4eed5a;if(_0x3fefe7>=_0x7a2f2b){_0x3fefe7=_0x7a2f2b;_0x4eed5a=0xc8;}else{_0x4eed5a=0xce;}_0x312970[_0x2fbe('0x1e')](_0x4eed5a);return _0x312970[_0x2fbe('0x25')](_0x2fbe('0x26'),_0x1dc730+'-'+_0x3fefe7+'/'+_0x7a2f2b)['json'](_0x19d8fd);}return null;};}function patchUpdates(_0x4c8f8f){return function(_0x451f1a){try{jsonpatch[_0x2fbe('0x27')](_0x451f1a,_0x4c8f8f,!![]);}catch(_0x2efbb3){return BPromise['reject'](_0x2efbb3);}return _0x451f1a[_0x2fbe('0x28')]();};}function saveUpdates(_0x1e3462,_0x30e978){return function(_0x489b46){if(_0x489b46){return _0x489b46[_0x2fbe('0x29')](_0x1e3462)[_0x2fbe('0x2a')](function(_0x5c1315){return _0x5c1315;});}return null;};}function removeEntity(_0x41f262,_0x5ba00e){return function(_0x14755c){if(_0x14755c){return _0x14755c[_0x2fbe('0x2b')]()[_0x2fbe('0x2a')](function(){_0x41f262[_0x2fbe('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5e4255,_0x81e1fc){return function(_0x4590a2){if(!_0x4590a2){_0x5e4255[_0x2fbe('0x1d')](0x194);}return _0x4590a2;};}function handleError(_0x477e8c,_0x2a6bc8){_0x2a6bc8=_0x2a6bc8||0x1f4;return function(_0x5b52c0){logger['error'](_0x5b52c0[_0x2fbe('0x2c')]);if(_0x5b52c0[_0x2fbe('0x2d')]){delete _0x5b52c0[_0x2fbe('0x2d')];}_0x477e8c[_0x2fbe('0x1e')](_0x2a6bc8)['send'](_0x5b52c0);};}exports[_0x2fbe('0x2e')]=function(_0x5bf90c,_0x1fdf03){var _0x467760={},_0x37732d={},_0x1c9735={'count':0x0,'rows':[]};var _0x1d9376=_[_0x2fbe('0x2f')](db[_0x2fbe('0x30')][_0x2fbe('0x31')],function(_0xccf503){return{'name':_0xccf503[_0x2fbe('0x32')],'type':_0xccf503[_0x2fbe('0x33')][_0x2fbe('0x34')]};});_0x37732d['model']=_[_0x2fbe('0x2f')](_0x1d9376,_0x2fbe('0x2d'));_0x37732d[_0x2fbe('0x35')]=_['keys'](_0x5bf90c['query']);_0x37732d[_0x2fbe('0x36')]=_['intersection'](_0x37732d[_0x2fbe('0x37')],_0x37732d[_0x2fbe('0x35')]);_0x467760[_0x2fbe('0x38')]=_[_0x2fbe('0x39')](_0x37732d[_0x2fbe('0x37')],qs['fields'](_0x5bf90c[_0x2fbe('0x35')][_0x2fbe('0x3a')]));_0x467760['attributes']=_0x467760['attributes']['length']?_0x467760[_0x2fbe('0x38')]:_0x37732d[_0x2fbe('0x37')];if(!_0x5bf90c['query']['hasOwnProperty']('nolimit')){_0x467760['limit']=qs[_0x2fbe('0x22')](_0x5bf90c[_0x2fbe('0x35')][_0x2fbe('0x22')]);_0x467760[_0x2fbe('0x24')]=qs[_0x2fbe('0x24')](_0x5bf90c[_0x2fbe('0x35')][_0x2fbe('0x24')]);}_0x467760[_0x2fbe('0x3b')]=qs[_0x2fbe('0x3c')](_0x5bf90c['query'][_0x2fbe('0x3c')]);_0x467760[_0x2fbe('0x3d')]=qs[_0x2fbe('0x36')](_[_0x2fbe('0x3e')](_0x5bf90c[_0x2fbe('0x35')],_0x37732d[_0x2fbe('0x36')]),_0x1d9376);if(_0x5bf90c[_0x2fbe('0x35')][_0x2fbe('0x3f')]){_0x467760['where']=_[_0x2fbe('0x40')](_0x467760['where'],{'$or':_[_0x2fbe('0x2f')](_0x1d9376,function(_0x11bf78){if(_0x11bf78[_0x2fbe('0x33')]!==_0x2fbe('0x41')){var _0x5df9a2={};_0x5df9a2[_0x11bf78['name']]={'$like':'%'+_0x5bf90c[_0x2fbe('0x35')][_0x2fbe('0x3f')]+'%'};return _0x5df9a2;}})});}_0x467760=_[_0x2fbe('0x40')]({},_0x467760,_0x5bf90c[_0x2fbe('0x42')]);var _0x34bd86={'where':_0x467760[_0x2fbe('0x3d')]};return db[_0x2fbe('0x30')][_0x2fbe('0x23')](_0x34bd86)[_0x2fbe('0x2a')](function(_0x577b3f){_0x1c9735[_0x2fbe('0x23')]=_0x577b3f;if(_0x5bf90c[_0x2fbe('0x35')][_0x2fbe('0x43')]){_0x467760[_0x2fbe('0x44')]=[{'all':!![]}];}return db[_0x2fbe('0x30')][_0x2fbe('0x45')](_0x467760);})[_0x2fbe('0x2a')](function(_0x1b0bf0){_0x1c9735[_0x2fbe('0x46')]=_0x1b0bf0;return _0x1c9735;})[_0x2fbe('0x2a')](respondWithFilteredResult(_0x1fdf03,_0x467760))['catch'](handleError(_0x1fdf03,null));};exports[_0x2fbe('0x47')]=function(_0x3b4ffd,_0x1e4edd){var _0x414c0c={'raw':![],'where':{'id':_0x3b4ffd[_0x2fbe('0x48')]['id']}},_0x5b6f4a={};_0x5b6f4a[_0x2fbe('0x37')]=_[_0x2fbe('0x49')](db[_0x2fbe('0x30')][_0x2fbe('0x31')]);_0x5b6f4a['query']=_[_0x2fbe('0x49')](_0x3b4ffd[_0x2fbe('0x35')]);_0x5b6f4a[_0x2fbe('0x36')]=_[_0x2fbe('0x39')](_0x5b6f4a[_0x2fbe('0x37')],_0x5b6f4a[_0x2fbe('0x35')]);_0x414c0c[_0x2fbe('0x38')]=_[_0x2fbe('0x39')](_0x5b6f4a[_0x2fbe('0x37')],qs[_0x2fbe('0x3a')](_0x3b4ffd['query']['fields']));_0x414c0c['attributes']=_0x414c0c[_0x2fbe('0x38')][_0x2fbe('0x4a')]?_0x414c0c[_0x2fbe('0x38')]:_0x5b6f4a['model'];if(_0x3b4ffd['query']['includeAll']){_0x414c0c[_0x2fbe('0x44')]=[{'all':!![]}];}_0x414c0c=_[_0x2fbe('0x40')]({},_0x414c0c,_0x3b4ffd[_0x2fbe('0x42')]);return db[_0x2fbe('0x30')][_0x2fbe('0x4b')](_0x414c0c)[_0x2fbe('0x2a')](handleEntityNotFound(_0x1e4edd,null))[_0x2fbe('0x2a')](respondWithResult(_0x1e4edd,null))[_0x2fbe('0x4c')](handleError(_0x1e4edd,null));};exports['create']=function(_0x4597b0,_0xa6dceb){return db[_0x2fbe('0x30')][_0x2fbe('0x4d')](_0x4597b0['body'],{})[_0x2fbe('0x2a')](respondWithResult(_0xa6dceb,0xc9))[_0x2fbe('0x4c')](handleError(_0xa6dceb,null));};exports['update']=function(_0x4a213c,_0x2a3187){if(_0x4a213c['body']['id']){delete _0x4a213c[_0x2fbe('0x4e')]['id'];}return db[_0x2fbe('0x30')]['find']({'where':{'id':_0x4a213c['params']['id']}})[_0x2fbe('0x2a')](handleEntityNotFound(_0x2a3187,null))[_0x2fbe('0x2a')](saveUpdates(_0x4a213c[_0x2fbe('0x4e')],null))['then'](respondWithResult(_0x2a3187,null))['catch'](handleError(_0x2a3187,null));};exports[_0x2fbe('0x2b')]=function(_0x271a7f,_0x1dc755){return db[_0x2fbe('0x30')]['find']({'where':{'id':_0x271a7f[_0x2fbe('0x48')]['id']}})[_0x2fbe('0x2a')](handleEntityNotFound(_0x1dc755,null))['then'](removeEntity(_0x1dc755,null))[_0x2fbe('0x4c')](handleError(_0x1dc755,null));};exports[_0x2fbe('0x4f')]=function(_0x3f3151,_0x558ead,_0x3308f1){var _0x4fd22b={};var _0x4735a1={};var _0x17ce09;var _0x2bdfb0;return db[_0x2fbe('0x30')][_0x2fbe('0x50')]({'where':{'id':_0x3f3151[_0x2fbe('0x48')]['id']}})['then'](handleEntityNotFound(_0x558ead,null))[_0x2fbe('0x2a')](function(_0x5d5a5f){if(_0x5d5a5f){_0x17ce09=_0x5d5a5f;_0x4735a1[_0x2fbe('0x37')]=_[_0x2fbe('0x49')](db['FreshdeskConfiguration'][_0x2fbe('0x31')]);_0x4735a1[_0x2fbe('0x35')]=_['keys'](_0x3f3151['query']);_0x4735a1[_0x2fbe('0x36')]=_[_0x2fbe('0x39')](_0x4735a1[_0x2fbe('0x37')],_0x4735a1[_0x2fbe('0x35')]);_0x4fd22b[_0x2fbe('0x38')]=_[_0x2fbe('0x39')](_0x4735a1['model'],qs['fields'](_0x3f3151['query'][_0x2fbe('0x3a')]));_0x4fd22b[_0x2fbe('0x38')]=_0x4fd22b[_0x2fbe('0x38')][_0x2fbe('0x4a')]?_0x4fd22b[_0x2fbe('0x38')]:_0x4735a1[_0x2fbe('0x37')];_0x4fd22b[_0x2fbe('0x3b')]=qs[_0x2fbe('0x3c')](_0x3f3151[_0x2fbe('0x35')]['sort']);_0x4fd22b[_0x2fbe('0x3d')]=qs[_0x2fbe('0x36')](_[_0x2fbe('0x3e')](_0x3f3151[_0x2fbe('0x35')],_0x4735a1[_0x2fbe('0x36')]));if(_0x3f3151['query'][_0x2fbe('0x3f')]){_0x4fd22b['where']=_['merge'](_0x4fd22b[_0x2fbe('0x3d')],{'$or':_[_0x2fbe('0x2f')](_0x4fd22b[_0x2fbe('0x38')],function(_0x8a7a22){var _0x2df572={};_0x2df572[_0x8a7a22]={'$like':'%'+_0x3f3151[_0x2fbe('0x35')][_0x2fbe('0x3f')]+'%'};return _0x2df572;})});}_0x4fd22b=_[_0x2fbe('0x40')]({},_0x4fd22b,_0x3f3151[_0x2fbe('0x42')]);return _0x17ce09[_0x2fbe('0x4f')](_0x4fd22b);}})[_0x2fbe('0x2a')](function(_0x247c68){if(_0x247c68){_0x2bdfb0=_0x247c68[_0x2fbe('0x4a')];if(!_0x3f3151[_0x2fbe('0x35')][_0x2fbe('0x51')]('nolimit')){_0x4fd22b['limit']=qs[_0x2fbe('0x22')](_0x3f3151['query'][_0x2fbe('0x22')]);_0x4fd22b[_0x2fbe('0x24')]=qs['offset'](_0x3f3151[_0x2fbe('0x35')]['offset']);}return _0x17ce09[_0x2fbe('0x4f')](_0x4fd22b);}})[_0x2fbe('0x2a')](function(_0x415e76){if(_0x415e76){return _0x415e76?{'count':_0x2bdfb0,'rows':_0x415e76}:null;}})[_0x2fbe('0x2a')](respondWithResult(_0x558ead,null))[_0x2fbe('0x4c')](handleError(_0x558ead,null));};exports[_0x2fbe('0x52')]=function(_0x4b12be,_0x559682,_0x23d8c7){if(_0x4b12be[_0x2fbe('0x4e')]['id']){delete _0x4b12be[_0x2fbe('0x4e')]['id'];}return db[_0x2fbe('0x30')][_0x2fbe('0x50')]({'where':{'id':_0x4b12be[_0x2fbe('0x48')]['id']}})['then'](handleEntityNotFound(_0x559682,null))[_0x2fbe('0x2a')](function(_0x451626){if(_0x451626){_0x4b12be[_0x2fbe('0x4e')][_0x2fbe('0x53')]=_0x451626['id'];_0x4b12be['body']['Subjects']=integrations[_0x2fbe('0x54')](_0x4b12be['body']['channel'],_0x4b12be[_0x2fbe('0x4e')]['type']);_0x4b12be[_0x2fbe('0x4e')][_0x2fbe('0x55')]=integrations['getDescriptions'](_0x4b12be[_0x2fbe('0x4e')][_0x2fbe('0x56')],_0x4b12be[_0x2fbe('0x4e')][_0x2fbe('0x33')]);return db[_0x2fbe('0x57')][_0x2fbe('0x4d')](_0x4b12be[_0x2fbe('0x4e')],{'include':[{'model':db[_0x2fbe('0x58')],'as':_0x2fbe('0x59')},{'model':db[_0x2fbe('0x58')],'as':_0x2fbe('0x55')}]});}return null;})[_0x2fbe('0x2a')](respondWithResult(_0x559682,null))['catch'](handleError(_0x559682,null));};exports['getFields']=function(_0x48f2cc,_0x241796,_0x30c763){var _0x33cfe1='';return db['FreshdeskAccount'][_0x2fbe('0x50')]({'where':{'id':_0x48f2cc[_0x2fbe('0x48')]['id']},'attributes':['id',_0x2fbe('0x5a'),'apiKey']})[_0x2fbe('0x2a')](handleEntityNotFound(_0x241796,null))[_0x2fbe('0x2a')](function(_0x37b02f){if(_0x37b02f){_0x33cfe1=_0x37b02f[_0x2fbe('0x5a')];var _0x3c5a8b=_0x33cfe1[_0x2fbe('0x5b')](-0x1);if(_0x3c5a8b==='/'){_0x33cfe1=_0x33cfe1[_0x2fbe('0x5c')](0x0,_0x33cfe1[_0x2fbe('0x5d')](_0x3c5a8b));}return rp({'method':_0x2fbe('0x5e'),'uri':util[_0x2fbe('0x5f')](_0x2fbe('0x60'),_0x33cfe1,_0x2fbe('0x61')),'headers':{'Authorization':util[_0x2fbe('0x5f')](_0x2fbe('0x62'),new Buffer(util[_0x2fbe('0x5f')](_0x2fbe('0x63'),_0x37b02f['apiKey']))['toString']('base64'))},'json':!![]});}})['then'](function(_0x24d7ae){if(_0x24d7ae){var _0x2fbc02=[_0x2fbe('0x64'),_0x2fbe('0x65'),_0x2fbe('0x66'),'description',_0x2fbe('0x1e'),_0x2fbe('0x67'),_0x2fbe('0x68'),_0x2fbe('0x69'),_0x2fbe('0x6a'),_0x2fbe('0x68'),_0x2fbe('0x6b')];_['remove'](_0x24d7ae,function(_0x27634b){return _0x2fbc02[_0x2fbe('0x6c')](_0x27634b['name'])||!_0x27634b[_0x2fbe('0x6d')]&&_0x27634b['type']!==_0x2fbe('0x6e')&&_0x27634b[_0x2fbe('0x33')]!==_0x2fbe('0x6f');});return{'count':_0x24d7ae[_0x2fbe('0x4a')],'rows':_[_0x2fbe('0x2f')](_0x24d7ae,function(_0x3c72f2){return{'id':_0x3c72f2['name'],'name':_0x3c72f2[_0x2fbe('0x70')],'custom':!_0x3c72f2[_0x2fbe('0x6d')],'options':_0x3c72f2[_0x2fbe('0x71')]?_['map'](_0x3c72f2[_0x2fbe('0x71')],function(_0x2be9c4){return{'name':_[_0x2fbe('0x72')](_0x2be9c4),'value':_0x2be9c4};}):[]};})};}})[_0x2fbe('0x2a')](respondWithResult(_0x241796,null))[_0x2fbe('0x4c')](function(_0x4323f6){var _0x1ceddb=_0x48f2cc[_0x2fbe('0x35')]['test']?0x1f4:_0x4323f6[_0x2fbe('0x73')]||0x1f4;logger[_0x2fbe('0x74')](_0x2fbe('0x75'),_0x2fbe('0x76'),_0x1ceddb,JSON[_0x2fbe('0x77')](_0x4323f6));delete _0x4323f6[_0x2fbe('0x2d')];if(_0x1ceddb===0x191){_0x1ceddb=0x190;}_0x241796['status'](_0x1ceddb)[_0x2fbe('0x78')](_0x48f2cc[_0x2fbe('0x35')][_0x2fbe('0x79')]?{'message':_0x2fbe('0x7a'),'statusCode':_0x4323f6['statusCode']}:_0x4323f6);});};