ea29a56f160a1a0516da8bc80010ae68089ae516
[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 _0xa679=['sendStatus','name','send','index','map','FreshdeskAccount','rawAttributes','fieldName','type','model','keys','query','filters','attributes','fields','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','params','intersection','length','catch','create','body','find','getConfigurations','FreshdeskConfiguration','addConfiguration','findOne','Subjects','channel','Descriptions','getDescriptions','FreshdeskField','getFields','apiKey','remoteUri','slice','substring','lastIndexOf','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','%s:X','requester','subject','priority','source','ticket_type','group','remove','includes','default','custom_dropdown','label','choices','capitalize','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','test','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','http','request','then','info','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','error','code','message','FreshdeskAccount,\x20%s,\x20%s','status','json','count','offset','limit','set','apply','reject','save','update','destroy','end'];(function(_0x51a970,_0xcd4a22){var _0xdd4315=function(_0x222142){while(--_0x222142){_0x51a970['push'](_0x51a970['shift']());}};_0xdd4315(++_0xcd4a22);}(_0xa679,0x13b));var _0x9a67=function(_0x153a9d,_0x1fb089){_0x153a9d=_0x153a9d-0x0;var _0x591a59=_0xa679[_0x153a9d];return _0x591a59;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x9a67('0x0'));var rimraf=require(_0x9a67('0x1'));var zipdir=require(_0x9a67('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9a67('0x3'));var moment=require(_0x9a67('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9a67('0x5'));var util=require(_0x9a67('0x6'));var path=require(_0x9a67('0x7'));var sox=require(_0x9a67('0x8'));var csv=require('to-csv');var ejs=require(_0x9a67('0x9'));var fs=require('fs');var _=require(_0x9a67('0xa'));var squel=require(_0x9a67('0xb'));var crypto=require(_0x9a67('0xc'));var jsforce=require(_0x9a67('0xd'));var deskjs=require(_0x9a67('0xe'));var toCsv=require(_0x9a67('0xf'));var querystring=require(_0x9a67('0x10'));var Papa=require(_0x9a67('0x11'));var Redis=require(_0x9a67('0x12'));var authService=require(_0x9a67('0x13'));var qs=require(_0x9a67('0x14'));var as=require(_0x9a67('0x15'));var hardwareService=require(_0x9a67('0x16'));var logger=require('../../config/logger')(_0x9a67('0x17'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x9a67('0x18'));var db=require(_0x9a67('0x19'))['db'];var integrations=require(_0x9a67('0x1a'));var jayson=require(_0x9a67('0x1b'));var client=jayson['client'][_0x9a67('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x59ab2c,_0x323752,_0x2df063,_0x38850a){return new BPromise(function(_0x480d0c,_0x9b5b0){var _0x159d30=_0x38850a||client;return _0x159d30[_0x9a67('0x1d')](_0x59ab2c,_0x2df063)[_0x9a67('0x1e')](function(_0x399866){logger[_0x9a67('0x1f')]('FreshdeskAccount,\x20%s,\x20%s',_0x323752,_0x9a67('0x20'));logger[_0x9a67('0x21')](_0x9a67('0x22'),_0x323752,'request\x20sent',JSON['stringify'](_0x399866));if(_0x399866[_0x9a67('0x23')]){if(_0x399866['error'][_0x9a67('0x24')]===0x1f4){logger['error']('FreshdeskAccount,\x20%s,\x20%s',_0x323752,_0x399866[_0x9a67('0x23')][_0x9a67('0x25')]);return _0x9b5b0(_0x399866[_0x9a67('0x23')][_0x9a67('0x25')]);}logger[_0x9a67('0x23')](_0x9a67('0x26'),_0x323752,_0x399866['error'][_0x9a67('0x25')]);return _0x480d0c(_0x399866[_0x9a67('0x23')][_0x9a67('0x25')]);}else{logger[_0x9a67('0x1f')](_0x9a67('0x26'),_0x323752,_0x9a67('0x20'));_0x480d0c(_0x399866['result']['message']);}})['catch'](function(_0x31fd89){logger[_0x9a67('0x23')](_0x9a67('0x26'),_0x323752,_0x31fd89);_0x9b5b0(_0x31fd89);});});}function respondWithStatusCode(_0x50e036,_0x1e46ce){_0x1e46ce=_0x1e46ce||0xcc;return function(_0x55a371){if(_0x55a371){return _0x50e036['sendStatus'](_0x1e46ce);}return _0x50e036[_0x9a67('0x27')](_0x1e46ce)['end']();};}function respondWithResult(_0x2c8723,_0x597845){_0x597845=_0x597845||0xc8;return function(_0x122e4a){if(_0x122e4a){return _0x2c8723[_0x9a67('0x27')](_0x597845)[_0x9a67('0x28')](_0x122e4a);}};}function respondWithFilteredResult(_0x50cf71,_0x515069){return function(_0x4ac232){if(_0x4ac232){var _0x292c0a=_0x4ac232[_0x9a67('0x29')],_0x50d8a8=_0x515069[_0x9a67('0x2a')],_0x285c3f=_0x515069[_0x9a67('0x2a')]+_0x515069[_0x9a67('0x2b')],_0x774e0d;if(_0x285c3f>=_0x292c0a){_0x285c3f=_0x292c0a;_0x774e0d=0xc8;}else{_0x774e0d=0xce;}_0x50cf71[_0x9a67('0x27')](_0x774e0d);return _0x50cf71[_0x9a67('0x2c')]('Content-Range',_0x50d8a8+'-'+_0x285c3f+'/'+_0x292c0a)[_0x9a67('0x28')](_0x4ac232);}return null;};}function patchUpdates(_0x45e016){return function(_0x3ddbbd){try{jsonpatch[_0x9a67('0x2d')](_0x3ddbbd,_0x45e016,!![]);}catch(_0x10f640){return BPromise[_0x9a67('0x2e')](_0x10f640);}return _0x3ddbbd[_0x9a67('0x2f')]();};}function saveUpdates(_0x426569,_0x40d37e){return function(_0x9928a2){if(_0x9928a2){return _0x9928a2[_0x9a67('0x30')](_0x426569)[_0x9a67('0x1e')](function(_0x5c8b8d){return _0x5c8b8d;});}return null;};}function removeEntity(_0x190182,_0x4c51c5){return function(_0x2958c9){if(_0x2958c9){return _0x2958c9[_0x9a67('0x31')]()[_0x9a67('0x1e')](function(){_0x190182['status'](0xcc)[_0x9a67('0x32')]();});}};}function handleEntityNotFound(_0x1c3437,_0x192e92){return function(_0x1b51ca){if(!_0x1b51ca){_0x1c3437[_0x9a67('0x33')](0x194);}return _0x1b51ca;};}function handleError(_0x5e58d1,_0xa6c129){_0xa6c129=_0xa6c129||0x1f4;return function(_0x4da197){logger[_0x9a67('0x23')](_0x4da197['stack']);if(_0x4da197[_0x9a67('0x34')]){delete _0x4da197['name'];}_0x5e58d1[_0x9a67('0x27')](_0xa6c129)[_0x9a67('0x35')](_0x4da197);};}exports[_0x9a67('0x36')]=function(_0x4c37b6,_0x3f148b){var _0x4be1cb={},_0x3d3463={},_0x338fdf={'count':0x0,'rows':[]};var _0x3e1f0c=_[_0x9a67('0x37')](db[_0x9a67('0x38')][_0x9a67('0x39')],function(_0x4da527){return{'name':_0x4da527[_0x9a67('0x3a')],'type':_0x4da527[_0x9a67('0x3b')]['key']};});_0x3d3463[_0x9a67('0x3c')]=_[_0x9a67('0x37')](_0x3e1f0c,_0x9a67('0x34'));_0x3d3463['query']=_[_0x9a67('0x3d')](_0x4c37b6[_0x9a67('0x3e')]);_0x3d3463[_0x9a67('0x3f')]=_['intersection'](_0x3d3463[_0x9a67('0x3c')],_0x3d3463[_0x9a67('0x3e')]);_0x4be1cb[_0x9a67('0x40')]=_['intersection'](_0x3d3463[_0x9a67('0x3c')],qs[_0x9a67('0x41')](_0x4c37b6[_0x9a67('0x3e')][_0x9a67('0x41')]));_0x4be1cb[_0x9a67('0x40')]=_0x4be1cb[_0x9a67('0x40')]['length']?_0x4be1cb[_0x9a67('0x40')]:_0x3d3463['model'];if(!_0x4c37b6[_0x9a67('0x3e')]['hasOwnProperty'](_0x9a67('0x42'))){_0x4be1cb[_0x9a67('0x2b')]=qs['limit'](_0x4c37b6[_0x9a67('0x3e')]['limit']);_0x4be1cb['offset']=qs[_0x9a67('0x2a')](_0x4c37b6[_0x9a67('0x3e')][_0x9a67('0x2a')]);}_0x4be1cb[_0x9a67('0x43')]=qs['sort'](_0x4c37b6[_0x9a67('0x3e')][_0x9a67('0x44')]);_0x4be1cb[_0x9a67('0x45')]=qs['filters'](_[_0x9a67('0x46')](_0x4c37b6[_0x9a67('0x3e')],_0x3d3463[_0x9a67('0x3f')]),_0x3e1f0c);if(_0x4c37b6['query'][_0x9a67('0x47')]){_0x4be1cb[_0x9a67('0x45')]=_[_0x9a67('0x48')](_0x4be1cb[_0x9a67('0x45')],{'$or':_[_0x9a67('0x37')](_0x3e1f0c,function(_0x35d5d8){if(_0x35d5d8['type']!==_0x9a67('0x49')){var _0x3aabbf={};_0x3aabbf[_0x35d5d8[_0x9a67('0x34')]]={'$like':'%'+_0x4c37b6[_0x9a67('0x3e')][_0x9a67('0x47')]+'%'};return _0x3aabbf;}})});}_0x4be1cb=_[_0x9a67('0x48')]({},_0x4be1cb,_0x4c37b6[_0x9a67('0x4a')]);var _0x3fe8ed={'where':_0x4be1cb[_0x9a67('0x45')]};return db[_0x9a67('0x38')]['count'](_0x3fe8ed)['then'](function(_0x753915){_0x338fdf[_0x9a67('0x29')]=_0x753915;if(_0x4c37b6[_0x9a67('0x3e')][_0x9a67('0x4b')]){_0x4be1cb[_0x9a67('0x4c')]=[{'all':!![]}];}return db[_0x9a67('0x38')]['findAll'](_0x4be1cb);})[_0x9a67('0x1e')](function(_0x20821e){_0x338fdf[_0x9a67('0x4d')]=_0x20821e;return _0x338fdf;})[_0x9a67('0x1e')](respondWithFilteredResult(_0x3f148b,_0x4be1cb))['catch'](handleError(_0x3f148b,null));};exports['show']=function(_0x105111,_0x4b6774){var _0x3c98ee={'raw':![],'where':{'id':_0x105111[_0x9a67('0x4e')]['id']}},_0x498cd7={};_0x498cd7['model']=_['keys'](db[_0x9a67('0x38')][_0x9a67('0x39')]);_0x498cd7['query']=_[_0x9a67('0x3d')](_0x105111[_0x9a67('0x3e')]);_0x498cd7[_0x9a67('0x3f')]=_['intersection'](_0x498cd7[_0x9a67('0x3c')],_0x498cd7[_0x9a67('0x3e')]);_0x3c98ee[_0x9a67('0x40')]=_[_0x9a67('0x4f')](_0x498cd7[_0x9a67('0x3c')],qs[_0x9a67('0x41')](_0x105111[_0x9a67('0x3e')]['fields']));_0x3c98ee['attributes']=_0x3c98ee[_0x9a67('0x40')][_0x9a67('0x50')]?_0x3c98ee[_0x9a67('0x40')]:_0x498cd7[_0x9a67('0x3c')];if(_0x105111['query']['includeAll']){_0x3c98ee['include']=[{'all':!![]}];}_0x3c98ee=_[_0x9a67('0x48')]({},_0x3c98ee,_0x105111['options']);return db[_0x9a67('0x38')]['find'](_0x3c98ee)['then'](handleEntityNotFound(_0x4b6774,null))[_0x9a67('0x1e')](respondWithResult(_0x4b6774,null))[_0x9a67('0x51')](handleError(_0x4b6774,null));};exports['create']=function(_0x327905,_0x44bb7b){return db[_0x9a67('0x38')][_0x9a67('0x52')](_0x327905[_0x9a67('0x53')],{})[_0x9a67('0x1e')](respondWithResult(_0x44bb7b,0xc9))[_0x9a67('0x51')](handleError(_0x44bb7b,null));};exports[_0x9a67('0x30')]=function(_0x3b094e,_0x2c8c7d){if(_0x3b094e[_0x9a67('0x53')]['id']){delete _0x3b094e[_0x9a67('0x53')]['id'];}return db[_0x9a67('0x38')][_0x9a67('0x54')]({'where':{'id':_0x3b094e['params']['id']}})[_0x9a67('0x1e')](handleEntityNotFound(_0x2c8c7d,null))[_0x9a67('0x1e')](saveUpdates(_0x3b094e[_0x9a67('0x53')],null))['then'](respondWithResult(_0x2c8c7d,null))[_0x9a67('0x51')](handleError(_0x2c8c7d,null));};exports['destroy']=function(_0x14c10b,_0x105ef3){return db[_0x9a67('0x38')][_0x9a67('0x54')]({'where':{'id':_0x14c10b[_0x9a67('0x4e')]['id']}})[_0x9a67('0x1e')](handleEntityNotFound(_0x105ef3,null))['then'](removeEntity(_0x105ef3,null))['catch'](handleError(_0x105ef3,null));};exports[_0x9a67('0x55')]=function(_0x565ee0,_0x10dbd3,_0x2cd6bf){var _0x107a50={};var _0x16651f={};var _0x374ed0;var _0x2c3ff3;return db[_0x9a67('0x38')]['findOne']({'where':{'id':_0x565ee0[_0x9a67('0x4e')]['id']}})[_0x9a67('0x1e')](handleEntityNotFound(_0x10dbd3,null))['then'](function(_0x333c7b){if(_0x333c7b){_0x374ed0=_0x333c7b;_0x16651f[_0x9a67('0x3c')]=_[_0x9a67('0x3d')](db[_0x9a67('0x56')][_0x9a67('0x39')]);_0x16651f[_0x9a67('0x3e')]=_[_0x9a67('0x3d')](_0x565ee0['query']);_0x16651f[_0x9a67('0x3f')]=_[_0x9a67('0x4f')](_0x16651f[_0x9a67('0x3c')],_0x16651f['query']);_0x107a50[_0x9a67('0x40')]=_['intersection'](_0x16651f['model'],qs[_0x9a67('0x41')](_0x565ee0[_0x9a67('0x3e')][_0x9a67('0x41')]));_0x107a50['attributes']=_0x107a50[_0x9a67('0x40')]['length']?_0x107a50[_0x9a67('0x40')]:_0x16651f['model'];_0x107a50[_0x9a67('0x43')]=qs[_0x9a67('0x44')](_0x565ee0[_0x9a67('0x3e')][_0x9a67('0x44')]);_0x107a50['where']=qs[_0x9a67('0x3f')](_[_0x9a67('0x46')](_0x565ee0['query'],_0x16651f['filters']));if(_0x565ee0['query'][_0x9a67('0x47')]){_0x107a50[_0x9a67('0x45')]=_[_0x9a67('0x48')](_0x107a50[_0x9a67('0x45')],{'$or':_['map'](_0x107a50[_0x9a67('0x40')],function(_0x4667a3){var _0x3d8c69={};_0x3d8c69[_0x4667a3]={'$like':'%'+_0x565ee0[_0x9a67('0x3e')][_0x9a67('0x47')]+'%'};return _0x3d8c69;})});}_0x107a50=_[_0x9a67('0x48')]({},_0x107a50,_0x565ee0[_0x9a67('0x4a')]);return _0x374ed0['getConfigurations'](_0x107a50);}})[_0x9a67('0x1e')](function(_0xdd1c45){if(_0xdd1c45){_0x2c3ff3=_0xdd1c45['length'];if(!_0x565ee0['query']['hasOwnProperty'](_0x9a67('0x42'))){_0x107a50[_0x9a67('0x2b')]=qs[_0x9a67('0x2b')](_0x565ee0[_0x9a67('0x3e')][_0x9a67('0x2b')]);_0x107a50[_0x9a67('0x2a')]=qs['offset'](_0x565ee0['query']['offset']);}return _0x374ed0['getConfigurations'](_0x107a50);}})[_0x9a67('0x1e')](function(_0x50b64b){if(_0x50b64b){return _0x50b64b?{'count':_0x2c3ff3,'rows':_0x50b64b}:null;}})['then'](respondWithResult(_0x10dbd3,null))[_0x9a67('0x51')](handleError(_0x10dbd3,null));};exports[_0x9a67('0x57')]=function(_0x3ae73f,_0x519721,_0x374823){if(_0x3ae73f[_0x9a67('0x53')]['id']){delete _0x3ae73f[_0x9a67('0x53')]['id'];}return db['FreshdeskAccount'][_0x9a67('0x58')]({'where':{'id':_0x3ae73f['params']['id']}})['then'](handleEntityNotFound(_0x519721,null))[_0x9a67('0x1e')](function(_0x26164c){if(_0x26164c){_0x3ae73f[_0x9a67('0x53')]['AccountId']=_0x26164c['id'];_0x3ae73f[_0x9a67('0x53')][_0x9a67('0x59')]=integrations['getSubjects'](_0x3ae73f[_0x9a67('0x53')][_0x9a67('0x5a')],_0x3ae73f[_0x9a67('0x53')][_0x9a67('0x3b')]);_0x3ae73f['body'][_0x9a67('0x5b')]=integrations[_0x9a67('0x5c')](_0x3ae73f[_0x9a67('0x53')][_0x9a67('0x5a')],_0x3ae73f[_0x9a67('0x53')][_0x9a67('0x3b')]);return db['FreshdeskConfiguration'][_0x9a67('0x52')](_0x3ae73f[_0x9a67('0x53')],{'include':[{'model':db[_0x9a67('0x5d')],'as':_0x9a67('0x59')},{'model':db['FreshdeskField'],'as':'Descriptions'}]});}return null;})[_0x9a67('0x1e')](respondWithResult(_0x519721,null))[_0x9a67('0x51')](handleError(_0x519721,null));};exports[_0x9a67('0x5e')]=function(_0x5592e4,_0x5c4f4a,_0x1681d9){var _0x47591d='';return db['FreshdeskAccount'][_0x9a67('0x58')]({'where':{'id':_0x5592e4[_0x9a67('0x4e')]['id']},'attributes':['id','remoteUri',_0x9a67('0x5f')]})[_0x9a67('0x1e')](handleEntityNotFound(_0x5c4f4a,null))[_0x9a67('0x1e')](function(_0x3613a2){if(_0x3613a2){_0x47591d=_0x3613a2[_0x9a67('0x60')];var _0x21aa18=_0x47591d[_0x9a67('0x61')](-0x1);if(_0x21aa18==='/'){_0x47591d=_0x47591d[_0x9a67('0x62')](0x0,_0x47591d[_0x9a67('0x63')](_0x21aa18));}return rp({'method':'GET','uri':util[_0x9a67('0x64')](_0x9a67('0x65'),_0x47591d,_0x9a67('0x66')),'headers':{'Authorization':util['format'](_0x9a67('0x67'),new Buffer(util[_0x9a67('0x64')](_0x9a67('0x68'),_0x3613a2[_0x9a67('0x5f')]))['toString']('base64'))},'json':!![]});}})[_0x9a67('0x1e')](function(_0x1b2f47){if(_0x1b2f47){var _0x2c8440=[_0x9a67('0x69'),_0x9a67('0x6a'),'agent','description',_0x9a67('0x27'),_0x9a67('0x6b'),'group',_0x9a67('0x6c'),_0x9a67('0x6d'),_0x9a67('0x6e'),'company'];_[_0x9a67('0x6f')](_0x1b2f47,function(_0x1a95d4){return _0x2c8440[_0x9a67('0x70')](_0x1a95d4['name'])||!_0x1a95d4[_0x9a67('0x71')]&&_0x1a95d4[_0x9a67('0x3b')]!=='custom_text'&&_0x1a95d4[_0x9a67('0x3b')]!==_0x9a67('0x72');});return{'count':_0x1b2f47[_0x9a67('0x50')],'rows':_[_0x9a67('0x37')](_0x1b2f47,function(_0xaf6e31){return{'id':_0xaf6e31[_0x9a67('0x34')],'name':_0xaf6e31[_0x9a67('0x73')],'custom':!_0xaf6e31[_0x9a67('0x71')],'options':_0xaf6e31[_0x9a67('0x74')]?_[_0x9a67('0x37')](_0xaf6e31['choices'],function(_0x3d05ae){return{'name':_[_0x9a67('0x75')](_0x3d05ae),'value':_0x3d05ae};}):[]};})};}})['then'](respondWithResult(_0x5c4f4a,null))[_0x9a67('0x51')](function(_0x2a411f){var _0x3677db=_0x5592e4[_0x9a67('0x3e')]['test']?0x1f4:_0x2a411f[_0x9a67('0x76')]||0x1f4;logger['error'](_0x9a67('0x77'),'getFields',_0x3677db,JSON[_0x9a67('0x78')](_0x2a411f));delete _0x2a411f[_0x9a67('0x34')];if(_0x3677db===0x191){_0x3677db=0x190;}_0x5c4f4a['status'](_0x3677db)[_0x9a67('0x35')](_0x5592e4[_0x9a67('0x3e')][_0x9a67('0x79')]?{'message':'Wrong\x20credentials','statusCode':_0x2a411f[_0x9a67('0x76')]}:_0x2a411f);});};