0162499bc599594a3559952585b123aea7809e90
[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 _0xc961=['base64','requester','agent','description','priority','group','source','company','remove','default','custom_dropdown','choices','capitalize','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','json','undefined','count','offset','limit','Content-Range','reject','save','update','then','destroy','stack','name','send','index','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','pick','filter','where','merge','map','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','FreshdeskAccount','create','body','find','FreshdeskConfiguration','getConfigurations','hasOwnProperty','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskField','getFields','remoteUri','slice','substring','lastIndexOf','GET','%s/%s','api/v2/ticket_fields','format','Basic\x20%s','apiKey','toString'];(function(_0x26788d,_0x42b12a){var _0x2e74e7=function(_0x307f24){while(--_0x307f24){_0x26788d['push'](_0x26788d['shift']());}};_0x2e74e7(++_0x42b12a);}(_0xc961,0x17a));var _0x1c96=function(_0x4dd0a7,_0xb4399f){_0x4dd0a7=_0x4dd0a7-0x0;var _0x487e9b=_0xc961[_0x4dd0a7];return _0x487e9b;};'use strict';var emlformat=require(_0x1c96('0x0'));var rimraf=require(_0x1c96('0x1'));var zipdir=require(_0x1c96('0x2'));var jsonpatch=require(_0x1c96('0x3'));var rp=require(_0x1c96('0x4'));var moment=require(_0x1c96('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x1c96('0x6'));var sox=require('sox');var csv=require(_0x1c96('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1c96('0x8'));var _=require(_0x1c96('0x9'));var squel=require(_0x1c96('0xa'));var crypto=require(_0x1c96('0xb'));var jsforce=require(_0x1c96('0xc'));var deskjs=require(_0x1c96('0xd'));var toCsv=require('to-csv');var querystring=require(_0x1c96('0xe'));var Papa=require(_0x1c96('0xf'));var Redis=require(_0x1c96('0x10'));var authService=require(_0x1c96('0x11'));var qs=require(_0x1c96('0x12'));var as=require(_0x1c96('0x13'));var hardwareService=require(_0x1c96('0x14'));var logger=require(_0x1c96('0x15'))(_0x1c96('0x16'));var utils=require(_0x1c96('0x17'));var config=require(_0x1c96('0x18'));var licenseUtil=require(_0x1c96('0x19'));var db=require('../../mysqldb')['db'];var integrations=require(_0x1c96('0x1a'));function respondWithStatusCode(_0x3c9850,_0x5a8f97){_0x5a8f97=_0x5a8f97||0xcc;return function(_0x425345){if(_0x425345){return _0x3c9850[_0x1c96('0x1b')](_0x5a8f97);}return _0x3c9850[_0x1c96('0x1c')](_0x5a8f97)[_0x1c96('0x1d')]();};}function respondWithResult(_0x4c410d,_0x242bb1){_0x242bb1=_0x242bb1||0xc8;return function(_0x36710e){if(_0x36710e){return _0x4c410d[_0x1c96('0x1c')](_0x242bb1)[_0x1c96('0x1e')](_0x36710e);}};}function respondWithFilteredResult(_0x199719,_0x8f03c4){return function(_0x7cfdeb){if(_0x7cfdeb){var _0x3441a7=typeof _0x8f03c4['offset']===_0x1c96('0x1f')&&typeof _0x8f03c4['limit']===_0x1c96('0x1f');var _0x151c85=_0x7cfdeb['count'];var _0x29dafb=_0x3441a7?0x0:_0x8f03c4['offset'];var _0x57efce=_0x3441a7?_0x7cfdeb[_0x1c96('0x20')]:_0x8f03c4[_0x1c96('0x21')]+_0x8f03c4[_0x1c96('0x22')];var _0x4aff57;if(_0x57efce>=_0x151c85){_0x57efce=_0x151c85;_0x4aff57=0xc8;}else{_0x4aff57=0xce;}_0x199719[_0x1c96('0x1c')](_0x4aff57);return _0x199719['set'](_0x1c96('0x23'),_0x29dafb+'-'+_0x57efce+'/'+_0x151c85)[_0x1c96('0x1e')](_0x7cfdeb);}return null;};}function patchUpdates(_0x5e11b8){return function(_0x5a5829){try{jsonpatch['apply'](_0x5a5829,_0x5e11b8,!![]);}catch(_0x321598){return BPromise[_0x1c96('0x24')](_0x321598);}return _0x5a5829[_0x1c96('0x25')]();};}function saveUpdates(_0x3f4293,_0x30e8b8){return function(_0x46b969){if(_0x46b969){return _0x46b969[_0x1c96('0x26')](_0x3f4293)[_0x1c96('0x27')](function(_0xad92bd){return _0xad92bd;});}return null;};}function removeEntity(_0xc40964,_0x4d2c9c){return function(_0x24c60c){if(_0x24c60c){return _0x24c60c[_0x1c96('0x28')]()[_0x1c96('0x27')](function(){_0xc40964['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2d5aaa,_0xd57e1b){return function(_0x48798a){if(!_0x48798a){_0x2d5aaa[_0x1c96('0x1b')](0x194);}return _0x48798a;};}function handleError(_0x43b822,_0x1b31d0){_0x1b31d0=_0x1b31d0||0x1f4;return function(_0x4e6066){logger['error'](_0x4e6066[_0x1c96('0x29')]);if(_0x4e6066[_0x1c96('0x2a')]){delete _0x4e6066['name'];}_0x43b822[_0x1c96('0x1c')](_0x1b31d0)[_0x1c96('0x2b')](_0x4e6066);};}exports[_0x1c96('0x2c')]=function(_0x25db8a,_0x5a6b49){var _0x523b43={},_0x3466e6={},_0x556730={'count':0x0,'rows':[]};var _0x1ab997=_['map'](db['FreshdeskAccount'][_0x1c96('0x2d')],function(_0x4438fb){return{'name':_0x4438fb[_0x1c96('0x2e')],'type':_0x4438fb[_0x1c96('0x2f')][_0x1c96('0x30')]};});_0x3466e6[_0x1c96('0x31')]=_['map'](_0x1ab997,'name');_0x3466e6[_0x1c96('0x32')]=_[_0x1c96('0x33')](_0x25db8a[_0x1c96('0x32')]);_0x3466e6[_0x1c96('0x34')]=_[_0x1c96('0x35')](_0x3466e6[_0x1c96('0x31')],_0x3466e6[_0x1c96('0x32')]);_0x523b43[_0x1c96('0x36')]=_[_0x1c96('0x35')](_0x3466e6['model'],qs[_0x1c96('0x37')](_0x25db8a[_0x1c96('0x32')][_0x1c96('0x37')]));_0x523b43[_0x1c96('0x36')]=_0x523b43[_0x1c96('0x36')][_0x1c96('0x38')]?_0x523b43['attributes']:_0x3466e6[_0x1c96('0x31')];if(!_0x25db8a[_0x1c96('0x32')]['hasOwnProperty'](_0x1c96('0x39'))){_0x523b43[_0x1c96('0x22')]=qs[_0x1c96('0x22')](_0x25db8a[_0x1c96('0x32')][_0x1c96('0x22')]);_0x523b43[_0x1c96('0x21')]=qs[_0x1c96('0x21')](_0x25db8a['query']['offset']);}_0x523b43[_0x1c96('0x3a')]=qs[_0x1c96('0x3b')](_0x25db8a['query'][_0x1c96('0x3b')]);_0x523b43['where']=qs[_0x1c96('0x34')](_[_0x1c96('0x3c')](_0x25db8a['query'],_0x3466e6['filters']),_0x1ab997);if(_0x25db8a[_0x1c96('0x32')][_0x1c96('0x3d')]){_0x523b43[_0x1c96('0x3e')]=_[_0x1c96('0x3f')](_0x523b43[_0x1c96('0x3e')],{'$or':_[_0x1c96('0x40')](_0x1ab997,function(_0x2d1ea1){if(_0x2d1ea1['type']!==_0x1c96('0x41')){var _0x2b422e={};_0x2b422e[_0x2d1ea1['name']]={'$like':'%'+_0x25db8a[_0x1c96('0x32')]['filter']+'%'};return _0x2b422e;}})});}_0x523b43=_[_0x1c96('0x3f')]({},_0x523b43,_0x25db8a[_0x1c96('0x42')]);var _0x4167f8={'where':_0x523b43[_0x1c96('0x3e')]};return db['FreshdeskAccount'][_0x1c96('0x20')](_0x4167f8)[_0x1c96('0x27')](function(_0x2b2113){_0x556730[_0x1c96('0x20')]=_0x2b2113;if(_0x25db8a['query'][_0x1c96('0x43')]){_0x523b43[_0x1c96('0x44')]=[{'all':!![]}];}return db['FreshdeskAccount'][_0x1c96('0x45')](_0x523b43);})[_0x1c96('0x27')](function(_0x2676cf){_0x556730[_0x1c96('0x46')]=_0x2676cf;return _0x556730;})[_0x1c96('0x27')](respondWithFilteredResult(_0x5a6b49,_0x523b43))[_0x1c96('0x47')](handleError(_0x5a6b49,null));};exports[_0x1c96('0x48')]=function(_0xb74171,_0x49260f){var _0x1404b0={'raw':![],'where':{'id':_0xb74171[_0x1c96('0x49')]['id']}},_0x24ee34={};_0x24ee34[_0x1c96('0x31')]=_[_0x1c96('0x33')](db[_0x1c96('0x4a')][_0x1c96('0x2d')]);_0x24ee34[_0x1c96('0x32')]=_[_0x1c96('0x33')](_0xb74171['query']);_0x24ee34['filters']=_[_0x1c96('0x35')](_0x24ee34[_0x1c96('0x31')],_0x24ee34[_0x1c96('0x32')]);_0x1404b0[_0x1c96('0x36')]=_[_0x1c96('0x35')](_0x24ee34['model'],qs['fields'](_0xb74171[_0x1c96('0x32')][_0x1c96('0x37')]));_0x1404b0[_0x1c96('0x36')]=_0x1404b0['attributes'][_0x1c96('0x38')]?_0x1404b0[_0x1c96('0x36')]:_0x24ee34['model'];if(_0xb74171[_0x1c96('0x32')]['includeAll']){_0x1404b0['include']=[{'all':!![]}];}_0x1404b0=_[_0x1c96('0x3f')]({},_0x1404b0,_0xb74171[_0x1c96('0x42')]);return db[_0x1c96('0x4a')]['find'](_0x1404b0)['then'](handleEntityNotFound(_0x49260f,null))['then'](respondWithResult(_0x49260f,null))[_0x1c96('0x47')](handleError(_0x49260f,null));};exports['create']=function(_0x4679f2,_0x59b235){return db[_0x1c96('0x4a')][_0x1c96('0x4b')](_0x4679f2[_0x1c96('0x4c')],{})[_0x1c96('0x27')](respondWithResult(_0x59b235,0xc9))['catch'](handleError(_0x59b235,null));};exports[_0x1c96('0x26')]=function(_0xa5effb,_0x124cb3){if(_0xa5effb[_0x1c96('0x4c')]['id']){delete _0xa5effb['body']['id'];}return db[_0x1c96('0x4a')][_0x1c96('0x4d')]({'where':{'id':_0xa5effb[_0x1c96('0x49')]['id']}})[_0x1c96('0x27')](handleEntityNotFound(_0x124cb3,null))[_0x1c96('0x27')](saveUpdates(_0xa5effb[_0x1c96('0x4c')],null))[_0x1c96('0x27')](respondWithResult(_0x124cb3,null))['catch'](handleError(_0x124cb3,null));};exports[_0x1c96('0x28')]=function(_0x47db08,_0x1082c3){return db[_0x1c96('0x4a')]['find']({'where':{'id':_0x47db08['params']['id']}})[_0x1c96('0x27')](handleEntityNotFound(_0x1082c3,null))[_0x1c96('0x27')](removeEntity(_0x1082c3,null))[_0x1c96('0x47')](handleError(_0x1082c3,null));};exports['getConfigurations']=function(_0x1265af,_0x25ec33,_0x4784bd){var _0x5ba591={};var _0x5b6fa1={};var _0x33c8fc;var _0x534f61;return db['FreshdeskAccount']['findOne']({'where':{'id':_0x1265af['params']['id']}})[_0x1c96('0x27')](handleEntityNotFound(_0x25ec33,null))['then'](function(_0x51309f){if(_0x51309f){_0x33c8fc=_0x51309f;_0x5b6fa1['model']=_[_0x1c96('0x33')](db[_0x1c96('0x4e')][_0x1c96('0x2d')]);_0x5b6fa1[_0x1c96('0x32')]=_[_0x1c96('0x33')](_0x1265af[_0x1c96('0x32')]);_0x5b6fa1[_0x1c96('0x34')]=_[_0x1c96('0x35')](_0x5b6fa1[_0x1c96('0x31')],_0x5b6fa1['query']);_0x5ba591[_0x1c96('0x36')]=_[_0x1c96('0x35')](_0x5b6fa1[_0x1c96('0x31')],qs[_0x1c96('0x37')](_0x1265af['query'][_0x1c96('0x37')]));_0x5ba591[_0x1c96('0x36')]=_0x5ba591[_0x1c96('0x36')][_0x1c96('0x38')]?_0x5ba591[_0x1c96('0x36')]:_0x5b6fa1[_0x1c96('0x31')];_0x5ba591[_0x1c96('0x3a')]=qs[_0x1c96('0x3b')](_0x1265af['query'][_0x1c96('0x3b')]);_0x5ba591[_0x1c96('0x3e')]=qs[_0x1c96('0x34')](_['pick'](_0x1265af[_0x1c96('0x32')],_0x5b6fa1[_0x1c96('0x34')]));if(_0x1265af[_0x1c96('0x32')]['filter']){_0x5ba591['where']=_[_0x1c96('0x3f')](_0x5ba591[_0x1c96('0x3e')],{'$or':_['map'](_0x5ba591['attributes'],function(_0x4df1ef){var _0x1c9d98={};_0x1c9d98[_0x4df1ef]={'$like':'%'+_0x1265af[_0x1c96('0x32')][_0x1c96('0x3d')]+'%'};return _0x1c9d98;})});}_0x5ba591=_[_0x1c96('0x3f')]({},_0x5ba591,_0x1265af['options']);return _0x33c8fc[_0x1c96('0x4f')](_0x5ba591);}})[_0x1c96('0x27')](function(_0x1c774d){if(_0x1c774d){_0x534f61=_0x1c774d[_0x1c96('0x38')];if(!_0x1265af[_0x1c96('0x32')][_0x1c96('0x50')](_0x1c96('0x39'))){_0x5ba591['limit']=qs['limit'](_0x1265af[_0x1c96('0x32')][_0x1c96('0x22')]);_0x5ba591[_0x1c96('0x21')]=qs[_0x1c96('0x21')](_0x1265af[_0x1c96('0x32')]['offset']);}return _0x33c8fc['getConfigurations'](_0x5ba591);}})[_0x1c96('0x27')](function(_0xf91a09){if(_0xf91a09){return _0xf91a09?{'count':_0x534f61,'rows':_0xf91a09}:null;}})[_0x1c96('0x27')](respondWithResult(_0x25ec33,null))[_0x1c96('0x47')](handleError(_0x25ec33,null));};exports[_0x1c96('0x51')]=function(_0x5d3e70,_0x54fa49,_0x2274c0){if(_0x5d3e70[_0x1c96('0x4c')]['id']){delete _0x5d3e70[_0x1c96('0x4c')]['id'];}return db[_0x1c96('0x4a')][_0x1c96('0x52')]({'where':{'id':_0x5d3e70['params']['id']}})['then'](handleEntityNotFound(_0x54fa49,null))[_0x1c96('0x27')](function(_0x391804){if(_0x391804){_0x5d3e70['body'][_0x1c96('0x53')]=_0x391804['id'];_0x5d3e70[_0x1c96('0x4c')][_0x1c96('0x54')]=integrations[_0x1c96('0x55')](_0x5d3e70['body'][_0x1c96('0x56')],_0x5d3e70['body']['type']);_0x5d3e70[_0x1c96('0x4c')][_0x1c96('0x57')]=integrations[_0x1c96('0x58')](_0x5d3e70[_0x1c96('0x4c')]['channel'],_0x5d3e70[_0x1c96('0x4c')][_0x1c96('0x2f')]);return db['FreshdeskConfiguration'][_0x1c96('0x4b')](_0x5d3e70[_0x1c96('0x4c')],{'include':[{'model':db[_0x1c96('0x59')],'as':'Subjects'},{'model':db[_0x1c96('0x59')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x54fa49,null))[_0x1c96('0x47')](handleError(_0x54fa49,null));};exports[_0x1c96('0x5a')]=function(_0x4aeeee,_0x5f11db,_0x94892){var _0x4a7c4c='';return db[_0x1c96('0x4a')][_0x1c96('0x52')]({'where':{'id':_0x4aeeee[_0x1c96('0x49')]['id']},'attributes':['id',_0x1c96('0x5b'),'apiKey']})['then'](handleEntityNotFound(_0x5f11db,null))['then'](function(_0x5f0f78){if(_0x5f0f78){_0x4a7c4c=_0x5f0f78[_0x1c96('0x5b')];var _0xd9fc2f=_0x4a7c4c[_0x1c96('0x5c')](-0x1);if(_0xd9fc2f==='/'){_0x4a7c4c=_0x4a7c4c[_0x1c96('0x5d')](0x0,_0x4a7c4c[_0x1c96('0x5e')](_0xd9fc2f));}return rp({'method':_0x1c96('0x5f'),'uri':util['format'](_0x1c96('0x60'),_0x4a7c4c,_0x1c96('0x61')),'headers':{'Authorization':util[_0x1c96('0x62')](_0x1c96('0x63'),new Buffer(util[_0x1c96('0x62')]('%s:X',_0x5f0f78[_0x1c96('0x64')]))[_0x1c96('0x65')](_0x1c96('0x66')))},'json':!![]});}})[_0x1c96('0x27')](function(_0x2565b0){if(_0x2565b0){var _0x28d7d4=[_0x1c96('0x67'),'subject',_0x1c96('0x68'),_0x1c96('0x69'),_0x1c96('0x1c'),_0x1c96('0x6a'),_0x1c96('0x6b'),_0x1c96('0x6c'),'ticket_type','group',_0x1c96('0x6d')];_[_0x1c96('0x6e')](_0x2565b0,function(_0x3d1823){return _0x28d7d4['includes'](_0x3d1823[_0x1c96('0x2a')])||!_0x3d1823[_0x1c96('0x6f')]&&_0x3d1823[_0x1c96('0x2f')]!=='custom_text'&&_0x3d1823[_0x1c96('0x2f')]!==_0x1c96('0x70');});return{'count':_0x2565b0['length'],'rows':_[_0x1c96('0x40')](_0x2565b0,function(_0x38ae53){return{'id':_0x38ae53[_0x1c96('0x2a')],'name':_0x38ae53['label'],'custom':!_0x38ae53[_0x1c96('0x6f')],'options':_0x38ae53['choices']?_[_0x1c96('0x40')](_0x38ae53[_0x1c96('0x71')],function(_0x404bf1){return{'name':_[_0x1c96('0x72')](_0x404bf1),'value':_0x404bf1};}):[]};})};}})[_0x1c96('0x27')](respondWithResult(_0x5f11db,null))[_0x1c96('0x47')](function(_0xb26dac){var _0x2b3c3a=_0x4aeeee[_0x1c96('0x32')]['test']?0x1f4:_0xb26dac[_0x1c96('0x73')]||0x1f4;logger[_0x1c96('0x74')](_0x1c96('0x75'),_0x1c96('0x5a'),_0x2b3c3a,JSON['stringify'](_0xb26dac));delete _0xb26dac['name'];if(_0x2b3c3a===0x191){_0x2b3c3a=0x190;}_0x5f11db[_0x1c96('0x1c')](_0x2b3c3a)[_0x1c96('0x2b')](_0x4aeeee[_0x1c96('0x32')][_0x1c96('0x76')]?{'message':_0x1c96('0x77'),'statusCode':_0xb26dac[_0x1c96('0x73')]}:_0xb26dac);});};