Built motion from commit (unavailable).|2.5.27
[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 _0x29cd=['sox','ejs','fs-extra','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','jayson/promise','client','http','info','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','code','error','message','result','status','json','offset','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','stack','name','send','index','map','FreshdeskAccount','rawAttributes','type','key','model','query','filters','intersection','attributes','length','limit','order','sort','where','VIRTUAL','filter','merge','options','count','includeAll','rows','catch','params','keys','fields','create','body','find','getConfigurations','findOne','FreshdeskConfiguration','hasOwnProperty','nolimit','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskField','remoteUri','substring','lastIndexOf','GET','%s/%s','api/v2/ticket_fields','format','%s:X','apiKey','toString','base64','requester','subject','agent','description','group','source','ticket_type','company','remove','includes','default','custom_dropdown','label','choices','capitalize','test','statusCode','getFields','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util'];(function(_0x4e1bf4,_0x52aabb){var _0x45250b=function(_0x2902cc){while(--_0x2902cc){_0x4e1bf4['push'](_0x4e1bf4['shift']());}};_0x45250b(++_0x52aabb);}(_0x29cd,0xec));var _0xd29c=function(_0x8b7185,_0x3624ca){_0x8b7185=_0x8b7185-0x0;var _0x33f5bf=_0x29cd[_0x8b7185];return _0x33f5bf;};'use strict';var emlformat=require(_0xd29c('0x0'));var rimraf=require(_0xd29c('0x1'));var zipdir=require(_0xd29c('0x2'));var jsonpatch=require(_0xd29c('0x3'));var rp=require(_0xd29c('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xd29c('0x5'));var path=require('path');var sox=require(_0xd29c('0x6'));var csv=require('to-csv');var ejs=require(_0xd29c('0x7'));var fs=require('fs');var fs_extra=require(_0xd29c('0x8'));var _=require('lodash');var squel=require(_0xd29c('0x9'));var crypto=require(_0xd29c('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xd29c('0xb'));var toCsv=require(_0xd29c('0xc'));var querystring=require(_0xd29c('0xd'));var Papa=require(_0xd29c('0xe'));var Redis=require(_0xd29c('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xd29c('0x10'));var hardwareService=require(_0xd29c('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0xd29c('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0xd29c('0x13'));var db=require(_0xd29c('0x14'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0xd29c('0x15'));var client=jayson[_0xd29c('0x16')][_0xd29c('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x12a7aa,_0x14bac9,_0x3a5f12,_0x24c037){return new BPromise(function(_0x35a890,_0x3923bf){var _0xee5126=_0x24c037||client;return _0xee5126['request'](_0x12a7aa,_0x3a5f12)['then'](function(_0x3db53a){logger[_0xd29c('0x18')](_0xd29c('0x19'),_0x14bac9,_0xd29c('0x1a'));logger[_0xd29c('0x1b')](_0xd29c('0x1c'),_0x14bac9,_0xd29c('0x1a'),JSON['stringify'](_0x3db53a));if(_0x3db53a['error']){if(_0x3db53a['error'][_0xd29c('0x1d')]===0x1f4){logger['error'](_0xd29c('0x19'),_0x14bac9,_0x3db53a[_0xd29c('0x1e')]['message']);return _0x3923bf(_0x3db53a[_0xd29c('0x1e')]['message']);}logger[_0xd29c('0x1e')](_0xd29c('0x19'),_0x14bac9,_0x3db53a['error']['message']);return _0x35a890(_0x3db53a[_0xd29c('0x1e')][_0xd29c('0x1f')]);}else{logger[_0xd29c('0x18')](_0xd29c('0x19'),_0x14bac9,_0xd29c('0x1a'));_0x35a890(_0x3db53a[_0xd29c('0x20')][_0xd29c('0x1f')]);}})['catch'](function(_0x10f95c){logger['error'](_0xd29c('0x19'),_0x14bac9,_0x10f95c);_0x3923bf(_0x10f95c);});});}function respondWithStatusCode(_0x109256,_0x2018b6){_0x2018b6=_0x2018b6||0xcc;return function(_0x464308){if(_0x464308){return _0x109256['sendStatus'](_0x2018b6);}return _0x109256[_0xd29c('0x21')](_0x2018b6)['end']();};}function respondWithResult(_0x2dca40,_0x14af61){_0x14af61=_0x14af61||0xc8;return function(_0x412034){if(_0x412034){return _0x2dca40['status'](_0x14af61)[_0xd29c('0x22')](_0x412034);}};}function respondWithFilteredResult(_0x53a129,_0x1464e2){return function(_0x91d001){if(_0x91d001){var _0x1e274d=_0x91d001['count'],_0x3c0f90=_0x1464e2[_0xd29c('0x23')],_0x381921=_0x1464e2[_0xd29c('0x23')]+_0x1464e2['limit'],_0x16be1f;if(_0x381921>=_0x1e274d){_0x381921=_0x1e274d;_0x16be1f=0xc8;}else{_0x16be1f=0xce;}_0x53a129[_0xd29c('0x21')](_0x16be1f);return _0x53a129[_0xd29c('0x24')](_0xd29c('0x25'),_0x3c0f90+'-'+_0x381921+'/'+_0x1e274d)['json'](_0x91d001);}return null;};}function patchUpdates(_0x4f6242){return function(_0x3986a6){try{jsonpatch[_0xd29c('0x26')](_0x3986a6,_0x4f6242,!![]);}catch(_0x256304){return BPromise[_0xd29c('0x27')](_0x256304);}return _0x3986a6[_0xd29c('0x28')]();};}function saveUpdates(_0x144b2f,_0x5c7559){return function(_0x46a284){if(_0x46a284){return _0x46a284[_0xd29c('0x29')](_0x144b2f)[_0xd29c('0x2a')](function(_0x98b035){return _0x98b035;});}return null;};}function removeEntity(_0x5d1de8,_0x29392e){return function(_0x3d1b01){if(_0x3d1b01){return _0x3d1b01[_0xd29c('0x2b')]()[_0xd29c('0x2a')](function(){_0x5d1de8['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x17aa3a,_0x511a23){return function(_0x368ea8){if(!_0x368ea8){_0x17aa3a[_0xd29c('0x2c')](0x194);}return _0x368ea8;};}function handleError(_0x4ffb24,_0x1890bb){_0x1890bb=_0x1890bb||0x1f4;return function(_0x5854e1){logger[_0xd29c('0x1e')](_0x5854e1[_0xd29c('0x2d')]);if(_0x5854e1[_0xd29c('0x2e')]){delete _0x5854e1[_0xd29c('0x2e')];}_0x4ffb24[_0xd29c('0x21')](_0x1890bb)[_0xd29c('0x2f')](_0x5854e1);};}exports[_0xd29c('0x30')]=function(_0x4c0ff6,_0x52a143){var _0x51bb10={},_0x303370={},_0x33c870={'count':0x0,'rows':[]};var _0x3ea2d2=_[_0xd29c('0x31')](db[_0xd29c('0x32')][_0xd29c('0x33')],function(_0x37c611){return{'name':_0x37c611['fieldName'],'type':_0x37c611[_0xd29c('0x34')][_0xd29c('0x35')]};});_0x303370[_0xd29c('0x36')]=_[_0xd29c('0x31')](_0x3ea2d2,_0xd29c('0x2e'));_0x303370['query']=_['keys'](_0x4c0ff6[_0xd29c('0x37')]);_0x303370[_0xd29c('0x38')]=_[_0xd29c('0x39')](_0x303370[_0xd29c('0x36')],_0x303370[_0xd29c('0x37')]);_0x51bb10[_0xd29c('0x3a')]=_[_0xd29c('0x39')](_0x303370[_0xd29c('0x36')],qs['fields'](_0x4c0ff6[_0xd29c('0x37')]['fields']));_0x51bb10[_0xd29c('0x3a')]=_0x51bb10[_0xd29c('0x3a')][_0xd29c('0x3b')]?_0x51bb10[_0xd29c('0x3a')]:_0x303370['model'];if(!_0x4c0ff6[_0xd29c('0x37')]['hasOwnProperty']('nolimit')){_0x51bb10[_0xd29c('0x3c')]=qs['limit'](_0x4c0ff6['query']['limit']);_0x51bb10[_0xd29c('0x23')]=qs['offset'](_0x4c0ff6[_0xd29c('0x37')][_0xd29c('0x23')]);}_0x51bb10[_0xd29c('0x3d')]=qs[_0xd29c('0x3e')](_0x4c0ff6['query'][_0xd29c('0x3e')]);_0x51bb10[_0xd29c('0x3f')]=qs[_0xd29c('0x38')](_['pick'](_0x4c0ff6[_0xd29c('0x37')],_0x303370[_0xd29c('0x38')]),_0x3ea2d2);if(_0x4c0ff6[_0xd29c('0x37')]['filter']){_0x51bb10[_0xd29c('0x3f')]=_['merge'](_0x51bb10[_0xd29c('0x3f')],{'$or':_[_0xd29c('0x31')](_0x3ea2d2,function(_0x518eca){if(_0x518eca[_0xd29c('0x34')]!==_0xd29c('0x40')){var _0x5499cb={};_0x5499cb[_0x518eca[_0xd29c('0x2e')]]={'$like':'%'+_0x4c0ff6[_0xd29c('0x37')][_0xd29c('0x41')]+'%'};return _0x5499cb;}})});}_0x51bb10=_[_0xd29c('0x42')]({},_0x51bb10,_0x4c0ff6[_0xd29c('0x43')]);var _0xfb670b={'where':_0x51bb10[_0xd29c('0x3f')]};return db[_0xd29c('0x32')]['count'](_0xfb670b)['then'](function(_0x710849){_0x33c870[_0xd29c('0x44')]=_0x710849;if(_0x4c0ff6[_0xd29c('0x37')][_0xd29c('0x45')]){_0x51bb10['include']=[{'all':!![]}];}return db['FreshdeskAccount']['findAll'](_0x51bb10);})[_0xd29c('0x2a')](function(_0x2207b4){_0x33c870[_0xd29c('0x46')]=_0x2207b4;return _0x33c870;})[_0xd29c('0x2a')](respondWithFilteredResult(_0x52a143,_0x51bb10))[_0xd29c('0x47')](handleError(_0x52a143,null));};exports['show']=function(_0x214c96,_0x596fa4){var _0x1460b1={'raw':![],'where':{'id':_0x214c96[_0xd29c('0x48')]['id']}},_0x5d66d7={};_0x5d66d7[_0xd29c('0x36')]=_[_0xd29c('0x49')](db[_0xd29c('0x32')][_0xd29c('0x33')]);_0x5d66d7[_0xd29c('0x37')]=_[_0xd29c('0x49')](_0x214c96[_0xd29c('0x37')]);_0x5d66d7['filters']=_['intersection'](_0x5d66d7['model'],_0x5d66d7[_0xd29c('0x37')]);_0x1460b1['attributes']=_[_0xd29c('0x39')](_0x5d66d7[_0xd29c('0x36')],qs[_0xd29c('0x4a')](_0x214c96[_0xd29c('0x37')]['fields']));_0x1460b1[_0xd29c('0x3a')]=_0x1460b1[_0xd29c('0x3a')]['length']?_0x1460b1[_0xd29c('0x3a')]:_0x5d66d7['model'];if(_0x214c96['query'][_0xd29c('0x45')]){_0x1460b1['include']=[{'all':!![]}];}_0x1460b1=_['merge']({},_0x1460b1,_0x214c96['options']);return db[_0xd29c('0x32')]['find'](_0x1460b1)[_0xd29c('0x2a')](handleEntityNotFound(_0x596fa4,null))[_0xd29c('0x2a')](respondWithResult(_0x596fa4,null))['catch'](handleError(_0x596fa4,null));};exports[_0xd29c('0x4b')]=function(_0x17f2a8,_0xc69258){return db['FreshdeskAccount'][_0xd29c('0x4b')](_0x17f2a8[_0xd29c('0x4c')],{})[_0xd29c('0x2a')](respondWithResult(_0xc69258,0xc9))['catch'](handleError(_0xc69258,null));};exports[_0xd29c('0x29')]=function(_0x218a20,_0x486844){if(_0x218a20['body']['id']){delete _0x218a20[_0xd29c('0x4c')]['id'];}return db[_0xd29c('0x32')]['find']({'where':{'id':_0x218a20[_0xd29c('0x48')]['id']}})[_0xd29c('0x2a')](handleEntityNotFound(_0x486844,null))['then'](saveUpdates(_0x218a20[_0xd29c('0x4c')],null))['then'](respondWithResult(_0x486844,null))[_0xd29c('0x47')](handleError(_0x486844,null));};exports[_0xd29c('0x2b')]=function(_0x2534a3,_0x11dadf){return db[_0xd29c('0x32')][_0xd29c('0x4d')]({'where':{'id':_0x2534a3[_0xd29c('0x48')]['id']}})[_0xd29c('0x2a')](handleEntityNotFound(_0x11dadf,null))[_0xd29c('0x2a')](removeEntity(_0x11dadf,null))[_0xd29c('0x47')](handleError(_0x11dadf,null));};exports[_0xd29c('0x4e')]=function(_0x2b6a9c,_0x23b756,_0x33680c){var _0x59be15={};var _0x22949b={};var _0x58322c;var _0x7fdcd0;return db[_0xd29c('0x32')][_0xd29c('0x4f')]({'where':{'id':_0x2b6a9c['params']['id']}})[_0xd29c('0x2a')](handleEntityNotFound(_0x23b756,null))[_0xd29c('0x2a')](function(_0x5c1e46){if(_0x5c1e46){_0x58322c=_0x5c1e46;_0x22949b[_0xd29c('0x36')]=_[_0xd29c('0x49')](db[_0xd29c('0x50')][_0xd29c('0x33')]);_0x22949b[_0xd29c('0x37')]=_[_0xd29c('0x49')](_0x2b6a9c[_0xd29c('0x37')]);_0x22949b[_0xd29c('0x38')]=_[_0xd29c('0x39')](_0x22949b[_0xd29c('0x36')],_0x22949b[_0xd29c('0x37')]);_0x59be15[_0xd29c('0x3a')]=_['intersection'](_0x22949b['model'],qs['fields'](_0x2b6a9c[_0xd29c('0x37')]['fields']));_0x59be15[_0xd29c('0x3a')]=_0x59be15[_0xd29c('0x3a')]['length']?_0x59be15[_0xd29c('0x3a')]:_0x22949b['model'];_0x59be15[_0xd29c('0x3d')]=qs[_0xd29c('0x3e')](_0x2b6a9c[_0xd29c('0x37')][_0xd29c('0x3e')]);_0x59be15['where']=qs[_0xd29c('0x38')](_['pick'](_0x2b6a9c[_0xd29c('0x37')],_0x22949b[_0xd29c('0x38')]));if(_0x2b6a9c[_0xd29c('0x37')][_0xd29c('0x41')]){_0x59be15[_0xd29c('0x3f')]=_[_0xd29c('0x42')](_0x59be15['where'],{'$or':_[_0xd29c('0x31')](_0x59be15[_0xd29c('0x3a')],function(_0xbde5ca){var _0x42fec5={};_0x42fec5[_0xbde5ca]={'$like':'%'+_0x2b6a9c[_0xd29c('0x37')][_0xd29c('0x41')]+'%'};return _0x42fec5;})});}_0x59be15=_[_0xd29c('0x42')]({},_0x59be15,_0x2b6a9c[_0xd29c('0x43')]);return _0x58322c[_0xd29c('0x4e')](_0x59be15);}})[_0xd29c('0x2a')](function(_0x3eae6b){if(_0x3eae6b){_0x7fdcd0=_0x3eae6b[_0xd29c('0x3b')];if(!_0x2b6a9c[_0xd29c('0x37')][_0xd29c('0x51')](_0xd29c('0x52'))){_0x59be15[_0xd29c('0x3c')]=qs['limit'](_0x2b6a9c[_0xd29c('0x37')][_0xd29c('0x3c')]);_0x59be15[_0xd29c('0x23')]=qs[_0xd29c('0x23')](_0x2b6a9c['query']['offset']);}return _0x58322c[_0xd29c('0x4e')](_0x59be15);}})['then'](function(_0x16609b){if(_0x16609b){return _0x16609b?{'count':_0x7fdcd0,'rows':_0x16609b}:null;}})['then'](respondWithResult(_0x23b756,null))['catch'](handleError(_0x23b756,null));};exports['addConfiguration']=function(_0x18a528,_0x2ef948,_0x411046){if(_0x18a528['body']['id']){delete _0x18a528[_0xd29c('0x4c')]['id'];}return db[_0xd29c('0x32')][_0xd29c('0x4f')]({'where':{'id':_0x18a528[_0xd29c('0x48')]['id']}})[_0xd29c('0x2a')](handleEntityNotFound(_0x2ef948,null))[_0xd29c('0x2a')](function(_0x25664f){if(_0x25664f){_0x18a528[_0xd29c('0x4c')][_0xd29c('0x53')]=_0x25664f['id'];_0x18a528[_0xd29c('0x4c')][_0xd29c('0x54')]=integrations[_0xd29c('0x55')](_0x18a528[_0xd29c('0x4c')][_0xd29c('0x56')],_0x18a528[_0xd29c('0x4c')]['type']);_0x18a528[_0xd29c('0x4c')][_0xd29c('0x57')]=integrations[_0xd29c('0x58')](_0x18a528[_0xd29c('0x4c')][_0xd29c('0x56')],_0x18a528[_0xd29c('0x4c')][_0xd29c('0x34')]);return db[_0xd29c('0x50')]['create'](_0x18a528[_0xd29c('0x4c')],{'include':[{'model':db[_0xd29c('0x59')],'as':_0xd29c('0x54')},{'model':db[_0xd29c('0x59')],'as':'Descriptions'}]});}return null;})[_0xd29c('0x2a')](respondWithResult(_0x2ef948,null))[_0xd29c('0x47')](handleError(_0x2ef948,null));};exports['getFields']=function(_0x232d2e,_0x1ae40a,_0xc73fd6){var _0x335d65='';return db[_0xd29c('0x32')][_0xd29c('0x4f')]({'where':{'id':_0x232d2e[_0xd29c('0x48')]['id']},'attributes':['id',_0xd29c('0x5a'),'apiKey']})[_0xd29c('0x2a')](handleEntityNotFound(_0x1ae40a,null))[_0xd29c('0x2a')](function(_0x555c92){if(_0x555c92){_0x335d65=_0x555c92[_0xd29c('0x5a')];var _0x350030=_0x335d65['slice'](-0x1);if(_0x350030==='/'){_0x335d65=_0x335d65[_0xd29c('0x5b')](0x0,_0x335d65[_0xd29c('0x5c')](_0x350030));}return rp({'method':_0xd29c('0x5d'),'uri':util['format'](_0xd29c('0x5e'),_0x335d65,_0xd29c('0x5f')),'headers':{'Authorization':util['format']('Basic\x20%s',new Buffer(util[_0xd29c('0x60')](_0xd29c('0x61'),_0x555c92[_0xd29c('0x62')]))[_0xd29c('0x63')](_0xd29c('0x64')))},'json':!![]});}})[_0xd29c('0x2a')](function(_0x5a6f66){if(_0x5a6f66){var _0x205094=[_0xd29c('0x65'),_0xd29c('0x66'),_0xd29c('0x67'),_0xd29c('0x68'),_0xd29c('0x21'),'priority',_0xd29c('0x69'),_0xd29c('0x6a'),_0xd29c('0x6b'),_0xd29c('0x69'),_0xd29c('0x6c')];_[_0xd29c('0x6d')](_0x5a6f66,function(_0x10dc35){return _0x205094[_0xd29c('0x6e')](_0x10dc35[_0xd29c('0x2e')])||!_0x10dc35[_0xd29c('0x6f')]&&_0x10dc35[_0xd29c('0x34')]!=='custom_text'&&_0x10dc35[_0xd29c('0x34')]!==_0xd29c('0x70');});return{'count':_0x5a6f66[_0xd29c('0x3b')],'rows':_['map'](_0x5a6f66,function(_0x2d72fd){return{'id':_0x2d72fd[_0xd29c('0x2e')],'name':_0x2d72fd[_0xd29c('0x71')],'custom':!_0x2d72fd[_0xd29c('0x6f')],'options':_0x2d72fd[_0xd29c('0x72')]?_[_0xd29c('0x31')](_0x2d72fd[_0xd29c('0x72')],function(_0xc8b870){return{'name':_[_0xd29c('0x73')](_0xc8b870),'value':_0xc8b870};}):[]};})};}})[_0xd29c('0x2a')](respondWithResult(_0x1ae40a,null))[_0xd29c('0x47')](function(_0x4b1eeb){var _0x4bd4b2=_0x232d2e[_0xd29c('0x37')][_0xd29c('0x74')]?0x1f4:_0x4b1eeb[_0xd29c('0x75')]||0x1f4;logger[_0xd29c('0x1e')]('getFields,\x20%s,\x20%s,\x20%s',_0xd29c('0x76'),_0x4bd4b2,JSON[_0xd29c('0x77')](_0x4b1eeb));delete _0x4b1eeb[_0xd29c('0x2e')];if(_0x4bd4b2===0x191){_0x4bd4b2=0x190;}_0x1ae40a['status'](_0x4bd4b2)[_0xd29c('0x2f')](_0x232d2e[_0xd29c('0x37')][_0xd29c('0x74')]?{'message':_0xd29c('0x78'),'statusCode':_0x4b1eeb['statusCode']}:_0x4b1eeb);});};