615ed8175f08b2b5415fea54c2d8d696615867cf
[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 _0x115a=['FreshdeskConfiguration','FreshdeskField','getFields','apiKey','slice','substring','lastIndexOf','GET','format','api/v2/ticket_fields','%s:X','toString','requester','subject','agent','description','group','source','ticket_type','remove','custom_text','custom_dropdown','label','default','choices','capitalize','test','statusCode','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','map','FreshdeskAccount','fieldName','key','model','query','filters','intersection','fields','attributes','length','nolimit','order','sort','pick','filter','where','merge','type','VIRTUAL','options','include','catch','show','params','keys','find','create','body','findOne','rawAttributes','getConfigurations','hasOwnProperty','Subjects','getSubjects','channel','Descriptions','getDescriptions'];(function(_0xd89388,_0x33c473){var _0x4157a3=function(_0x2ee4c9){while(--_0x2ee4c9){_0xd89388['push'](_0xd89388['shift']());}};_0x4157a3(++_0x33c473);}(_0x115a,0x91));var _0xa115=function(_0x56674b,_0x37f87c){_0x56674b=_0x56674b-0x0;var _0x4f1d82=_0x115a[_0x56674b];return _0x4f1d82;};'use strict';var emlformat=require(_0xa115('0x0'));var rimraf=require(_0xa115('0x1'));var zipdir=require(_0xa115('0x2'));var jsonpatch=require(_0xa115('0x3'));var rp=require(_0xa115('0x4'));var moment=require('moment');var BPromise=require(_0xa115('0x5'));var Mustache=require('mustache');var util=require(_0xa115('0x6'));var path=require(_0xa115('0x7'));var sox=require(_0xa115('0x8'));var csv=require(_0xa115('0x9'));var ejs=require(_0xa115('0xa'));var fs=require('fs');var fs_extra=require(_0xa115('0xb'));var _=require('lodash');var squel=require(_0xa115('0xc'));var crypto=require(_0xa115('0xd'));var jsforce=require(_0xa115('0xe'));var deskjs=require(_0xa115('0xf'));var toCsv=require(_0xa115('0x9'));var querystring=require(_0xa115('0x10'));var Papa=require(_0xa115('0x11'));var Redis=require(_0xa115('0x12'));var authService=require(_0xa115('0x13'));var qs=require(_0xa115('0x14'));var as=require(_0xa115('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa115('0x16'))(_0xa115('0x17'));var utils=require(_0xa115('0x18'));var config=require(_0xa115('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xa115('0x1a'))['db'];var integrations=require(_0xa115('0x1b'));function respondWithStatusCode(_0x207857,_0x279a25){_0x279a25=_0x279a25||0xcc;return function(_0xf71f3e){if(_0xf71f3e){return _0x207857[_0xa115('0x1c')](_0x279a25);}return _0x207857[_0xa115('0x1d')](_0x279a25)['end']();};}function respondWithResult(_0x6c7c05,_0x427cd9){_0x427cd9=_0x427cd9||0xc8;return function(_0x24bfdc){if(_0x24bfdc){return _0x6c7c05[_0xa115('0x1d')](_0x427cd9)[_0xa115('0x1e')](_0x24bfdc);}};}function respondWithFilteredResult(_0x2c74bf,_0x54b14f){return function(_0x325427){if(_0x325427){var _0x1954f1=typeof _0x54b14f[_0xa115('0x1f')]===_0xa115('0x20')&&typeof _0x54b14f[_0xa115('0x21')]===_0xa115('0x20');var _0x47ccf7=_0x325427[_0xa115('0x22')];var _0x43e78e=_0x1954f1?0x0:_0x54b14f[_0xa115('0x1f')];var _0x57975a=_0x1954f1?_0x325427['count']:_0x54b14f[_0xa115('0x1f')]+_0x54b14f[_0xa115('0x21')];var _0x4f25c6;if(_0x57975a>=_0x47ccf7){_0x57975a=_0x47ccf7;_0x4f25c6=0xc8;}else{_0x4f25c6=0xce;}_0x2c74bf[_0xa115('0x1d')](_0x4f25c6);return _0x2c74bf[_0xa115('0x23')](_0xa115('0x24'),_0x43e78e+'-'+_0x57975a+'/'+_0x47ccf7)[_0xa115('0x1e')](_0x325427);}return null;};}function patchUpdates(_0x271ddc){return function(_0x39f749){try{jsonpatch[_0xa115('0x25')](_0x39f749,_0x271ddc,!![]);}catch(_0x454c31){return BPromise[_0xa115('0x26')](_0x454c31);}return _0x39f749[_0xa115('0x27')]();};}function saveUpdates(_0x5eaa89,_0x910813){return function(_0x3f8b52){if(_0x3f8b52){return _0x3f8b52[_0xa115('0x28')](_0x5eaa89)[_0xa115('0x29')](function(_0x21db37){return _0x21db37;});}return null;};}function removeEntity(_0x102daf,_0x31950a){return function(_0x28a168){if(_0x28a168){return _0x28a168[_0xa115('0x2a')]()['then'](function(){_0x102daf['status'](0xcc)[_0xa115('0x2b')]();});}};}function handleEntityNotFound(_0x5a3c5b,_0x1b1aba){return function(_0x42ff51){if(!_0x42ff51){_0x5a3c5b[_0xa115('0x1c')](0x194);}return _0x42ff51;};}function handleError(_0x43f164,_0x2667b3){_0x2667b3=_0x2667b3||0x1f4;return function(_0x4cac96){logger[_0xa115('0x2c')](_0x4cac96[_0xa115('0x2d')]);if(_0x4cac96[_0xa115('0x2e')]){delete _0x4cac96['name'];}_0x43f164[_0xa115('0x1d')](_0x2667b3)['send'](_0x4cac96);};}exports['index']=function(_0x2fe6d6,_0x37952c){var _0x3ea09e={},_0x47e36d={},_0x53c6f7={'count':0x0,'rows':[]};var _0x4ede14=_[_0xa115('0x2f')](db[_0xa115('0x30')]['rawAttributes'],function(_0x4c486d){return{'name':_0x4c486d[_0xa115('0x31')],'type':_0x4c486d['type'][_0xa115('0x32')]};});_0x47e36d[_0xa115('0x33')]=_[_0xa115('0x2f')](_0x4ede14,_0xa115('0x2e'));_0x47e36d[_0xa115('0x34')]=_['keys'](_0x2fe6d6[_0xa115('0x34')]);_0x47e36d[_0xa115('0x35')]=_[_0xa115('0x36')](_0x47e36d[_0xa115('0x33')],_0x47e36d['query']);_0x3ea09e['attributes']=_[_0xa115('0x36')](_0x47e36d[_0xa115('0x33')],qs[_0xa115('0x37')](_0x2fe6d6['query'][_0xa115('0x37')]));_0x3ea09e[_0xa115('0x38')]=_0x3ea09e[_0xa115('0x38')][_0xa115('0x39')]?_0x3ea09e[_0xa115('0x38')]:_0x47e36d[_0xa115('0x33')];if(!_0x2fe6d6['query']['hasOwnProperty'](_0xa115('0x3a'))){_0x3ea09e[_0xa115('0x21')]=qs[_0xa115('0x21')](_0x2fe6d6[_0xa115('0x34')][_0xa115('0x21')]);_0x3ea09e['offset']=qs['offset'](_0x2fe6d6['query'][_0xa115('0x1f')]);}_0x3ea09e[_0xa115('0x3b')]=qs[_0xa115('0x3c')](_0x2fe6d6[_0xa115('0x34')][_0xa115('0x3c')]);_0x3ea09e['where']=qs[_0xa115('0x35')](_[_0xa115('0x3d')](_0x2fe6d6['query'],_0x47e36d[_0xa115('0x35')]),_0x4ede14);if(_0x2fe6d6[_0xa115('0x34')][_0xa115('0x3e')]){_0x3ea09e[_0xa115('0x3f')]=_[_0xa115('0x40')](_0x3ea09e['where'],{'$or':_[_0xa115('0x2f')](_0x4ede14,function(_0x2c5abb){if(_0x2c5abb[_0xa115('0x41')]!==_0xa115('0x42')){var _0x20f58f={};_0x20f58f[_0x2c5abb[_0xa115('0x2e')]]={'$like':'%'+_0x2fe6d6[_0xa115('0x34')]['filter']+'%'};return _0x20f58f;}})});}_0x3ea09e=_[_0xa115('0x40')]({},_0x3ea09e,_0x2fe6d6[_0xa115('0x43')]);var _0x41d3b6={'where':_0x3ea09e[_0xa115('0x3f')]};return db[_0xa115('0x30')][_0xa115('0x22')](_0x41d3b6)[_0xa115('0x29')](function(_0x3ccb2d){_0x53c6f7[_0xa115('0x22')]=_0x3ccb2d;if(_0x2fe6d6['query']['includeAll']){_0x3ea09e[_0xa115('0x44')]=[{'all':!![]}];}return db['FreshdeskAccount']['findAll'](_0x3ea09e);})[_0xa115('0x29')](function(_0x14af98){_0x53c6f7['rows']=_0x14af98;return _0x53c6f7;})[_0xa115('0x29')](respondWithFilteredResult(_0x37952c,_0x3ea09e))[_0xa115('0x45')](handleError(_0x37952c,null));};exports[_0xa115('0x46')]=function(_0x3a56e4,_0x438c65){var _0xd78ea={'raw':![],'where':{'id':_0x3a56e4[_0xa115('0x47')]['id']}},_0x276f6f={};_0x276f6f[_0xa115('0x33')]=_[_0xa115('0x48')](db['FreshdeskAccount']['rawAttributes']);_0x276f6f[_0xa115('0x34')]=_[_0xa115('0x48')](_0x3a56e4[_0xa115('0x34')]);_0x276f6f[_0xa115('0x35')]=_[_0xa115('0x36')](_0x276f6f[_0xa115('0x33')],_0x276f6f[_0xa115('0x34')]);_0xd78ea['attributes']=_[_0xa115('0x36')](_0x276f6f[_0xa115('0x33')],qs[_0xa115('0x37')](_0x3a56e4['query']['fields']));_0xd78ea[_0xa115('0x38')]=_0xd78ea['attributes'][_0xa115('0x39')]?_0xd78ea[_0xa115('0x38')]:_0x276f6f[_0xa115('0x33')];if(_0x3a56e4['query']['includeAll']){_0xd78ea[_0xa115('0x44')]=[{'all':!![]}];}_0xd78ea=_['merge']({},_0xd78ea,_0x3a56e4[_0xa115('0x43')]);return db[_0xa115('0x30')][_0xa115('0x49')](_0xd78ea)[_0xa115('0x29')](handleEntityNotFound(_0x438c65,null))[_0xa115('0x29')](respondWithResult(_0x438c65,null))[_0xa115('0x45')](handleError(_0x438c65,null));};exports[_0xa115('0x4a')]=function(_0x2f1229,_0x2172e8){return db[_0xa115('0x30')][_0xa115('0x4a')](_0x2f1229[_0xa115('0x4b')],{})['then'](respondWithResult(_0x2172e8,0xc9))['catch'](handleError(_0x2172e8,null));};exports[_0xa115('0x28')]=function(_0x4336a2,_0x2b1bc3){if(_0x4336a2['body']['id']){delete _0x4336a2[_0xa115('0x4b')]['id'];}return db[_0xa115('0x30')]['find']({'where':{'id':_0x4336a2[_0xa115('0x47')]['id']}})['then'](handleEntityNotFound(_0x2b1bc3,null))[_0xa115('0x29')](saveUpdates(_0x4336a2[_0xa115('0x4b')],null))[_0xa115('0x29')](respondWithResult(_0x2b1bc3,null))[_0xa115('0x45')](handleError(_0x2b1bc3,null));};exports[_0xa115('0x2a')]=function(_0x2b4173,_0x53ccdc){return db['FreshdeskAccount']['find']({'where':{'id':_0x2b4173[_0xa115('0x47')]['id']}})[_0xa115('0x29')](handleEntityNotFound(_0x53ccdc,null))[_0xa115('0x29')](removeEntity(_0x53ccdc,null))['catch'](handleError(_0x53ccdc,null));};exports['getConfigurations']=function(_0x492481,_0x49f8c,_0x4f156d){var _0x33cbc2={};var _0x4a9933={};var _0x13792a;var _0x590613;return db['FreshdeskAccount'][_0xa115('0x4c')]({'where':{'id':_0x492481[_0xa115('0x47')]['id']}})['then'](handleEntityNotFound(_0x49f8c,null))[_0xa115('0x29')](function(_0x5e0ef4){if(_0x5e0ef4){_0x13792a=_0x5e0ef4;_0x4a9933[_0xa115('0x33')]=_['keys'](db['FreshdeskConfiguration'][_0xa115('0x4d')]);_0x4a9933[_0xa115('0x34')]=_['keys'](_0x492481[_0xa115('0x34')]);_0x4a9933[_0xa115('0x35')]=_[_0xa115('0x36')](_0x4a9933[_0xa115('0x33')],_0x4a9933['query']);_0x33cbc2[_0xa115('0x38')]=_[_0xa115('0x36')](_0x4a9933[_0xa115('0x33')],qs[_0xa115('0x37')](_0x492481['query']['fields']));_0x33cbc2['attributes']=_0x33cbc2[_0xa115('0x38')][_0xa115('0x39')]?_0x33cbc2[_0xa115('0x38')]:_0x4a9933['model'];_0x33cbc2[_0xa115('0x3b')]=qs[_0xa115('0x3c')](_0x492481[_0xa115('0x34')][_0xa115('0x3c')]);_0x33cbc2[_0xa115('0x3f')]=qs[_0xa115('0x35')](_[_0xa115('0x3d')](_0x492481[_0xa115('0x34')],_0x4a9933[_0xa115('0x35')]));if(_0x492481[_0xa115('0x34')]['filter']){_0x33cbc2['where']=_[_0xa115('0x40')](_0x33cbc2[_0xa115('0x3f')],{'$or':_[_0xa115('0x2f')](_0x33cbc2['attributes'],function(_0x4ac3ec){var _0xae781={};_0xae781[_0x4ac3ec]={'$like':'%'+_0x492481[_0xa115('0x34')][_0xa115('0x3e')]+'%'};return _0xae781;})});}_0x33cbc2=_[_0xa115('0x40')]({},_0x33cbc2,_0x492481[_0xa115('0x43')]);return _0x13792a[_0xa115('0x4e')](_0x33cbc2);}})[_0xa115('0x29')](function(_0x10f606){if(_0x10f606){_0x590613=_0x10f606['length'];if(!_0x492481['query'][_0xa115('0x4f')](_0xa115('0x3a'))){_0x33cbc2['limit']=qs[_0xa115('0x21')](_0x492481[_0xa115('0x34')][_0xa115('0x21')]);_0x33cbc2[_0xa115('0x1f')]=qs['offset'](_0x492481['query'][_0xa115('0x1f')]);}return _0x13792a[_0xa115('0x4e')](_0x33cbc2);}})[_0xa115('0x29')](function(_0x109da8){if(_0x109da8){return _0x109da8?{'count':_0x590613,'rows':_0x109da8}:null;}})[_0xa115('0x29')](respondWithResult(_0x49f8c,null))[_0xa115('0x45')](handleError(_0x49f8c,null));};exports['addConfiguration']=function(_0x61baa5,_0x3c25fb,_0x35dd57){if(_0x61baa5[_0xa115('0x4b')]['id']){delete _0x61baa5[_0xa115('0x4b')]['id'];}return db[_0xa115('0x30')][_0xa115('0x4c')]({'where':{'id':_0x61baa5[_0xa115('0x47')]['id']}})['then'](handleEntityNotFound(_0x3c25fb,null))[_0xa115('0x29')](function(_0x35ec9d){if(_0x35ec9d){_0x61baa5[_0xa115('0x4b')]['AccountId']=_0x35ec9d['id'];_0x61baa5[_0xa115('0x4b')][_0xa115('0x50')]=integrations[_0xa115('0x51')](_0x61baa5[_0xa115('0x4b')][_0xa115('0x52')],_0x61baa5[_0xa115('0x4b')][_0xa115('0x41')]);_0x61baa5[_0xa115('0x4b')][_0xa115('0x53')]=integrations[_0xa115('0x54')](_0x61baa5['body']['channel'],_0x61baa5[_0xa115('0x4b')][_0xa115('0x41')]);return db[_0xa115('0x55')][_0xa115('0x4a')](_0x61baa5[_0xa115('0x4b')],{'include':[{'model':db[_0xa115('0x56')],'as':_0xa115('0x50')},{'model':db[_0xa115('0x56')],'as':'Descriptions'}]});}return null;})[_0xa115('0x29')](respondWithResult(_0x3c25fb,null))[_0xa115('0x45')](handleError(_0x3c25fb,null));};exports[_0xa115('0x57')]=function(_0x345031,_0x4abfdf,_0x8de6e8){var _0x8f8a2a='';return db[_0xa115('0x30')][_0xa115('0x4c')]({'where':{'id':_0x345031['params']['id']},'attributes':['id','remoteUri',_0xa115('0x58')]})[_0xa115('0x29')](handleEntityNotFound(_0x4abfdf,null))[_0xa115('0x29')](function(_0x3900ee){if(_0x3900ee){_0x8f8a2a=_0x3900ee['remoteUri'];var _0x2e4cda=_0x8f8a2a[_0xa115('0x59')](-0x1);if(_0x2e4cda==='/'){_0x8f8a2a=_0x8f8a2a[_0xa115('0x5a')](0x0,_0x8f8a2a[_0xa115('0x5b')](_0x2e4cda));}return rp({'method':_0xa115('0x5c'),'uri':util[_0xa115('0x5d')]('%s/%s',_0x8f8a2a,_0xa115('0x5e')),'headers':{'Authorization':util[_0xa115('0x5d')]('Basic\x20%s',new Buffer(util[_0xa115('0x5d')](_0xa115('0x5f'),_0x3900ee[_0xa115('0x58')]))[_0xa115('0x60')]('base64'))},'json':!![]});}})[_0xa115('0x29')](function(_0x34239e){if(_0x34239e){var _0x10c115=[_0xa115('0x61'),_0xa115('0x62'),_0xa115('0x63'),_0xa115('0x64'),_0xa115('0x1d'),'priority',_0xa115('0x65'),_0xa115('0x66'),_0xa115('0x67'),_0xa115('0x65'),'company'];_[_0xa115('0x68')](_0x34239e,function(_0x512ddd){return _0x10c115['includes'](_0x512ddd[_0xa115('0x2e')])||!_0x512ddd['default']&&_0x512ddd[_0xa115('0x41')]!==_0xa115('0x69')&&_0x512ddd[_0xa115('0x41')]!==_0xa115('0x6a');});return{'count':_0x34239e[_0xa115('0x39')],'rows':_[_0xa115('0x2f')](_0x34239e,function(_0x21300f){return{'id':_0x21300f['name'],'name':_0x21300f[_0xa115('0x6b')],'custom':!_0x21300f[_0xa115('0x6c')],'options':_0x21300f[_0xa115('0x6d')]?_[_0xa115('0x2f')](_0x21300f[_0xa115('0x6d')],function(_0x230145){return{'name':_[_0xa115('0x6e')](_0x230145),'value':_0x230145};}):[]};})};}})[_0xa115('0x29')](respondWithResult(_0x4abfdf,null))[_0xa115('0x45')](function(_0x14c781){var _0x5bff85=_0x345031[_0xa115('0x34')][_0xa115('0x6f')]?0x1f4:_0x14c781[_0xa115('0x70')]||0x1f4;logger[_0xa115('0x2c')]('getFields,\x20%s,\x20%s,\x20%s',_0xa115('0x57'),_0x5bff85,JSON[_0xa115('0x71')](_0x14c781));delete _0x14c781[_0xa115('0x2e')];if(_0x5bff85===0x191){_0x5bff85=0x190;}_0x4abfdf[_0xa115('0x1d')](_0x5bff85)['send'](_0x345031[_0xa115('0x34')][_0xa115('0x6f')]?{'message':_0xa115('0x72'),'statusCode':_0x14c781['statusCode']}:_0x14c781);});};