Built motion from commit (unavailable).|2.0.76
[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 _0xcde3=['sendStatus','status','json','count','offset','limit','set','Content-Range','apply','save','destroy','end','stack','name','index','model','keys','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','add','day','merge','filter','options','FreshdeskAccount','includeAll','include','findAll','rows','show','find','create','update','body','params','getConfigurations','findOne','rawAttributes','order','map','addConfiguration','AccountId','getSubjects','type','getDescriptions','FreshdeskConfiguration','FreshdeskField','Descriptions','getFields','remoteUri','apiKey','GET','format','%s%s','api/v2/ticket_fields','Basic\x20%s','%s:X','toString','base64','requester','agent','group','source','ticket_type','company','remove','custom_text','label','default','choices','capitalize','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','then','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','error','code','message','catch'];(function(_0x53a567,_0x367c47){var _0xc45d2d=function(_0x514504){while(--_0x514504){_0x53a567['push'](_0x53a567['shift']());}};_0xc45d2d(++_0x367c47);}(_0xcde3,0x14e));var _0x3cde=function(_0x215dc8,_0x52c245){_0x215dc8=_0x215dc8-0x0;var _0x583ea3=_0xcde3[_0x215dc8];return _0x583ea3;};'use strict';var pdf=require(_0x3cde('0x0'));var emlformat=require(_0x3cde('0x1'));var rimraf=require(_0x3cde('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3cde('0x3'));var rp=require(_0x3cde('0x4'));var moment=require(_0x3cde('0x5'));var BPromise=require(_0x3cde('0x6'));var Mustache=require(_0x3cde('0x7'));var util=require(_0x3cde('0x8'));var path=require(_0x3cde('0x9'));var sox=require(_0x3cde('0xa'));var csv=require(_0x3cde('0xb'));var ejs=require(_0x3cde('0xc'));var fs=require('fs');var _=require(_0x3cde('0xd'));var squel=require(_0x3cde('0xe'));var crypto=require(_0x3cde('0xf'));var jsforce=require(_0x3cde('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x3cde('0xb'));var querystring=require(_0x3cde('0x11'));var Papa=require(_0x3cde('0x12'));var qs=require(_0x3cde('0x13'));var logger=require(_0x3cde('0x14'))(_0x3cde('0x15'));var utils=require(_0x3cde('0x16'));var config=require(_0x3cde('0x17'));var db=require(_0x3cde('0x18'))['db'];var integrations=require(_0x3cde('0x19'));var jayson=require(_0x3cde('0x1a'));var client=jayson[_0x3cde('0x1b')][_0x3cde('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x55a3c7,_0x3fdeec,_0x228833,_0x5f42f1){return new BPromise(function(_0x1b7720,_0x533674){var _0x33d7b3=_0x5f42f1||client;return _0x33d7b3['request'](_0x55a3c7,_0x228833)[_0x3cde('0x1d')](function(_0xa51265){logger['info'](_0x3cde('0x1e'),_0x3fdeec,_0x3cde('0x1f'));logger[_0x3cde('0x20')](_0x3cde('0x21'),_0x3fdeec,_0x3cde('0x1f'),JSON['stringify'](_0xa51265));if(_0xa51265[_0x3cde('0x22')]){if(_0xa51265['error'][_0x3cde('0x23')]===0x1f4){logger[_0x3cde('0x22')](_0x3cde('0x1e'),_0x3fdeec,_0xa51265[_0x3cde('0x22')]['message']);return _0x533674(_0xa51265[_0x3cde('0x22')][_0x3cde('0x24')]);}logger['error'](_0x3cde('0x1e'),_0x3fdeec,_0xa51265[_0x3cde('0x22')]['message']);return _0x1b7720(_0xa51265[_0x3cde('0x22')][_0x3cde('0x24')]);}else{logger['info'](_0x3cde('0x1e'),_0x3fdeec,_0x3cde('0x1f'));_0x1b7720(_0xa51265['result'][_0x3cde('0x24')]);}})[_0x3cde('0x25')](function(_0xd9413c){logger[_0x3cde('0x22')]('FreshdeskAccount,\x20%s,\x20%s',_0x3fdeec,_0xd9413c);_0x533674(_0xd9413c);});});}function respondWithStatusCode(_0x3fd36f,_0x57ba96){_0x57ba96=_0x57ba96||0xcc;return function(_0x564e37){if(_0x564e37){return _0x3fd36f[_0x3cde('0x26')](_0x57ba96);}return _0x3fd36f[_0x3cde('0x27')](_0x57ba96)['end']();};}function respondWithResult(_0x894e54,_0x38e1e6){_0x38e1e6=_0x38e1e6||0xc8;return function(_0x10fa38){if(_0x10fa38){return _0x894e54[_0x3cde('0x27')](_0x38e1e6)[_0x3cde('0x28')](_0x10fa38);}};}function respondWithFilteredResult(_0x3887e3,_0x543fde){return function(_0x41e859){if(_0x41e859){var _0x1e8eb4=_0x41e859[_0x3cde('0x29')],_0x3fb5f2=_0x543fde[_0x3cde('0x2a')],_0x1f8a44=_0x543fde[_0x3cde('0x2a')]+_0x543fde[_0x3cde('0x2b')],_0x5bca17;if(_0x1f8a44>=_0x1e8eb4){_0x1f8a44=_0x1e8eb4;_0x5bca17=0xc8;}else{_0x5bca17=0xce;}_0x3887e3[_0x3cde('0x27')](_0x5bca17);return _0x3887e3[_0x3cde('0x2c')](_0x3cde('0x2d'),_0x3fb5f2+'-'+_0x1f8a44+'/'+_0x1e8eb4)[_0x3cde('0x28')](_0x41e859);}return null;};}function patchUpdates(_0x3c0071){return function(_0x1c9771){try{jsonpatch[_0x3cde('0x2e')](_0x1c9771,_0x3c0071,!![]);}catch(_0x850d20){return BPromise['reject'](_0x850d20);}return _0x1c9771[_0x3cde('0x2f')]();};}function saveUpdates(_0x5031a7,_0x349b99){return function(_0x18c06f){if(_0x18c06f){return _0x18c06f['update'](_0x5031a7)[_0x3cde('0x1d')](function(_0x1965ee){return _0x1965ee;});}return null;};}function removeEntity(_0x2387fb,_0x359349){return function(_0x10507a){if(_0x10507a){return _0x10507a[_0x3cde('0x30')]()[_0x3cde('0x1d')](function(){_0x2387fb['status'](0xcc)[_0x3cde('0x31')]();});}};}function handleEntityNotFound(_0x5f33ff,_0x3d93d2){return function(_0x4122e5){if(!_0x4122e5){_0x5f33ff[_0x3cde('0x26')](0x194);}return _0x4122e5;};}function handleError(_0x15c7a6,_0x480ef7){_0x480ef7=_0x480ef7||0x1f4;return function(_0x2bd374){logger['error'](_0x2bd374[_0x3cde('0x32')]);if(_0x2bd374[_0x3cde('0x33')]){delete _0x2bd374[_0x3cde('0x33')];}_0x15c7a6[_0x3cde('0x27')](_0x480ef7)['send'](_0x2bd374);};}exports[_0x3cde('0x34')]=function(_0x1e588c,_0x3a64eb){var _0x306d85={},_0x3fa63a={},_0x46be81={'count':0x0,'rows':[]};var _0x563b7c=db['FreshdeskAccount']['rawAttributes'];_0x3fa63a[_0x3cde('0x35')]=_[_0x3cde('0x36')](_0x563b7c);var _0x4dbc77={'dateStart':_0x1e588c[_0x3cde('0x37')][_0x3cde('0x38')],'dateEnd':_0x1e588c['query'][_0x3cde('0x39')]};delete _0x1e588c[_0x3cde('0x37')][_0x3cde('0x38')];delete _0x1e588c['query']['dateEnd'];_0x3fa63a[_0x3cde('0x37')]=_[_0x3cde('0x36')](_0x1e588c[_0x3cde('0x37')]);_0x3fa63a[_0x3cde('0x3a')]=_[_0x3cde('0x3b')](_0x3fa63a[_0x3cde('0x35')],_0x3fa63a['query']);_0x306d85[_0x3cde('0x3c')]=_['intersection'](_0x3fa63a[_0x3cde('0x35')],qs['fields'](_0x1e588c[_0x3cde('0x37')][_0x3cde('0x3d')]));_0x306d85[_0x3cde('0x3c')]=_0x306d85[_0x3cde('0x3c')][_0x3cde('0x3e')]?_0x306d85[_0x3cde('0x3c')]:_0x3fa63a[_0x3cde('0x35')];if(!_0x1e588c[_0x3cde('0x37')][_0x3cde('0x3f')](_0x3cde('0x40'))){_0x306d85[_0x3cde('0x2b')]=qs[_0x3cde('0x2b')](_0x1e588c[_0x3cde('0x37')][_0x3cde('0x2b')]);_0x306d85[_0x3cde('0x2a')]=qs[_0x3cde('0x2a')](_0x1e588c[_0x3cde('0x37')]['offset']);}_0x306d85['order']=qs[_0x3cde('0x41')](_0x1e588c[_0x3cde('0x37')]['sort']);_0x306d85[_0x3cde('0x42')]=qs['filters'](_[_0x3cde('0x43')](_0x1e588c[_0x3cde('0x37')],_0x3fa63a[_0x3cde('0x3a')]));if(_0x4dbc77[_0x3cde('0x38')]){if(_0x4dbc77[_0x3cde('0x39')]){_0x4dbc77[_0x3cde('0x39')]=moment(_0x4dbc77[_0x3cde('0x39')])[_0x3cde('0x44')](0x1,'day');}else{_0x4dbc77['dateEnd']=moment(_0x4dbc77[_0x3cde('0x38')])[_0x3cde('0x44')](0x1,_0x3cde('0x45'));}_['merge'](_0x306d85['where'],{'createdAt':{'$gte':_0x4dbc77['dateStart'],'$lte':_0x4dbc77[_0x3cde('0x39')]}});}if(_0x1e588c['query']['filter']){_0x306d85[_0x3cde('0x42')]=_[_0x3cde('0x46')](_0x306d85[_0x3cde('0x42')],{'$or':_['map'](_0x306d85['attributes'],function(_0x5cb210){var _0x3b3db7={};_0x3b3db7[_0x5cb210]={'$like':'%'+_0x1e588c[_0x3cde('0x37')][_0x3cde('0x47')]+'%'};return _0x3b3db7;})});}_0x306d85=_[_0x3cde('0x46')]({},_0x306d85,_0x1e588c[_0x3cde('0x48')]);var _0x639c78={'where':_0x306d85[_0x3cde('0x42')]};return db[_0x3cde('0x49')][_0x3cde('0x29')](_0x639c78)[_0x3cde('0x1d')](function(_0x14ff67){_0x46be81[_0x3cde('0x29')]=_0x14ff67;if(_0x1e588c[_0x3cde('0x37')][_0x3cde('0x4a')]){_0x306d85[_0x3cde('0x4b')]=[{'all':!![]}];}return db[_0x3cde('0x49')][_0x3cde('0x4c')](_0x306d85);})[_0x3cde('0x1d')](function(_0x355a34){_0x46be81[_0x3cde('0x4d')]=_0x355a34;return _0x46be81;})['then'](respondWithFilteredResult(_0x3a64eb,_0x306d85))['catch'](handleError(_0x3a64eb,null));};exports[_0x3cde('0x4e')]=function(_0x402d06,_0x41de9f){var _0x33279b={'raw':![],'where':{'id':_0x402d06['params']['id']}},_0x3c8f76={};_0x3c8f76[_0x3cde('0x35')]=_[_0x3cde('0x36')](db['FreshdeskAccount']['rawAttributes']);_0x3c8f76[_0x3cde('0x37')]=_[_0x3cde('0x36')](_0x402d06[_0x3cde('0x37')]);_0x3c8f76[_0x3cde('0x3a')]=_[_0x3cde('0x3b')](_0x3c8f76[_0x3cde('0x35')],_0x3c8f76[_0x3cde('0x37')]);_0x33279b[_0x3cde('0x3c')]=_[_0x3cde('0x3b')](_0x3c8f76[_0x3cde('0x35')],qs['fields'](_0x402d06[_0x3cde('0x37')][_0x3cde('0x3d')]));_0x33279b['attributes']=_0x33279b[_0x3cde('0x3c')]['length']?_0x33279b[_0x3cde('0x3c')]:_0x3c8f76[_0x3cde('0x35')];if(_0x402d06[_0x3cde('0x37')][_0x3cde('0x4a')]){_0x33279b[_0x3cde('0x4b')]=[{'all':!![]}];}_0x33279b=_['merge']({},_0x33279b,_0x402d06[_0x3cde('0x48')]);return db[_0x3cde('0x49')][_0x3cde('0x4f')](_0x33279b)[_0x3cde('0x1d')](handleEntityNotFound(_0x41de9f,null))[_0x3cde('0x1d')](respondWithResult(_0x41de9f,null))[_0x3cde('0x25')](handleError(_0x41de9f,null));};exports[_0x3cde('0x50')]=function(_0x1afed9,_0x49b4b0){return db['FreshdeskAccount'][_0x3cde('0x50')](_0x1afed9['body'],{})[_0x3cde('0x1d')](respondWithResult(_0x49b4b0,0xc9))[_0x3cde('0x25')](handleError(_0x49b4b0,null));};exports[_0x3cde('0x51')]=function(_0x339d6d,_0x21182f){if(_0x339d6d[_0x3cde('0x52')]['id']){delete _0x339d6d[_0x3cde('0x52')]['id'];}return db[_0x3cde('0x49')]['find']({'where':{'id':_0x339d6d['params']['id']}})[_0x3cde('0x1d')](handleEntityNotFound(_0x21182f,null))['then'](saveUpdates(_0x339d6d['body'],null))[_0x3cde('0x1d')](respondWithResult(_0x21182f,null))[_0x3cde('0x25')](handleError(_0x21182f,null));};exports['destroy']=function(_0x4051d8,_0x5015a2){return db['FreshdeskAccount'][_0x3cde('0x4f')]({'where':{'id':_0x4051d8[_0x3cde('0x53')]['id']}})[_0x3cde('0x1d')](handleEntityNotFound(_0x5015a2,null))[_0x3cde('0x1d')](removeEntity(_0x5015a2,null))['catch'](handleError(_0x5015a2,null));};exports[_0x3cde('0x54')]=function(_0x195849,_0x342711,_0xa3883b){var _0x14affe={};var _0x162b4c={};var _0xfbf2e4;var _0x59c228;return db[_0x3cde('0x49')][_0x3cde('0x55')]({'where':{'id':_0x195849[_0x3cde('0x53')]['id']}})[_0x3cde('0x1d')](handleEntityNotFound(_0x342711,null))[_0x3cde('0x1d')](function(_0x4f2d95){if(_0x4f2d95){_0xfbf2e4=_0x4f2d95;_0x162b4c['model']=_[_0x3cde('0x36')](db['FreshdeskConfiguration'][_0x3cde('0x56')]);_0x162b4c[_0x3cde('0x37')]=_['keys'](_0x195849[_0x3cde('0x37')]);_0x162b4c[_0x3cde('0x3a')]=_[_0x3cde('0x3b')](_0x162b4c[_0x3cde('0x35')],_0x162b4c[_0x3cde('0x37')]);_0x14affe[_0x3cde('0x3c')]=_[_0x3cde('0x3b')](_0x162b4c[_0x3cde('0x35')],qs[_0x3cde('0x3d')](_0x195849[_0x3cde('0x37')]['fields']));_0x14affe['attributes']=_0x14affe[_0x3cde('0x3c')]['length']?_0x14affe[_0x3cde('0x3c')]:_0x162b4c['model'];_0x14affe[_0x3cde('0x57')]=qs[_0x3cde('0x41')](_0x195849[_0x3cde('0x37')][_0x3cde('0x41')]);_0x14affe[_0x3cde('0x42')]=qs[_0x3cde('0x3a')](_['pick'](_0x195849[_0x3cde('0x37')],_0x162b4c[_0x3cde('0x3a')]));if(_0x195849[_0x3cde('0x37')][_0x3cde('0x47')]){_0x14affe[_0x3cde('0x42')]=_[_0x3cde('0x46')](_0x14affe[_0x3cde('0x42')],{'$or':_[_0x3cde('0x58')](_0x14affe[_0x3cde('0x3c')],function(_0x513af7){var _0x394bb6={};_0x394bb6[_0x513af7]={'$like':'%'+_0x195849['query'][_0x3cde('0x47')]+'%'};return _0x394bb6;})});}_0x14affe=_[_0x3cde('0x46')]({},_0x14affe,_0x195849[_0x3cde('0x48')]);return _0xfbf2e4[_0x3cde('0x54')](_0x14affe);}})['then'](function(_0x372552){if(_0x372552){_0x59c228=_0x372552['length'];if(!_0x195849[_0x3cde('0x37')][_0x3cde('0x3f')](_0x3cde('0x40'))){_0x14affe[_0x3cde('0x2b')]=qs[_0x3cde('0x2b')](_0x195849[_0x3cde('0x37')][_0x3cde('0x2b')]);_0x14affe[_0x3cde('0x2a')]=qs[_0x3cde('0x2a')](_0x195849[_0x3cde('0x37')][_0x3cde('0x2a')]);}return _0xfbf2e4['getConfigurations'](_0x14affe);}})[_0x3cde('0x1d')](function(_0x1d2352){if(_0x1d2352){return _0x1d2352?{'count':_0x59c228,'rows':_0x1d2352}:null;}})[_0x3cde('0x1d')](respondWithResult(_0x342711,null))[_0x3cde('0x25')](handleError(_0x342711,null));};exports[_0x3cde('0x59')]=function(_0x35c7a1,_0x15a404,_0x32d0c2){if(_0x35c7a1[_0x3cde('0x52')]['id']){delete _0x35c7a1[_0x3cde('0x52')]['id'];}return db['FreshdeskAccount']['findOne']({'where':{'id':_0x35c7a1['params']['id']}})[_0x3cde('0x1d')](handleEntityNotFound(_0x15a404,null))[_0x3cde('0x1d')](function(_0x1103ec){if(_0x1103ec){_0x35c7a1[_0x3cde('0x52')][_0x3cde('0x5a')]=_0x1103ec['id'];_0x35c7a1[_0x3cde('0x52')]['Subjects']=integrations[_0x3cde('0x5b')](_0x35c7a1[_0x3cde('0x52')]['channel'],_0x35c7a1[_0x3cde('0x52')][_0x3cde('0x5c')]);_0x35c7a1[_0x3cde('0x52')]['Descriptions']=integrations[_0x3cde('0x5d')](_0x35c7a1[_0x3cde('0x52')]['channel'],_0x35c7a1[_0x3cde('0x52')]['type']);return db[_0x3cde('0x5e')][_0x3cde('0x50')](_0x35c7a1[_0x3cde('0x52')],{'include':[{'model':db[_0x3cde('0x5f')],'as':'Subjects'},{'model':db['FreshdeskField'],'as':_0x3cde('0x60')}]});}return null;})['then'](respondWithResult(_0x15a404,null))[_0x3cde('0x25')](handleError(_0x15a404,null));};exports[_0x3cde('0x61')]=function(_0x577d3e,_0x101447,_0x16074e){return db[_0x3cde('0x49')][_0x3cde('0x55')]({'where':{'id':_0x577d3e[_0x3cde('0x53')]['id']},'attributes':['id',_0x3cde('0x62'),_0x3cde('0x63')]})[_0x3cde('0x1d')](handleEntityNotFound(_0x101447,null))['then'](function(_0xd3e929){if(_0xd3e929){return rp({'method':_0x3cde('0x64'),'uri':util[_0x3cde('0x65')](_0x3cde('0x66'),_0xd3e929[_0x3cde('0x62')],_0x3cde('0x67')),'headers':{'Authorization':util[_0x3cde('0x65')](_0x3cde('0x68'),new Buffer(util['format'](_0x3cde('0x69'),_0xd3e929[_0x3cde('0x63')]))[_0x3cde('0x6a')](_0x3cde('0x6b')))},'json':!![]});}})[_0x3cde('0x1d')](function(_0x4e50e7){if(_0x4e50e7){var _0x40b74=[_0x3cde('0x6c'),'subject',_0x3cde('0x6d'),'description',_0x3cde('0x27'),'priority',_0x3cde('0x6e'),_0x3cde('0x6f'),_0x3cde('0x70'),_0x3cde('0x6e'),_0x3cde('0x71')];_[_0x3cde('0x72')](_0x4e50e7,function(_0x4187ce){return _0x40b74['includes'](_0x4187ce[_0x3cde('0x33')])||!_0x4187ce['default']&&_0x4187ce[_0x3cde('0x5c')]!==_0x3cde('0x73');});return{'count':_0x4e50e7['length'],'rows':_[_0x3cde('0x58')](_0x4e50e7,function(_0x4d7813){return{'id':_0x4d7813[_0x3cde('0x33')],'name':_0x4d7813[_0x3cde('0x74')],'custom':!_0x4d7813[_0x3cde('0x75')],'options':_0x4d7813[_0x3cde('0x76')]?_[_0x3cde('0x58')](_0x4d7813[_0x3cde('0x76')],function(_0x16d8e4){return{'name':_[_0x3cde('0x77')](_0x16d8e4),'value':_0x16d8e4};}):[]};})};}})['then'](respondWithResult(_0x101447,null))[_0x3cde('0x25')](function(_0x302646){var _0x58ce05=_0x577d3e[_0x3cde('0x37')]['test']?0x1f4:_0x302646[_0x3cde('0x78')]||0x1f4;logger['error'](_0x3cde('0x79'),_0x3cde('0x61'),_0x58ce05,JSON[_0x3cde('0x7a')](_0x302646));delete _0x302646[_0x3cde('0x33')];if(_0x58ce05===0x191){_0x58ce05=0x190;}_0x101447['status'](_0x58ce05)['send'](_0x577d3e['query']['test']?{'message':_0x3cde('0x7b'),'statusCode':_0x302646[_0x3cde('0x78')]}:_0x302646);});};