Built motion from commit b7e79837.|2.6.29
[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 _0x83e1=['lodash','squel','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','update','then','destroy','error','name','send','index','map','FreshdeskAccount','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','where','filter','merge','type','VIRTUAL','include','rows','params','length','includeAll','options','find','create','body','catch','findOne','FreshdeskConfiguration','rawAttributes','sort','pick','getConfigurations','addConfiguration','Subjects','getSubjects','channel','getDescriptions','FreshdeskField','Descriptions','getFields','remoteUri','slice','substring','lastIndexOf','GET','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','apiKey','base64','subject','agent','description','priority','group','source','company','remove','includes','default','custom_text','label','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','rimraf','fast-json-patch','moment','util','path','fs-extra'];(function(_0x26aed8,_0x54a5f4){var _0x49092c=function(_0x48799b){while(--_0x48799b){_0x26aed8['push'](_0x26aed8['shift']());}};_0x49092c(++_0x54a5f4);}(_0x83e1,0x1ad));var _0x183e=function(_0x237d67,_0x4ff2db){_0x237d67=_0x237d67-0x0;var _0x292dfb=_0x83e1[_0x237d67];return _0x292dfb;};'use strict';var emlformat=require(_0x183e('0x0'));var rimraf=require(_0x183e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x183e('0x2'));var rp=require('request-promise');var moment=require(_0x183e('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x183e('0x4'));var path=require(_0x183e('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x183e('0x6'));var _=require(_0x183e('0x7'));var squel=require(_0x183e('0x8'));var crypto=require('crypto');var jsforce=require(_0x183e('0x9'));var deskjs=require(_0x183e('0xa'));var toCsv=require(_0x183e('0xb'));var querystring=require('querystring');var Papa=require(_0x183e('0xc'));var Redis=require(_0x183e('0xd'));var authService=require(_0x183e('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x183e('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x183e('0x10'))(_0x183e('0x11'));var utils=require(_0x183e('0x12'));var config=require(_0x183e('0x13'));var licenseUtil=require(_0x183e('0x14'));var db=require(_0x183e('0x15'))['db'];var integrations=require(_0x183e('0x16'));function respondWithStatusCode(_0x5b86b3,_0x53e576){_0x53e576=_0x53e576||0xcc;return function(_0x579586){if(_0x579586){return _0x5b86b3[_0x183e('0x17')](_0x53e576);}return _0x5b86b3[_0x183e('0x18')](_0x53e576)[_0x183e('0x19')]();};}function respondWithResult(_0x5d4941,_0x140a70){_0x140a70=_0x140a70||0xc8;return function(_0x17d890){if(_0x17d890){return _0x5d4941[_0x183e('0x18')](_0x140a70)['json'](_0x17d890);}};}function respondWithFilteredResult(_0x8f4af8,_0x35badd){return function(_0x3faadf){if(_0x3faadf){var _0xdbea2c=typeof _0x35badd[_0x183e('0x1a')]===_0x183e('0x1b')&&typeof _0x35badd[_0x183e('0x1c')]===_0x183e('0x1b');var _0x56df78=_0x3faadf[_0x183e('0x1d')];var _0x3adea4=_0xdbea2c?0x0:_0x35badd[_0x183e('0x1a')];var _0x480ce8=_0xdbea2c?_0x3faadf[_0x183e('0x1d')]:_0x35badd[_0x183e('0x1a')]+_0x35badd['limit'];var _0x2a0c76;if(_0x480ce8>=_0x56df78){_0x480ce8=_0x56df78;_0x2a0c76=0xc8;}else{_0x2a0c76=0xce;}_0x8f4af8[_0x183e('0x18')](_0x2a0c76);return _0x8f4af8[_0x183e('0x1e')](_0x183e('0x1f'),_0x3adea4+'-'+_0x480ce8+'/'+_0x56df78)['json'](_0x3faadf);}return null;};}function patchUpdates(_0x4d8102){return function(_0x4a49cc){try{jsonpatch['apply'](_0x4a49cc,_0x4d8102,!![]);}catch(_0x26d29f){return BPromise['reject'](_0x26d29f);}return _0x4a49cc['save']();};}function saveUpdates(_0xc96e61,_0x34a128){return function(_0x455dab){if(_0x455dab){return _0x455dab[_0x183e('0x20')](_0xc96e61)[_0x183e('0x21')](function(_0x4ea291){return _0x4ea291;});}return null;};}function removeEntity(_0x223351,_0x5d6b29){return function(_0x41f74f){if(_0x41f74f){return _0x41f74f[_0x183e('0x22')]()[_0x183e('0x21')](function(){_0x223351[_0x183e('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5eda06,_0x7b9a98){return function(_0x11aace){if(!_0x11aace){_0x5eda06['sendStatus'](0x194);}return _0x11aace;};}function handleError(_0x5457ed,_0x14522f){_0x14522f=_0x14522f||0x1f4;return function(_0x267fff){logger[_0x183e('0x23')](_0x267fff['stack']);if(_0x267fff[_0x183e('0x24')]){delete _0x267fff[_0x183e('0x24')];}_0x5457ed[_0x183e('0x18')](_0x14522f)[_0x183e('0x25')](_0x267fff);};}exports[_0x183e('0x26')]=function(_0x1f8603,_0x2f9657){var _0x1bc636={},_0x4a1d9b={},_0x789776={'count':0x0,'rows':[]};var _0x57fef0=_[_0x183e('0x27')](db[_0x183e('0x28')]['rawAttributes'],function(_0x21db26){return{'name':_0x21db26['fieldName'],'type':_0x21db26['type'][_0x183e('0x29')]};});_0x4a1d9b['model']=_['map'](_0x57fef0,_0x183e('0x24'));_0x4a1d9b[_0x183e('0x2a')]=_[_0x183e('0x2b')](_0x1f8603[_0x183e('0x2a')]);_0x4a1d9b[_0x183e('0x2c')]=_[_0x183e('0x2d')](_0x4a1d9b[_0x183e('0x2e')],_0x4a1d9b['query']);_0x1bc636[_0x183e('0x2f')]=_['intersection'](_0x4a1d9b[_0x183e('0x2e')],qs[_0x183e('0x30')](_0x1f8603['query'][_0x183e('0x30')]));_0x1bc636[_0x183e('0x2f')]=_0x1bc636['attributes']['length']?_0x1bc636[_0x183e('0x2f')]:_0x4a1d9b[_0x183e('0x2e')];if(!_0x1f8603[_0x183e('0x2a')][_0x183e('0x31')](_0x183e('0x32'))){_0x1bc636[_0x183e('0x1c')]=qs['limit'](_0x1f8603[_0x183e('0x2a')]['limit']);_0x1bc636['offset']=qs[_0x183e('0x1a')](_0x1f8603[_0x183e('0x2a')][_0x183e('0x1a')]);}_0x1bc636['order']=qs['sort'](_0x1f8603[_0x183e('0x2a')]['sort']);_0x1bc636[_0x183e('0x33')]=qs[_0x183e('0x2c')](_['pick'](_0x1f8603[_0x183e('0x2a')],_0x4a1d9b[_0x183e('0x2c')]),_0x57fef0);if(_0x1f8603[_0x183e('0x2a')][_0x183e('0x34')]){_0x1bc636[_0x183e('0x33')]=_[_0x183e('0x35')](_0x1bc636[_0x183e('0x33')],{'$or':_[_0x183e('0x27')](_0x57fef0,function(_0x4a8d64){if(_0x4a8d64[_0x183e('0x36')]!==_0x183e('0x37')){var _0x5f2859={};_0x5f2859[_0x4a8d64['name']]={'$like':'%'+_0x1f8603[_0x183e('0x2a')][_0x183e('0x34')]+'%'};return _0x5f2859;}})});}_0x1bc636=_[_0x183e('0x35')]({},_0x1bc636,_0x1f8603['options']);var _0x46f16c={'where':_0x1bc636[_0x183e('0x33')]};return db['FreshdeskAccount'][_0x183e('0x1d')](_0x46f16c)[_0x183e('0x21')](function(_0xc91f94){_0x789776[_0x183e('0x1d')]=_0xc91f94;if(_0x1f8603[_0x183e('0x2a')]['includeAll']){_0x1bc636[_0x183e('0x38')]=[{'all':!![]}];}return db['FreshdeskAccount']['findAll'](_0x1bc636);})[_0x183e('0x21')](function(_0x32e693){_0x789776[_0x183e('0x39')]=_0x32e693;return _0x789776;})['then'](respondWithFilteredResult(_0x2f9657,_0x1bc636))['catch'](handleError(_0x2f9657,null));};exports['show']=function(_0x369abe,_0x347ba4){var _0x503c61={'raw':![],'where':{'id':_0x369abe[_0x183e('0x3a')]['id']}},_0x33547e={};_0x33547e[_0x183e('0x2e')]=_[_0x183e('0x2b')](db[_0x183e('0x28')]['rawAttributes']);_0x33547e[_0x183e('0x2a')]=_['keys'](_0x369abe[_0x183e('0x2a')]);_0x33547e[_0x183e('0x2c')]=_[_0x183e('0x2d')](_0x33547e[_0x183e('0x2e')],_0x33547e[_0x183e('0x2a')]);_0x503c61[_0x183e('0x2f')]=_[_0x183e('0x2d')](_0x33547e[_0x183e('0x2e')],qs[_0x183e('0x30')](_0x369abe[_0x183e('0x2a')][_0x183e('0x30')]));_0x503c61[_0x183e('0x2f')]=_0x503c61[_0x183e('0x2f')][_0x183e('0x3b')]?_0x503c61[_0x183e('0x2f')]:_0x33547e['model'];if(_0x369abe['query'][_0x183e('0x3c')]){_0x503c61[_0x183e('0x38')]=[{'all':!![]}];}_0x503c61=_[_0x183e('0x35')]({},_0x503c61,_0x369abe[_0x183e('0x3d')]);return db[_0x183e('0x28')][_0x183e('0x3e')](_0x503c61)[_0x183e('0x21')](handleEntityNotFound(_0x347ba4,null))[_0x183e('0x21')](respondWithResult(_0x347ba4,null))['catch'](handleError(_0x347ba4,null));};exports[_0x183e('0x3f')]=function(_0x5271ed,_0xb215ee){return db['FreshdeskAccount']['create'](_0x5271ed[_0x183e('0x40')],{})[_0x183e('0x21')](respondWithResult(_0xb215ee,0xc9))[_0x183e('0x41')](handleError(_0xb215ee,null));};exports[_0x183e('0x20')]=function(_0x12e072,_0x2ecc6d){if(_0x12e072[_0x183e('0x40')]['id']){delete _0x12e072[_0x183e('0x40')]['id'];}return db[_0x183e('0x28')][_0x183e('0x3e')]({'where':{'id':_0x12e072[_0x183e('0x3a')]['id']}})[_0x183e('0x21')](handleEntityNotFound(_0x2ecc6d,null))[_0x183e('0x21')](saveUpdates(_0x12e072[_0x183e('0x40')],null))[_0x183e('0x21')](respondWithResult(_0x2ecc6d,null))[_0x183e('0x41')](handleError(_0x2ecc6d,null));};exports[_0x183e('0x22')]=function(_0x4fb219,_0x4bf513){return db['FreshdeskAccount'][_0x183e('0x3e')]({'where':{'id':_0x4fb219['params']['id']}})[_0x183e('0x21')](handleEntityNotFound(_0x4bf513,null))['then'](removeEntity(_0x4bf513,null))[_0x183e('0x41')](handleError(_0x4bf513,null));};exports['getConfigurations']=function(_0x4744d6,_0x2c9068,_0x9d1ca5){var _0x34e60b={};var _0x3af772={};var _0x5b2cba;var _0x4012c2;return db[_0x183e('0x28')][_0x183e('0x42')]({'where':{'id':_0x4744d6[_0x183e('0x3a')]['id']}})[_0x183e('0x21')](handleEntityNotFound(_0x2c9068,null))[_0x183e('0x21')](function(_0x2218d0){if(_0x2218d0){_0x5b2cba=_0x2218d0;_0x3af772[_0x183e('0x2e')]=_['keys'](db[_0x183e('0x43')][_0x183e('0x44')]);_0x3af772[_0x183e('0x2a')]=_[_0x183e('0x2b')](_0x4744d6[_0x183e('0x2a')]);_0x3af772[_0x183e('0x2c')]=_[_0x183e('0x2d')](_0x3af772[_0x183e('0x2e')],_0x3af772[_0x183e('0x2a')]);_0x34e60b['attributes']=_[_0x183e('0x2d')](_0x3af772[_0x183e('0x2e')],qs[_0x183e('0x30')](_0x4744d6['query']['fields']));_0x34e60b['attributes']=_0x34e60b[_0x183e('0x2f')][_0x183e('0x3b')]?_0x34e60b[_0x183e('0x2f')]:_0x3af772['model'];_0x34e60b['order']=qs[_0x183e('0x45')](_0x4744d6[_0x183e('0x2a')][_0x183e('0x45')]);_0x34e60b[_0x183e('0x33')]=qs['filters'](_[_0x183e('0x46')](_0x4744d6[_0x183e('0x2a')],_0x3af772[_0x183e('0x2c')]));if(_0x4744d6[_0x183e('0x2a')]['filter']){_0x34e60b[_0x183e('0x33')]=_[_0x183e('0x35')](_0x34e60b[_0x183e('0x33')],{'$or':_[_0x183e('0x27')](_0x34e60b[_0x183e('0x2f')],function(_0x3952fa){var _0x44d5c6={};_0x44d5c6[_0x3952fa]={'$like':'%'+_0x4744d6[_0x183e('0x2a')][_0x183e('0x34')]+'%'};return _0x44d5c6;})});}_0x34e60b=_[_0x183e('0x35')]({},_0x34e60b,_0x4744d6[_0x183e('0x3d')]);return _0x5b2cba[_0x183e('0x47')](_0x34e60b);}})[_0x183e('0x21')](function(_0x24ad2c){if(_0x24ad2c){_0x4012c2=_0x24ad2c[_0x183e('0x3b')];if(!_0x4744d6[_0x183e('0x2a')]['hasOwnProperty'](_0x183e('0x32'))){_0x34e60b[_0x183e('0x1c')]=qs['limit'](_0x4744d6['query'][_0x183e('0x1c')]);_0x34e60b['offset']=qs[_0x183e('0x1a')](_0x4744d6[_0x183e('0x2a')][_0x183e('0x1a')]);}return _0x5b2cba[_0x183e('0x47')](_0x34e60b);}})[_0x183e('0x21')](function(_0x286e42){if(_0x286e42){return _0x286e42?{'count':_0x4012c2,'rows':_0x286e42}:null;}})[_0x183e('0x21')](respondWithResult(_0x2c9068,null))[_0x183e('0x41')](handleError(_0x2c9068,null));};exports[_0x183e('0x48')]=function(_0x581f80,_0x3d973a,_0x503b0a){if(_0x581f80['body']['id']){delete _0x581f80[_0x183e('0x40')]['id'];}return db[_0x183e('0x28')][_0x183e('0x42')]({'where':{'id':_0x581f80[_0x183e('0x3a')]['id']}})[_0x183e('0x21')](handleEntityNotFound(_0x3d973a,null))[_0x183e('0x21')](function(_0x5470d7){if(_0x5470d7){_0x581f80[_0x183e('0x40')]['AccountId']=_0x5470d7['id'];_0x581f80[_0x183e('0x40')][_0x183e('0x49')]=integrations[_0x183e('0x4a')](_0x581f80[_0x183e('0x40')][_0x183e('0x4b')],_0x581f80['body'][_0x183e('0x36')]);_0x581f80[_0x183e('0x40')]['Descriptions']=integrations[_0x183e('0x4c')](_0x581f80[_0x183e('0x40')][_0x183e('0x4b')],_0x581f80['body'][_0x183e('0x36')]);return db[_0x183e('0x43')][_0x183e('0x3f')](_0x581f80[_0x183e('0x40')],{'include':[{'model':db[_0x183e('0x4d')],'as':_0x183e('0x49')},{'model':db[_0x183e('0x4d')],'as':_0x183e('0x4e')}]});}return null;})[_0x183e('0x21')](respondWithResult(_0x3d973a,null))[_0x183e('0x41')](handleError(_0x3d973a,null));};exports[_0x183e('0x4f')]=function(_0x292645,_0x47e4ec,_0x226149){var _0x5b4ae5='';return db[_0x183e('0x28')][_0x183e('0x42')]({'where':{'id':_0x292645[_0x183e('0x3a')]['id']},'attributes':['id',_0x183e('0x50'),'apiKey']})[_0x183e('0x21')](handleEntityNotFound(_0x47e4ec,null))[_0x183e('0x21')](function(_0x1e66ed){if(_0x1e66ed){_0x5b4ae5=_0x1e66ed[_0x183e('0x50')];var _0x3b41c3=_0x5b4ae5[_0x183e('0x51')](-0x1);if(_0x3b41c3==='/'){_0x5b4ae5=_0x5b4ae5[_0x183e('0x52')](0x0,_0x5b4ae5[_0x183e('0x53')](_0x3b41c3));}return rp({'method':_0x183e('0x54'),'uri':util[_0x183e('0x55')](_0x183e('0x56'),_0x5b4ae5,_0x183e('0x57')),'headers':{'Authorization':util[_0x183e('0x55')](_0x183e('0x58'),new Buffer(util[_0x183e('0x55')]('%s:X',_0x1e66ed[_0x183e('0x59')]))['toString'](_0x183e('0x5a')))},'json':!![]});}})[_0x183e('0x21')](function(_0x1f18a7){if(_0x1f18a7){var _0x2de2ed=['requester',_0x183e('0x5b'),_0x183e('0x5c'),_0x183e('0x5d'),_0x183e('0x18'),_0x183e('0x5e'),_0x183e('0x5f'),_0x183e('0x60'),'ticket_type',_0x183e('0x5f'),_0x183e('0x61')];_[_0x183e('0x62')](_0x1f18a7,function(_0x42193e){return _0x2de2ed[_0x183e('0x63')](_0x42193e[_0x183e('0x24')])||!_0x42193e[_0x183e('0x64')]&&_0x42193e['type']!==_0x183e('0x65')&&_0x42193e[_0x183e('0x36')]!=='custom_dropdown';});return{'count':_0x1f18a7['length'],'rows':_[_0x183e('0x27')](_0x1f18a7,function(_0x2d77f3){return{'id':_0x2d77f3[_0x183e('0x24')],'name':_0x2d77f3[_0x183e('0x66')],'custom':!_0x2d77f3[_0x183e('0x64')],'options':_0x2d77f3['choices']?_['map'](_0x2d77f3[_0x183e('0x67')],function(_0x18ef05){return{'name':_[_0x183e('0x68')](_0x18ef05),'value':_0x18ef05};}):[]};})};}})[_0x183e('0x21')](respondWithResult(_0x47e4ec,null))[_0x183e('0x41')](function(_0x1be377){var _0x2d7d1e=_0x292645['query'][_0x183e('0x69')]?0x1f4:_0x1be377[_0x183e('0x6a')]||0x1f4;logger['error'](_0x183e('0x6b'),_0x183e('0x4f'),_0x2d7d1e,JSON[_0x183e('0x6c')](_0x1be377));delete _0x1be377[_0x183e('0x24')];if(_0x2d7d1e===0x191){_0x2d7d1e=0x190;}_0x47e4ec[_0x183e('0x18')](_0x2d7d1e)['send'](_0x292645[_0x183e('0x2a')][_0x183e('0x69')]?{'message':'Wrong\x20credentials','statusCode':_0x1be377[_0x183e('0x6a')]}:_0x1be377);});};