Built motion from commit (unavailable).|2.5.23
[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 _0xfde2=['rawAttributes','fieldName','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','type','VIRTUAL','rows','show','options','find','create','body','params','findOne','FreshdeskConfiguration','filter','getConfigurations','addConfiguration','AccountId','Subjects','channel','getDescriptions','FreshdeskField','Descriptions','getFields','apiKey','remoteUri','slice','substring','lastIndexOf','GET','api/v2/ticket_fields','format','Basic\x20%s','%s:X','requester','agent','description','priority','group','source','ticket_type','company','remove','includes','default','label','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','client','http','request','then','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','error','code','message','info','result','catch','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','save','update','destroy','name','send','map','FreshdeskAccount'];(function(_0x2c6ce6,_0x4c7414){var _0x259c5b=function(_0x6b14ab){while(--_0x6b14ab){_0x2c6ce6['push'](_0x2c6ce6['shift']());}};_0x259c5b(++_0x4c7414);}(_0xfde2,0x137));var _0x2fde=function(_0x263d7d,_0x4fe765){_0x263d7d=_0x263d7d-0x0;var _0x510b6d=_0xfde2[_0x263d7d];return _0x510b6d;};'use strict';var pdf=require(_0x2fde('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x2fde('0x1'));var zipdir=require(_0x2fde('0x2'));var jsonpatch=require(_0x2fde('0x3'));var rp=require(_0x2fde('0x4'));var moment=require(_0x2fde('0x5'));var BPromise=require(_0x2fde('0x6'));var Mustache=require('mustache');var util=require(_0x2fde('0x7'));var path=require(_0x2fde('0x8'));var sox=require('sox');var csv=require(_0x2fde('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x2fde('0xa'));var squel=require(_0x2fde('0xb'));var crypto=require(_0x2fde('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x2fde('0x9'));var querystring=require(_0x2fde('0xd'));var Papa=require(_0x2fde('0xe'));var Redis=require(_0x2fde('0xf'));var authService=require(_0x2fde('0x10'));var qs=require(_0x2fde('0x11'));var as=require(_0x2fde('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2fde('0x13'))(_0x2fde('0x14'));var utils=require('../../config/utils');var config=require(_0x2fde('0x15'));var licenseUtil=require(_0x2fde('0x16'));var db=require(_0x2fde('0x17'))['db'];var integrations=require(_0x2fde('0x18'));var jayson=require('jayson/promise');var client=jayson[_0x2fde('0x19')][_0x2fde('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x46d9f4,_0x29fc0d,_0x3dea8e,_0x43b93d){return new BPromise(function(_0x4fab92,_0x52817c){var _0x2bf801=_0x43b93d||client;return _0x2bf801[_0x2fde('0x1b')](_0x46d9f4,_0x3dea8e)[_0x2fde('0x1c')](function(_0x324f4c){logger['info'](_0x2fde('0x1d'),_0x29fc0d,_0x2fde('0x1e'));logger[_0x2fde('0x1f')](_0x2fde('0x20'),_0x29fc0d,_0x2fde('0x1e'),JSON['stringify'](_0x324f4c));if(_0x324f4c[_0x2fde('0x21')]){if(_0x324f4c['error'][_0x2fde('0x22')]===0x1f4){logger[_0x2fde('0x21')](_0x2fde('0x1d'),_0x29fc0d,_0x324f4c[_0x2fde('0x21')]['message']);return _0x52817c(_0x324f4c[_0x2fde('0x21')][_0x2fde('0x23')]);}logger[_0x2fde('0x21')](_0x2fde('0x1d'),_0x29fc0d,_0x324f4c[_0x2fde('0x21')][_0x2fde('0x23')]);return _0x4fab92(_0x324f4c[_0x2fde('0x21')][_0x2fde('0x23')]);}else{logger[_0x2fde('0x24')]('FreshdeskAccount,\x20%s,\x20%s',_0x29fc0d,_0x2fde('0x1e'));_0x4fab92(_0x324f4c[_0x2fde('0x25')][_0x2fde('0x23')]);}})[_0x2fde('0x26')](function(_0x156f80){logger[_0x2fde('0x21')](_0x2fde('0x1d'),_0x29fc0d,_0x156f80);_0x52817c(_0x156f80);});});}function respondWithStatusCode(_0x257274,_0xd60550){_0xd60550=_0xd60550||0xcc;return function(_0x408bf3){if(_0x408bf3){return _0x257274[_0x2fde('0x27')](_0xd60550);}return _0x257274['status'](_0xd60550)['end']();};}function respondWithResult(_0xc09827,_0x587669){_0x587669=_0x587669||0xc8;return function(_0x407647){if(_0x407647){return _0xc09827[_0x2fde('0x28')](_0x587669)[_0x2fde('0x29')](_0x407647);}};}function respondWithFilteredResult(_0x1739a2,_0x1bcddf){return function(_0x1344bd){if(_0x1344bd){var _0x5ad73a=_0x1344bd[_0x2fde('0x2a')],_0x229bd9=_0x1bcddf[_0x2fde('0x2b')],_0x3c00a6=_0x1bcddf[_0x2fde('0x2b')]+_0x1bcddf[_0x2fde('0x2c')],_0x1b33db;if(_0x3c00a6>=_0x5ad73a){_0x3c00a6=_0x5ad73a;_0x1b33db=0xc8;}else{_0x1b33db=0xce;}_0x1739a2[_0x2fde('0x28')](_0x1b33db);return _0x1739a2[_0x2fde('0x2d')](_0x2fde('0x2e'),_0x229bd9+'-'+_0x3c00a6+'/'+_0x5ad73a)[_0x2fde('0x29')](_0x1344bd);}return null;};}function patchUpdates(_0x6bade5){return function(_0x2ca57d){try{jsonpatch[_0x2fde('0x2f')](_0x2ca57d,_0x6bade5,!![]);}catch(_0x2362dd){return BPromise['reject'](_0x2362dd);}return _0x2ca57d[_0x2fde('0x30')]();};}function saveUpdates(_0xc93f40,_0xfb4daa){return function(_0x4cf061){if(_0x4cf061){return _0x4cf061[_0x2fde('0x31')](_0xc93f40)[_0x2fde('0x1c')](function(_0x5d9776){return _0x5d9776;});}return null;};}function removeEntity(_0x1c8f64,_0x363acb){return function(_0x27297b){if(_0x27297b){return _0x27297b[_0x2fde('0x32')]()[_0x2fde('0x1c')](function(){_0x1c8f64[_0x2fde('0x28')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4cb161,_0x1e4489){return function(_0x4734c7){if(!_0x4734c7){_0x4cb161[_0x2fde('0x27')](0x194);}return _0x4734c7;};}function handleError(_0x543fd3,_0x4e8870){_0x4e8870=_0x4e8870||0x1f4;return function(_0x4b19fa){logger['error'](_0x4b19fa['stack']);if(_0x4b19fa[_0x2fde('0x33')]){delete _0x4b19fa[_0x2fde('0x33')];}_0x543fd3['status'](_0x4e8870)[_0x2fde('0x34')](_0x4b19fa);};}exports['index']=function(_0x39c945,_0x44d8ea){var _0x33c816={},_0x25a3d4={},_0x374bb3={'count':0x0,'rows':[]};var _0x4b3f82=_[_0x2fde('0x35')](db[_0x2fde('0x36')][_0x2fde('0x37')],function(_0x1d2cdf){return{'name':_0x1d2cdf[_0x2fde('0x38')],'type':_0x1d2cdf['type'][_0x2fde('0x39')]};});_0x25a3d4['model']=_[_0x2fde('0x35')](_0x4b3f82,_0x2fde('0x33'));_0x25a3d4[_0x2fde('0x3a')]=_[_0x2fde('0x3b')](_0x39c945[_0x2fde('0x3a')]);_0x25a3d4[_0x2fde('0x3c')]=_[_0x2fde('0x3d')](_0x25a3d4[_0x2fde('0x3e')],_0x25a3d4['query']);_0x33c816[_0x2fde('0x3f')]=_[_0x2fde('0x3d')](_0x25a3d4['model'],qs[_0x2fde('0x40')](_0x39c945[_0x2fde('0x3a')][_0x2fde('0x40')]));_0x33c816[_0x2fde('0x3f')]=_0x33c816[_0x2fde('0x3f')][_0x2fde('0x41')]?_0x33c816[_0x2fde('0x3f')]:_0x25a3d4[_0x2fde('0x3e')];if(!_0x39c945[_0x2fde('0x3a')][_0x2fde('0x42')](_0x2fde('0x43'))){_0x33c816[_0x2fde('0x2c')]=qs[_0x2fde('0x2c')](_0x39c945['query'][_0x2fde('0x2c')]);_0x33c816[_0x2fde('0x2b')]=qs[_0x2fde('0x2b')](_0x39c945[_0x2fde('0x3a')][_0x2fde('0x2b')]);}_0x33c816[_0x2fde('0x44')]=qs[_0x2fde('0x45')](_0x39c945[_0x2fde('0x3a')][_0x2fde('0x45')]);_0x33c816[_0x2fde('0x46')]=qs['filters'](_['pick'](_0x39c945[_0x2fde('0x3a')],_0x25a3d4[_0x2fde('0x3c')]),_0x4b3f82);if(_0x39c945[_0x2fde('0x3a')]['filter']){_0x33c816['where']=_[_0x2fde('0x47')](_0x33c816[_0x2fde('0x46')],{'$or':_[_0x2fde('0x35')](_0x4b3f82,function(_0x4bbf05){if(_0x4bbf05[_0x2fde('0x48')]!==_0x2fde('0x49')){var _0x58a2cd={};_0x58a2cd[_0x4bbf05[_0x2fde('0x33')]]={'$like':'%'+_0x39c945['query']['filter']+'%'};return _0x58a2cd;}})});}_0x33c816=_[_0x2fde('0x47')]({},_0x33c816,_0x39c945['options']);var _0x3c9ab9={'where':_0x33c816[_0x2fde('0x46')]};return db[_0x2fde('0x36')]['count'](_0x3c9ab9)[_0x2fde('0x1c')](function(_0x3d2c0d){_0x374bb3[_0x2fde('0x2a')]=_0x3d2c0d;if(_0x39c945[_0x2fde('0x3a')]['includeAll']){_0x33c816['include']=[{'all':!![]}];}return db['FreshdeskAccount']['findAll'](_0x33c816);})[_0x2fde('0x1c')](function(_0x3c517c){_0x374bb3[_0x2fde('0x4a')]=_0x3c517c;return _0x374bb3;})['then'](respondWithFilteredResult(_0x44d8ea,_0x33c816))[_0x2fde('0x26')](handleError(_0x44d8ea,null));};exports[_0x2fde('0x4b')]=function(_0x34cfbd,_0x24468c){var _0x3a41cf={'raw':![],'where':{'id':_0x34cfbd['params']['id']}},_0x4c825f={};_0x4c825f[_0x2fde('0x3e')]=_[_0x2fde('0x3b')](db[_0x2fde('0x36')]['rawAttributes']);_0x4c825f[_0x2fde('0x3a')]=_[_0x2fde('0x3b')](_0x34cfbd[_0x2fde('0x3a')]);_0x4c825f[_0x2fde('0x3c')]=_[_0x2fde('0x3d')](_0x4c825f['model'],_0x4c825f[_0x2fde('0x3a')]);_0x3a41cf[_0x2fde('0x3f')]=_[_0x2fde('0x3d')](_0x4c825f['model'],qs[_0x2fde('0x40')](_0x34cfbd[_0x2fde('0x3a')][_0x2fde('0x40')]));_0x3a41cf[_0x2fde('0x3f')]=_0x3a41cf[_0x2fde('0x3f')][_0x2fde('0x41')]?_0x3a41cf['attributes']:_0x4c825f[_0x2fde('0x3e')];if(_0x34cfbd[_0x2fde('0x3a')]['includeAll']){_0x3a41cf['include']=[{'all':!![]}];}_0x3a41cf=_[_0x2fde('0x47')]({},_0x3a41cf,_0x34cfbd[_0x2fde('0x4c')]);return db[_0x2fde('0x36')][_0x2fde('0x4d')](_0x3a41cf)[_0x2fde('0x1c')](handleEntityNotFound(_0x24468c,null))[_0x2fde('0x1c')](respondWithResult(_0x24468c,null))['catch'](handleError(_0x24468c,null));};exports[_0x2fde('0x4e')]=function(_0x123d14,_0x62d965){return db['FreshdeskAccount'][_0x2fde('0x4e')](_0x123d14[_0x2fde('0x4f')],{})[_0x2fde('0x1c')](respondWithResult(_0x62d965,0xc9))['catch'](handleError(_0x62d965,null));};exports[_0x2fde('0x31')]=function(_0x15a93e,_0x48175c){if(_0x15a93e[_0x2fde('0x4f')]['id']){delete _0x15a93e['body']['id'];}return db[_0x2fde('0x36')][_0x2fde('0x4d')]({'where':{'id':_0x15a93e[_0x2fde('0x50')]['id']}})[_0x2fde('0x1c')](handleEntityNotFound(_0x48175c,null))[_0x2fde('0x1c')](saveUpdates(_0x15a93e['body'],null))['then'](respondWithResult(_0x48175c,null))['catch'](handleError(_0x48175c,null));};exports[_0x2fde('0x32')]=function(_0x18f6a1,_0x53f2ca){return db[_0x2fde('0x36')]['find']({'where':{'id':_0x18f6a1[_0x2fde('0x50')]['id']}})[_0x2fde('0x1c')](handleEntityNotFound(_0x53f2ca,null))['then'](removeEntity(_0x53f2ca,null))[_0x2fde('0x26')](handleError(_0x53f2ca,null));};exports['getConfigurations']=function(_0xeb4a14,_0x46d043,_0x7b41f7){var _0x1bd64a={};var _0x4ea5d2={};var _0x3bcb24;var _0x49165c;return db[_0x2fde('0x36')][_0x2fde('0x51')]({'where':{'id':_0xeb4a14[_0x2fde('0x50')]['id']}})[_0x2fde('0x1c')](handleEntityNotFound(_0x46d043,null))[_0x2fde('0x1c')](function(_0x5d5aa4){if(_0x5d5aa4){_0x3bcb24=_0x5d5aa4;_0x4ea5d2[_0x2fde('0x3e')]=_[_0x2fde('0x3b')](db[_0x2fde('0x52')][_0x2fde('0x37')]);_0x4ea5d2['query']=_['keys'](_0xeb4a14[_0x2fde('0x3a')]);_0x4ea5d2['filters']=_[_0x2fde('0x3d')](_0x4ea5d2[_0x2fde('0x3e')],_0x4ea5d2[_0x2fde('0x3a')]);_0x1bd64a[_0x2fde('0x3f')]=_[_0x2fde('0x3d')](_0x4ea5d2[_0x2fde('0x3e')],qs[_0x2fde('0x40')](_0xeb4a14[_0x2fde('0x3a')][_0x2fde('0x40')]));_0x1bd64a[_0x2fde('0x3f')]=_0x1bd64a[_0x2fde('0x3f')][_0x2fde('0x41')]?_0x1bd64a[_0x2fde('0x3f')]:_0x4ea5d2[_0x2fde('0x3e')];_0x1bd64a[_0x2fde('0x44')]=qs['sort'](_0xeb4a14['query']['sort']);_0x1bd64a[_0x2fde('0x46')]=qs['filters'](_['pick'](_0xeb4a14[_0x2fde('0x3a')],_0x4ea5d2[_0x2fde('0x3c')]));if(_0xeb4a14[_0x2fde('0x3a')][_0x2fde('0x53')]){_0x1bd64a[_0x2fde('0x46')]=_['merge'](_0x1bd64a[_0x2fde('0x46')],{'$or':_[_0x2fde('0x35')](_0x1bd64a['attributes'],function(_0x5830af){var _0x4e9610={};_0x4e9610[_0x5830af]={'$like':'%'+_0xeb4a14[_0x2fde('0x3a')][_0x2fde('0x53')]+'%'};return _0x4e9610;})});}_0x1bd64a=_['merge']({},_0x1bd64a,_0xeb4a14['options']);return _0x3bcb24[_0x2fde('0x54')](_0x1bd64a);}})[_0x2fde('0x1c')](function(_0x307ad9){if(_0x307ad9){_0x49165c=_0x307ad9[_0x2fde('0x41')];if(!_0xeb4a14[_0x2fde('0x3a')]['hasOwnProperty'](_0x2fde('0x43'))){_0x1bd64a[_0x2fde('0x2c')]=qs[_0x2fde('0x2c')](_0xeb4a14[_0x2fde('0x3a')][_0x2fde('0x2c')]);_0x1bd64a[_0x2fde('0x2b')]=qs[_0x2fde('0x2b')](_0xeb4a14[_0x2fde('0x3a')]['offset']);}return _0x3bcb24[_0x2fde('0x54')](_0x1bd64a);}})[_0x2fde('0x1c')](function(_0x587746){if(_0x587746){return _0x587746?{'count':_0x49165c,'rows':_0x587746}:null;}})['then'](respondWithResult(_0x46d043,null))[_0x2fde('0x26')](handleError(_0x46d043,null));};exports[_0x2fde('0x55')]=function(_0x14ba6e,_0x245c1a,_0x3c7fc0){if(_0x14ba6e['body']['id']){delete _0x14ba6e[_0x2fde('0x4f')]['id'];}return db['FreshdeskAccount']['findOne']({'where':{'id':_0x14ba6e[_0x2fde('0x50')]['id']}})[_0x2fde('0x1c')](handleEntityNotFound(_0x245c1a,null))[_0x2fde('0x1c')](function(_0x4084d0){if(_0x4084d0){_0x14ba6e[_0x2fde('0x4f')][_0x2fde('0x56')]=_0x4084d0['id'];_0x14ba6e[_0x2fde('0x4f')][_0x2fde('0x57')]=integrations['getSubjects'](_0x14ba6e[_0x2fde('0x4f')][_0x2fde('0x58')],_0x14ba6e[_0x2fde('0x4f')]['type']);_0x14ba6e['body']['Descriptions']=integrations[_0x2fde('0x59')](_0x14ba6e['body'][_0x2fde('0x58')],_0x14ba6e[_0x2fde('0x4f')][_0x2fde('0x48')]);return db['FreshdeskConfiguration'][_0x2fde('0x4e')](_0x14ba6e[_0x2fde('0x4f')],{'include':[{'model':db[_0x2fde('0x5a')],'as':_0x2fde('0x57')},{'model':db['FreshdeskField'],'as':_0x2fde('0x5b')}]});}return null;})[_0x2fde('0x1c')](respondWithResult(_0x245c1a,null))['catch'](handleError(_0x245c1a,null));};exports[_0x2fde('0x5c')]=function(_0x4a8a8a,_0xc8fffc,_0x10fec0){var _0x423d9d='';return db[_0x2fde('0x36')][_0x2fde('0x51')]({'where':{'id':_0x4a8a8a['params']['id']},'attributes':['id','remoteUri',_0x2fde('0x5d')]})[_0x2fde('0x1c')](handleEntityNotFound(_0xc8fffc,null))['then'](function(_0x10816c){if(_0x10816c){_0x423d9d=_0x10816c[_0x2fde('0x5e')];var _0x538b39=_0x423d9d[_0x2fde('0x5f')](-0x1);if(_0x538b39==='/'){_0x423d9d=_0x423d9d[_0x2fde('0x60')](0x0,_0x423d9d[_0x2fde('0x61')](_0x538b39));}return rp({'method':_0x2fde('0x62'),'uri':util['format']('%s/%s',_0x423d9d,_0x2fde('0x63')),'headers':{'Authorization':util[_0x2fde('0x64')](_0x2fde('0x65'),new Buffer(util['format'](_0x2fde('0x66'),_0x10816c[_0x2fde('0x5d')]))['toString']('base64'))},'json':!![]});}})['then'](function(_0x33d69d){if(_0x33d69d){var _0x3511d4=[_0x2fde('0x67'),'subject',_0x2fde('0x68'),_0x2fde('0x69'),_0x2fde('0x28'),_0x2fde('0x6a'),_0x2fde('0x6b'),_0x2fde('0x6c'),_0x2fde('0x6d'),_0x2fde('0x6b'),_0x2fde('0x6e')];_[_0x2fde('0x6f')](_0x33d69d,function(_0x4f21dd){return _0x3511d4[_0x2fde('0x70')](_0x4f21dd[_0x2fde('0x33')])||!_0x4f21dd[_0x2fde('0x71')]&&_0x4f21dd[_0x2fde('0x48')]!=='custom_text'&&_0x4f21dd[_0x2fde('0x48')]!=='custom_dropdown';});return{'count':_0x33d69d[_0x2fde('0x41')],'rows':_[_0x2fde('0x35')](_0x33d69d,function(_0x420efe){return{'id':_0x420efe[_0x2fde('0x33')],'name':_0x420efe[_0x2fde('0x72')],'custom':!_0x420efe[_0x2fde('0x71')],'options':_0x420efe[_0x2fde('0x73')]?_[_0x2fde('0x35')](_0x420efe['choices'],function(_0x2d2dbe){return{'name':_[_0x2fde('0x74')](_0x2d2dbe),'value':_0x2d2dbe};}):[]};})};}})['then'](respondWithResult(_0xc8fffc,null))[_0x2fde('0x26')](function(_0xa35b72){var _0x2cfa1b=_0x4a8a8a[_0x2fde('0x3a')][_0x2fde('0x75')]?0x1f4:_0xa35b72[_0x2fde('0x76')]||0x1f4;logger['error'](_0x2fde('0x77'),_0x2fde('0x5c'),_0x2cfa1b,JSON[_0x2fde('0x78')](_0xa35b72));delete _0xa35b72[_0x2fde('0x33')];if(_0x2cfa1b===0x191){_0x2cfa1b=0x190;}_0xc8fffc[_0x2fde('0x28')](_0x2cfa1b)[_0x2fde('0x34')](_0x4a8a8a['query'][_0x2fde('0x75')]?{'message':_0x2fde('0x79'),'statusCode':_0xa35b72[_0x2fde('0x76')]}:_0xa35b72);});};