Built motion from commit (unavailable).|2.5.9
[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 _0x3fd7=['mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','request','then','info','FreshdeskAccount,\x20%s,\x20%s','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','reject','save','update','destroy','stack','name','send','index','FreshdeskAccount','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','includeAll','include','findAll','rows','show','params','keys','fields','length','merge','find','create','body','getConfigurations','FreshdeskConfiguration','order','map','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskField','getFields','remoteUri','apiKey','slice','lastIndexOf','GET','format','api/v2/ticket_fields','Basic\x20%s','%s:X','toString','requester','subject','priority','group','ticket_type','company','remove','includes','default','custom_text','custom_dropdown','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','html-pdf','rimraf','zip-dir','fast-json-patch','moment','bluebird'];(function(_0x5bb437,_0x8ba96c){var _0x3e24a3=function(_0x23e4db){while(--_0x23e4db){_0x5bb437['push'](_0x5bb437['shift']());}};_0x3e24a3(++_0x8ba96c);}(_0x3fd7,0x1ee));var _0x73fd=function(_0x1ff3e6,_0x17402e){_0x1ff3e6=_0x1ff3e6-0x0;var _0x411b05=_0x3fd7[_0x1ff3e6];return _0x411b05;};'use strict';var pdf=require(_0x73fd('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x73fd('0x1'));var zipdir=require(_0x73fd('0x2'));var jsonpatch=require(_0x73fd('0x3'));var rp=require('request-promise');var moment=require(_0x73fd('0x4'));var BPromise=require(_0x73fd('0x5'));var Mustache=require(_0x73fd('0x6'));var util=require(_0x73fd('0x7'));var path=require('path');var sox=require(_0x73fd('0x8'));var csv=require(_0x73fd('0x9'));var ejs=require(_0x73fd('0xa'));var fs=require('fs');var _=require(_0x73fd('0xb'));var squel=require('squel');var crypto=require(_0x73fd('0xc'));var jsforce=require(_0x73fd('0xd'));var deskjs=require(_0x73fd('0xe'));var toCsv=require(_0x73fd('0x9'));var querystring=require(_0x73fd('0xf'));var Papa=require(_0x73fd('0x10'));var Redis=require(_0x73fd('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x73fd('0x12'));var hardwareService=require(_0x73fd('0x13'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x73fd('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x73fd('0x15'))['db'];var integrations=require(_0x73fd('0x16'));var jayson=require(_0x73fd('0x17'));var client=jayson[_0x73fd('0x18')]['http']({'port':0x232a});function respondWithRpcPromise(_0x519bca,_0x3f65b1,_0x2db0c1,_0x99360e){return new BPromise(function(_0xb81d04,_0x12b5b9){var _0x2e6574=_0x99360e||client;return _0x2e6574[_0x73fd('0x19')](_0x519bca,_0x2db0c1)[_0x73fd('0x1a')](function(_0x447f2c){logger[_0x73fd('0x1b')](_0x73fd('0x1c'),_0x3f65b1,'request\x20sent');logger[_0x73fd('0x1d')](_0x73fd('0x1e'),_0x3f65b1,'request\x20sent',JSON[_0x73fd('0x1f')](_0x447f2c));if(_0x447f2c[_0x73fd('0x20')]){if(_0x447f2c['error'][_0x73fd('0x21')]===0x1f4){logger[_0x73fd('0x20')](_0x73fd('0x1c'),_0x3f65b1,_0x447f2c[_0x73fd('0x20')][_0x73fd('0x22')]);return _0x12b5b9(_0x447f2c[_0x73fd('0x20')]['message']);}logger['error'](_0x73fd('0x1c'),_0x3f65b1,_0x447f2c[_0x73fd('0x20')]['message']);return _0xb81d04(_0x447f2c[_0x73fd('0x20')][_0x73fd('0x22')]);}else{logger['info'](_0x73fd('0x1c'),_0x3f65b1,'request\x20sent');_0xb81d04(_0x447f2c[_0x73fd('0x23')]['message']);}})[_0x73fd('0x24')](function(_0x2ec92f){logger[_0x73fd('0x20')](_0x73fd('0x1c'),_0x3f65b1,_0x2ec92f);_0x12b5b9(_0x2ec92f);});});}function respondWithStatusCode(_0x8dfba2,_0x5b83da){_0x5b83da=_0x5b83da||0xcc;return function(_0x23d5e0){if(_0x23d5e0){return _0x8dfba2[_0x73fd('0x25')](_0x5b83da);}return _0x8dfba2[_0x73fd('0x26')](_0x5b83da)[_0x73fd('0x27')]();};}function respondWithResult(_0x1e489f,_0x3383d5){_0x3383d5=_0x3383d5||0xc8;return function(_0x14b628){if(_0x14b628){return _0x1e489f[_0x73fd('0x26')](_0x3383d5)[_0x73fd('0x28')](_0x14b628);}};}function respondWithFilteredResult(_0x579e1f,_0x592c42){return function(_0x32ffdb){if(_0x32ffdb){var _0x2d45e6=_0x32ffdb[_0x73fd('0x29')],_0x9f39cb=_0x592c42[_0x73fd('0x2a')],_0x51a09c=_0x592c42[_0x73fd('0x2a')]+_0x592c42[_0x73fd('0x2b')],_0x3dd955;if(_0x51a09c>=_0x2d45e6){_0x51a09c=_0x2d45e6;_0x3dd955=0xc8;}else{_0x3dd955=0xce;}_0x579e1f['status'](_0x3dd955);return _0x579e1f[_0x73fd('0x2c')](_0x73fd('0x2d'),_0x9f39cb+'-'+_0x51a09c+'/'+_0x2d45e6)[_0x73fd('0x28')](_0x32ffdb);}return null;};}function patchUpdates(_0x10fe48){return function(_0x5eb678){try{jsonpatch['apply'](_0x5eb678,_0x10fe48,!![]);}catch(_0x403bd5){return BPromise[_0x73fd('0x2e')](_0x403bd5);}return _0x5eb678[_0x73fd('0x2f')]();};}function saveUpdates(_0x32ea50,_0x15ba1e){return function(_0x21d5ef){if(_0x21d5ef){return _0x21d5ef[_0x73fd('0x30')](_0x32ea50)['then'](function(_0x48a6d2){return _0x48a6d2;});}return null;};}function removeEntity(_0x4b632e,_0xe60bc0){return function(_0x25c875){if(_0x25c875){return _0x25c875[_0x73fd('0x31')]()[_0x73fd('0x1a')](function(){_0x4b632e['status'](0xcc)[_0x73fd('0x27')]();});}};}function handleEntityNotFound(_0x2aca08,_0x177204){return function(_0x36b7aa){if(!_0x36b7aa){_0x2aca08[_0x73fd('0x25')](0x194);}return _0x36b7aa;};}function handleError(_0xab2593,_0x1070a8){_0x1070a8=_0x1070a8||0x1f4;return function(_0x2a1f1e){logger[_0x73fd('0x20')](_0x2a1f1e[_0x73fd('0x32')]);if(_0x2a1f1e[_0x73fd('0x33')]){delete _0x2a1f1e[_0x73fd('0x33')];}_0xab2593[_0x73fd('0x26')](_0x1070a8)[_0x73fd('0x34')](_0x2a1f1e);};}exports[_0x73fd('0x35')]=function(_0x11b7d1,_0x445ae5){var _0x5d456f={},_0x3ff4ad={},_0x4c0438={'count':0x0,'rows':[]};var _0xac30c1=_['map'](db[_0x73fd('0x36')][_0x73fd('0x37')],function(_0xb2f4f1){return{'name':_0xb2f4f1[_0x73fd('0x38')],'type':_0xb2f4f1[_0x73fd('0x39')][_0x73fd('0x3a')]};});_0x3ff4ad[_0x73fd('0x3b')]=_['map'](_0xac30c1,_0x73fd('0x33'));_0x3ff4ad[_0x73fd('0x3c')]=_['keys'](_0x11b7d1[_0x73fd('0x3c')]);_0x3ff4ad[_0x73fd('0x3d')]=_[_0x73fd('0x3e')](_0x3ff4ad[_0x73fd('0x3b')],_0x3ff4ad['query']);_0x5d456f['attributes']=_[_0x73fd('0x3e')](_0x3ff4ad[_0x73fd('0x3b')],qs['fields'](_0x11b7d1['query']['fields']));_0x5d456f[_0x73fd('0x3f')]=_0x5d456f[_0x73fd('0x3f')]['length']?_0x5d456f[_0x73fd('0x3f')]:_0x3ff4ad[_0x73fd('0x3b')];if(!_0x11b7d1[_0x73fd('0x3c')][_0x73fd('0x40')](_0x73fd('0x41'))){_0x5d456f[_0x73fd('0x2b')]=qs['limit'](_0x11b7d1['query'][_0x73fd('0x2b')]);_0x5d456f['offset']=qs[_0x73fd('0x2a')](_0x11b7d1[_0x73fd('0x3c')][_0x73fd('0x2a')]);}_0x5d456f['order']=qs[_0x73fd('0x42')](_0x11b7d1['query'][_0x73fd('0x42')]);_0x5d456f[_0x73fd('0x43')]=qs[_0x73fd('0x3d')](_[_0x73fd('0x44')](_0x11b7d1['query'],_0x3ff4ad[_0x73fd('0x3d')]),_0xac30c1);if(_0x11b7d1['query'][_0x73fd('0x45')]){_0x5d456f['where']=_['merge'](_0x5d456f[_0x73fd('0x43')],{'$or':_['map'](_0xac30c1,function(_0x3f4367){if(_0x3f4367[_0x73fd('0x39')]!==_0x73fd('0x46')){var _0x52cb82={};_0x52cb82[_0x3f4367[_0x73fd('0x33')]]={'$like':'%'+_0x11b7d1[_0x73fd('0x3c')][_0x73fd('0x45')]+'%'};return _0x52cb82;}})});}_0x5d456f=_['merge']({},_0x5d456f,_0x11b7d1['options']);var _0x5161fa={'where':_0x5d456f['where']};return db[_0x73fd('0x36')][_0x73fd('0x29')](_0x5161fa)['then'](function(_0x3650dc){_0x4c0438['count']=_0x3650dc;if(_0x11b7d1['query'][_0x73fd('0x47')]){_0x5d456f[_0x73fd('0x48')]=[{'all':!![]}];}return db['FreshdeskAccount'][_0x73fd('0x49')](_0x5d456f);})[_0x73fd('0x1a')](function(_0x521ef3){_0x4c0438[_0x73fd('0x4a')]=_0x521ef3;return _0x4c0438;})[_0x73fd('0x1a')](respondWithFilteredResult(_0x445ae5,_0x5d456f))[_0x73fd('0x24')](handleError(_0x445ae5,null));};exports[_0x73fd('0x4b')]=function(_0x284c8a,_0x3a996e){var _0x2e869f={'raw':![],'where':{'id':_0x284c8a[_0x73fd('0x4c')]['id']}},_0x258672={};_0x258672['model']=_[_0x73fd('0x4d')](db['FreshdeskAccount']['rawAttributes']);_0x258672[_0x73fd('0x3c')]=_[_0x73fd('0x4d')](_0x284c8a['query']);_0x258672['filters']=_[_0x73fd('0x3e')](_0x258672['model'],_0x258672[_0x73fd('0x3c')]);_0x2e869f['attributes']=_[_0x73fd('0x3e')](_0x258672[_0x73fd('0x3b')],qs[_0x73fd('0x4e')](_0x284c8a[_0x73fd('0x3c')][_0x73fd('0x4e')]));_0x2e869f[_0x73fd('0x3f')]=_0x2e869f['attributes'][_0x73fd('0x4f')]?_0x2e869f[_0x73fd('0x3f')]:_0x258672[_0x73fd('0x3b')];if(_0x284c8a['query'][_0x73fd('0x47')]){_0x2e869f[_0x73fd('0x48')]=[{'all':!![]}];}_0x2e869f=_[_0x73fd('0x50')]({},_0x2e869f,_0x284c8a['options']);return db[_0x73fd('0x36')][_0x73fd('0x51')](_0x2e869f)[_0x73fd('0x1a')](handleEntityNotFound(_0x3a996e,null))[_0x73fd('0x1a')](respondWithResult(_0x3a996e,null))[_0x73fd('0x24')](handleError(_0x3a996e,null));};exports[_0x73fd('0x52')]=function(_0x462378,_0x561a8a){return db[_0x73fd('0x36')][_0x73fd('0x52')](_0x462378[_0x73fd('0x53')],{})['then'](respondWithResult(_0x561a8a,0xc9))['catch'](handleError(_0x561a8a,null));};exports['update']=function(_0x2a7f5a,_0x57d9a1){if(_0x2a7f5a['body']['id']){delete _0x2a7f5a[_0x73fd('0x53')]['id'];}return db['FreshdeskAccount']['find']({'where':{'id':_0x2a7f5a[_0x73fd('0x4c')]['id']}})[_0x73fd('0x1a')](handleEntityNotFound(_0x57d9a1,null))[_0x73fd('0x1a')](saveUpdates(_0x2a7f5a['body'],null))[_0x73fd('0x1a')](respondWithResult(_0x57d9a1,null))[_0x73fd('0x24')](handleError(_0x57d9a1,null));};exports['destroy']=function(_0x54402d,_0x4a2bab){return db['FreshdeskAccount'][_0x73fd('0x51')]({'where':{'id':_0x54402d['params']['id']}})[_0x73fd('0x1a')](handleEntityNotFound(_0x4a2bab,null))[_0x73fd('0x1a')](removeEntity(_0x4a2bab,null))[_0x73fd('0x24')](handleError(_0x4a2bab,null));};exports[_0x73fd('0x54')]=function(_0x22d081,_0x49b6c0,_0x422d5a){var _0x1640e5={};var _0xeed54b={};var _0x5da01e;var _0x33c1e1;return db[_0x73fd('0x36')]['findOne']({'where':{'id':_0x22d081[_0x73fd('0x4c')]['id']}})['then'](handleEntityNotFound(_0x49b6c0,null))[_0x73fd('0x1a')](function(_0xfe6bb7){if(_0xfe6bb7){_0x5da01e=_0xfe6bb7;_0xeed54b[_0x73fd('0x3b')]=_['keys'](db[_0x73fd('0x55')][_0x73fd('0x37')]);_0xeed54b[_0x73fd('0x3c')]=_[_0x73fd('0x4d')](_0x22d081['query']);_0xeed54b['filters']=_[_0x73fd('0x3e')](_0xeed54b[_0x73fd('0x3b')],_0xeed54b[_0x73fd('0x3c')]);_0x1640e5[_0x73fd('0x3f')]=_[_0x73fd('0x3e')](_0xeed54b[_0x73fd('0x3b')],qs[_0x73fd('0x4e')](_0x22d081[_0x73fd('0x3c')]['fields']));_0x1640e5['attributes']=_0x1640e5[_0x73fd('0x3f')][_0x73fd('0x4f')]?_0x1640e5['attributes']:_0xeed54b['model'];_0x1640e5[_0x73fd('0x56')]=qs['sort'](_0x22d081[_0x73fd('0x3c')]['sort']);_0x1640e5[_0x73fd('0x43')]=qs[_0x73fd('0x3d')](_[_0x73fd('0x44')](_0x22d081[_0x73fd('0x3c')],_0xeed54b[_0x73fd('0x3d')]));if(_0x22d081[_0x73fd('0x3c')][_0x73fd('0x45')]){_0x1640e5[_0x73fd('0x43')]=_[_0x73fd('0x50')](_0x1640e5[_0x73fd('0x43')],{'$or':_[_0x73fd('0x57')](_0x1640e5[_0x73fd('0x3f')],function(_0x253386){var _0x1a7393={};_0x1a7393[_0x253386]={'$like':'%'+_0x22d081[_0x73fd('0x3c')][_0x73fd('0x45')]+'%'};return _0x1a7393;})});}_0x1640e5=_['merge']({},_0x1640e5,_0x22d081['options']);return _0x5da01e[_0x73fd('0x54')](_0x1640e5);}})[_0x73fd('0x1a')](function(_0x4ed6e8){if(_0x4ed6e8){_0x33c1e1=_0x4ed6e8[_0x73fd('0x4f')];if(!_0x22d081[_0x73fd('0x3c')][_0x73fd('0x40')](_0x73fd('0x41'))){_0x1640e5['limit']=qs[_0x73fd('0x2b')](_0x22d081[_0x73fd('0x3c')][_0x73fd('0x2b')]);_0x1640e5[_0x73fd('0x2a')]=qs['offset'](_0x22d081['query']['offset']);}return _0x5da01e[_0x73fd('0x54')](_0x1640e5);}})[_0x73fd('0x1a')](function(_0x1d4cc0){if(_0x1d4cc0){return _0x1d4cc0?{'count':_0x33c1e1,'rows':_0x1d4cc0}:null;}})[_0x73fd('0x1a')](respondWithResult(_0x49b6c0,null))['catch'](handleError(_0x49b6c0,null));};exports[_0x73fd('0x58')]=function(_0x4ce68b,_0x59533e,_0x28611b){if(_0x4ce68b[_0x73fd('0x53')]['id']){delete _0x4ce68b[_0x73fd('0x53')]['id'];}return db['FreshdeskAccount'][_0x73fd('0x59')]({'where':{'id':_0x4ce68b['params']['id']}})[_0x73fd('0x1a')](handleEntityNotFound(_0x59533e,null))[_0x73fd('0x1a')](function(_0x437cfc){if(_0x437cfc){_0x4ce68b['body'][_0x73fd('0x5a')]=_0x437cfc['id'];_0x4ce68b[_0x73fd('0x53')][_0x73fd('0x5b')]=integrations[_0x73fd('0x5c')](_0x4ce68b[_0x73fd('0x53')][_0x73fd('0x5d')],_0x4ce68b[_0x73fd('0x53')][_0x73fd('0x39')]);_0x4ce68b[_0x73fd('0x53')][_0x73fd('0x5e')]=integrations[_0x73fd('0x5f')](_0x4ce68b[_0x73fd('0x53')][_0x73fd('0x5d')],_0x4ce68b['body'][_0x73fd('0x39')]);return db[_0x73fd('0x55')]['create'](_0x4ce68b[_0x73fd('0x53')],{'include':[{'model':db[_0x73fd('0x60')],'as':_0x73fd('0x5b')},{'model':db[_0x73fd('0x60')],'as':_0x73fd('0x5e')}]});}return null;})[_0x73fd('0x1a')](respondWithResult(_0x59533e,null))['catch'](handleError(_0x59533e,null));};exports[_0x73fd('0x61')]=function(_0x519d96,_0x2f5ad9,_0x1e708b){var _0x58edff='';return db[_0x73fd('0x36')]['findOne']({'where':{'id':_0x519d96[_0x73fd('0x4c')]['id']},'attributes':['id',_0x73fd('0x62'),_0x73fd('0x63')]})[_0x73fd('0x1a')](handleEntityNotFound(_0x2f5ad9,null))[_0x73fd('0x1a')](function(_0x152b5a){if(_0x152b5a){_0x58edff=_0x152b5a['remoteUri'];var _0x3a8977=_0x58edff[_0x73fd('0x64')](-0x1);if(_0x3a8977==='/'){_0x58edff=_0x58edff['substring'](0x0,_0x58edff[_0x73fd('0x65')](_0x3a8977));}return rp({'method':_0x73fd('0x66'),'uri':util[_0x73fd('0x67')]('%s/%s',_0x58edff,_0x73fd('0x68')),'headers':{'Authorization':util['format'](_0x73fd('0x69'),new Buffer(util[_0x73fd('0x67')](_0x73fd('0x6a'),_0x152b5a[_0x73fd('0x63')]))[_0x73fd('0x6b')]('base64'))},'json':!![]});}})[_0x73fd('0x1a')](function(_0x2a43ae){if(_0x2a43ae){var _0x774378=[_0x73fd('0x6c'),_0x73fd('0x6d'),'agent','description',_0x73fd('0x26'),_0x73fd('0x6e'),_0x73fd('0x6f'),'source',_0x73fd('0x70'),'group',_0x73fd('0x71')];_[_0x73fd('0x72')](_0x2a43ae,function(_0x3329c0){return _0x774378[_0x73fd('0x73')](_0x3329c0[_0x73fd('0x33')])||!_0x3329c0[_0x73fd('0x74')]&&_0x3329c0['type']!==_0x73fd('0x75')&&_0x3329c0['type']!==_0x73fd('0x76');});return{'count':_0x2a43ae[_0x73fd('0x4f')],'rows':_[_0x73fd('0x57')](_0x2a43ae,function(_0x8c412d){return{'id':_0x8c412d[_0x73fd('0x33')],'name':_0x8c412d['label'],'custom':!_0x8c412d['default'],'options':_0x8c412d[_0x73fd('0x77')]?_[_0x73fd('0x57')](_0x8c412d[_0x73fd('0x77')],function(_0x56f3e0){return{'name':_[_0x73fd('0x78')](_0x56f3e0),'value':_0x56f3e0};}):[]};})};}})[_0x73fd('0x1a')](respondWithResult(_0x2f5ad9,null))['catch'](function(_0x324eaf){var _0x46f4b0=_0x519d96[_0x73fd('0x3c')][_0x73fd('0x79')]?0x1f4:_0x324eaf[_0x73fd('0x7a')]||0x1f4;logger[_0x73fd('0x20')](_0x73fd('0x7b'),_0x73fd('0x61'),_0x46f4b0,JSON[_0x73fd('0x1f')](_0x324eaf));delete _0x324eaf['name'];if(_0x46f4b0===0x191){_0x46f4b0=0x190;}_0x2f5ad9['status'](_0x46f4b0)[_0x73fd('0x34')](_0x519d96[_0x73fd('0x3c')][_0x73fd('0x79')]?{'message':_0x73fd('0x7c'),'statusCode':_0x324eaf[_0x73fd('0x7a')]}:_0x324eaf);});};