1db87c46f1c952b2b4738fcecd8712f0c3b20d02
[motion2.git] / server / api / intFreshsalesAccount / intFreshsalesAccount.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 _0x3c81=['keys','rawAttributes','find','create','body','params','getConfigurations','FreshsalesConfiguration','findOne','Subjects','getSubjects','channel','Descriptions','FreshsalesField','getFields','username','apiKey','remoteUri','slice','substring','lastIndexOf','GET','%s%s','/api/selector/owners','Token\x20token=','users','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../components/integrations/configuration','status','end','json','offset','limit','count','Content-Range','reject','save','update','then','destroy','sendStatus','error','stack','send','index','map','type','key','model','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','name','options','FreshsalesAccount','includeAll','findAll','rows','catch'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x3c81,0x148));var _0x13c8=function(_0x3d4895,_0x4d3602){_0x3d4895=_0x3d4895-0x0;var _0x147a70=_0x3c81[_0x3d4895];return _0x147a70;};'use strict';var emlformat=require(_0x13c8('0x0'));var rimraf=require(_0x13c8('0x1'));var zipdir=require(_0x13c8('0x2'));var jsonpatch=require(_0x13c8('0x3'));var rp=require('request-promise');var moment=require(_0x13c8('0x4'));var BPromise=require(_0x13c8('0x5'));var Mustache=require('mustache');var util=require(_0x13c8('0x6'));var path=require(_0x13c8('0x7'));var sox=require(_0x13c8('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x13c8('0x9'));var _=require(_0x13c8('0xa'));var squel=require(_0x13c8('0xb'));var crypto=require(_0x13c8('0xc'));var jsforce=require(_0x13c8('0xd'));var deskjs=require(_0x13c8('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x13c8('0xf'));var Redis=require(_0x13c8('0x10'));var authService=require(_0x13c8('0x11'));var qs=require(_0x13c8('0x12'));var as=require(_0x13c8('0x13'));var hardwareService=require(_0x13c8('0x14'));var logger=require(_0x13c8('0x15'))('api');var utils=require('../../config/utils');var config=require(_0x13c8('0x16'));var licenseUtil=require(_0x13c8('0x17'));var db=require('../../mysqldb')['db'];var integrations=require(_0x13c8('0x18'));function respondWithStatusCode(_0x3af237,_0x2a76ca){_0x2a76ca=_0x2a76ca||0xcc;return function(_0x5ed14e){if(_0x5ed14e){return _0x3af237['sendStatus'](_0x2a76ca);}return _0x3af237[_0x13c8('0x19')](_0x2a76ca)[_0x13c8('0x1a')]();};}function respondWithResult(_0x21e539,_0x34d799){_0x34d799=_0x34d799||0xc8;return function(_0x3af762){if(_0x3af762){return _0x21e539[_0x13c8('0x19')](_0x34d799)[_0x13c8('0x1b')](_0x3af762);}};}function respondWithFilteredResult(_0x4f53fc,_0x43cf2f){return function(_0x23927b){if(_0x23927b){var _0x1f6258=typeof _0x43cf2f[_0x13c8('0x1c')]==='undefined'&&typeof _0x43cf2f[_0x13c8('0x1d')]==='undefined';var _0x4595fb=_0x23927b[_0x13c8('0x1e')];var _0x5bfa75=_0x1f6258?0x0:_0x43cf2f[_0x13c8('0x1c')];var _0x56bc38=_0x1f6258?_0x23927b[_0x13c8('0x1e')]:_0x43cf2f[_0x13c8('0x1c')]+_0x43cf2f[_0x13c8('0x1d')];var _0x5e314a;if(_0x56bc38>=_0x4595fb){_0x56bc38=_0x4595fb;_0x5e314a=0xc8;}else{_0x5e314a=0xce;}_0x4f53fc[_0x13c8('0x19')](_0x5e314a);return _0x4f53fc['set'](_0x13c8('0x1f'),_0x5bfa75+'-'+_0x56bc38+'/'+_0x4595fb)[_0x13c8('0x1b')](_0x23927b);}return null;};}function patchUpdates(_0x148130){return function(_0x28e827){try{jsonpatch['apply'](_0x28e827,_0x148130,!![]);}catch(_0x100b82){return BPromise[_0x13c8('0x20')](_0x100b82);}return _0x28e827[_0x13c8('0x21')]();};}function saveUpdates(_0x48164d,_0x4369dc){return function(_0x12bd9b){if(_0x12bd9b){return _0x12bd9b[_0x13c8('0x22')](_0x48164d)[_0x13c8('0x23')](function(_0x341d33){return _0x341d33;});}return null;};}function removeEntity(_0x4f8119,_0x254044){return function(_0x572d62){if(_0x572d62){return _0x572d62[_0x13c8('0x24')]()['then'](function(){_0x4f8119['status'](0xcc)[_0x13c8('0x1a')]();});}};}function handleEntityNotFound(_0x103feb,_0x2a804f){return function(_0xf80665){if(!_0xf80665){_0x103feb[_0x13c8('0x25')](0x194);}return _0xf80665;};}function handleError(_0x221094,_0x4a6090){_0x4a6090=_0x4a6090||0x1f4;return function(_0x57d11d){logger[_0x13c8('0x26')](_0x57d11d[_0x13c8('0x27')]);if(_0x57d11d['name']){delete _0x57d11d['name'];}_0x221094[_0x13c8('0x19')](_0x4a6090)[_0x13c8('0x28')](_0x57d11d);};}exports[_0x13c8('0x29')]=function(_0x2811eb,_0x4c6ef3){var _0x54a855={},_0x50bc0a={},_0x15c69d={'count':0x0,'rows':[]};var _0x5dbb11=_[_0x13c8('0x2a')](db['FreshsalesAccount']['rawAttributes'],function(_0x3cd5a5){return{'name':_0x3cd5a5['fieldName'],'type':_0x3cd5a5[_0x13c8('0x2b')][_0x13c8('0x2c')]};});_0x50bc0a[_0x13c8('0x2d')]=_[_0x13c8('0x2a')](_0x5dbb11,'name');_0x50bc0a[_0x13c8('0x2e')]=_['keys'](_0x2811eb['query']);_0x50bc0a['filters']=_['intersection'](_0x50bc0a[_0x13c8('0x2d')],_0x50bc0a[_0x13c8('0x2e')]);_0x54a855[_0x13c8('0x2f')]=_[_0x13c8('0x30')](_0x50bc0a['model'],qs[_0x13c8('0x31')](_0x2811eb[_0x13c8('0x2e')][_0x13c8('0x31')]));_0x54a855[_0x13c8('0x2f')]=_0x54a855['attributes'][_0x13c8('0x32')]?_0x54a855[_0x13c8('0x2f')]:_0x50bc0a[_0x13c8('0x2d')];if(!_0x2811eb[_0x13c8('0x2e')][_0x13c8('0x33')](_0x13c8('0x34'))){_0x54a855[_0x13c8('0x1d')]=qs[_0x13c8('0x1d')](_0x2811eb['query'][_0x13c8('0x1d')]);_0x54a855[_0x13c8('0x1c')]=qs['offset'](_0x2811eb['query'][_0x13c8('0x1c')]);}_0x54a855[_0x13c8('0x35')]=qs[_0x13c8('0x36')](_0x2811eb['query']['sort']);_0x54a855[_0x13c8('0x37')]=qs[_0x13c8('0x38')](_[_0x13c8('0x39')](_0x2811eb[_0x13c8('0x2e')],_0x50bc0a[_0x13c8('0x38')]),_0x5dbb11);if(_0x2811eb[_0x13c8('0x2e')][_0x13c8('0x3a')]){_0x54a855[_0x13c8('0x37')]=_[_0x13c8('0x3b')](_0x54a855[_0x13c8('0x37')],{'$or':_[_0x13c8('0x2a')](_0x5dbb11,function(_0x2f104c){if(_0x2f104c['type']!==_0x13c8('0x3c')){var _0x195fe9={};_0x195fe9[_0x2f104c[_0x13c8('0x3d')]]={'$like':'%'+_0x2811eb[_0x13c8('0x2e')][_0x13c8('0x3a')]+'%'};return _0x195fe9;}})});}_0x54a855=_['merge']({},_0x54a855,_0x2811eb[_0x13c8('0x3e')]);var _0x21db17={'where':_0x54a855[_0x13c8('0x37')]};return db[_0x13c8('0x3f')]['count'](_0x21db17)[_0x13c8('0x23')](function(_0x2a5af8){_0x15c69d[_0x13c8('0x1e')]=_0x2a5af8;if(_0x2811eb[_0x13c8('0x2e')][_0x13c8('0x40')]){_0x54a855['include']=[{'all':!![]}];}return db[_0x13c8('0x3f')][_0x13c8('0x41')](_0x54a855);})[_0x13c8('0x23')](function(_0x1a6362){_0x15c69d[_0x13c8('0x42')]=_0x1a6362;return _0x15c69d;})[_0x13c8('0x23')](respondWithFilteredResult(_0x4c6ef3,_0x54a855))[_0x13c8('0x43')](handleError(_0x4c6ef3,null));};exports['show']=function(_0x3e1e33,_0x1ddc80){var _0x33d73c={'raw':![],'where':{'id':_0x3e1e33['params']['id']}},_0xae45f={};_0xae45f[_0x13c8('0x2d')]=_[_0x13c8('0x44')](db[_0x13c8('0x3f')][_0x13c8('0x45')]);_0xae45f['query']=_[_0x13c8('0x44')](_0x3e1e33['query']);_0xae45f[_0x13c8('0x38')]=_[_0x13c8('0x30')](_0xae45f[_0x13c8('0x2d')],_0xae45f[_0x13c8('0x2e')]);_0x33d73c[_0x13c8('0x2f')]=_[_0x13c8('0x30')](_0xae45f[_0x13c8('0x2d')],qs[_0x13c8('0x31')](_0x3e1e33[_0x13c8('0x2e')][_0x13c8('0x31')]));_0x33d73c['attributes']=_0x33d73c[_0x13c8('0x2f')][_0x13c8('0x32')]?_0x33d73c[_0x13c8('0x2f')]:_0xae45f[_0x13c8('0x2d')];if(_0x3e1e33[_0x13c8('0x2e')]['includeAll']){_0x33d73c['include']=[{'all':!![]}];}_0x33d73c=_[_0x13c8('0x3b')]({},_0x33d73c,_0x3e1e33[_0x13c8('0x3e')]);return db[_0x13c8('0x3f')][_0x13c8('0x46')](_0x33d73c)[_0x13c8('0x23')](handleEntityNotFound(_0x1ddc80,null))[_0x13c8('0x23')](respondWithResult(_0x1ddc80,null))[_0x13c8('0x43')](handleError(_0x1ddc80,null));};exports['create']=function(_0x4d8396,_0x5c82d3){return db[_0x13c8('0x3f')][_0x13c8('0x47')](_0x4d8396[_0x13c8('0x48')],{})[_0x13c8('0x23')](respondWithResult(_0x5c82d3,0xc9))[_0x13c8('0x43')](handleError(_0x5c82d3,null));};exports[_0x13c8('0x22')]=function(_0x202d32,_0x5cece5){if(_0x202d32['body']['id']){delete _0x202d32[_0x13c8('0x48')]['id'];}return db[_0x13c8('0x3f')][_0x13c8('0x46')]({'where':{'id':_0x202d32[_0x13c8('0x49')]['id']}})[_0x13c8('0x23')](handleEntityNotFound(_0x5cece5,null))['then'](saveUpdates(_0x202d32[_0x13c8('0x48')],null))[_0x13c8('0x23')](respondWithResult(_0x5cece5,null))[_0x13c8('0x43')](handleError(_0x5cece5,null));};exports[_0x13c8('0x24')]=function(_0x2a2604,_0x3b52e3){return db['FreshsalesAccount']['find']({'where':{'id':_0x2a2604[_0x13c8('0x49')]['id']}})[_0x13c8('0x23')](handleEntityNotFound(_0x3b52e3,null))[_0x13c8('0x23')](removeEntity(_0x3b52e3,null))[_0x13c8('0x43')](handleError(_0x3b52e3,null));};exports[_0x13c8('0x4a')]=function(_0x19cb78,_0x3bea38,_0x31d5fa){var _0x393170={};var _0x536e47={};var _0x365c2d;var _0x3d269e;return db[_0x13c8('0x3f')]['findOne']({'where':{'id':_0x19cb78[_0x13c8('0x49')]['id']}})[_0x13c8('0x23')](handleEntityNotFound(_0x3bea38,null))[_0x13c8('0x23')](function(_0x4937fe){if(_0x4937fe){_0x365c2d=_0x4937fe;_0x536e47['model']=_[_0x13c8('0x44')](db[_0x13c8('0x4b')][_0x13c8('0x45')]);_0x536e47[_0x13c8('0x2e')]=_[_0x13c8('0x44')](_0x19cb78['query']);_0x536e47[_0x13c8('0x38')]=_[_0x13c8('0x30')](_0x536e47[_0x13c8('0x2d')],_0x536e47[_0x13c8('0x2e')]);_0x393170[_0x13c8('0x2f')]=_[_0x13c8('0x30')](_0x536e47[_0x13c8('0x2d')],qs[_0x13c8('0x31')](_0x19cb78[_0x13c8('0x2e')][_0x13c8('0x31')]));_0x393170['attributes']=_0x393170['attributes'][_0x13c8('0x32')]?_0x393170[_0x13c8('0x2f')]:_0x536e47['model'];_0x393170[_0x13c8('0x35')]=qs[_0x13c8('0x36')](_0x19cb78[_0x13c8('0x2e')][_0x13c8('0x36')]);_0x393170[_0x13c8('0x37')]=qs['filters'](_[_0x13c8('0x39')](_0x19cb78[_0x13c8('0x2e')],_0x536e47[_0x13c8('0x38')]));if(_0x19cb78['query'][_0x13c8('0x3a')]){_0x393170[_0x13c8('0x37')]=_['merge'](_0x393170[_0x13c8('0x37')],{'$or':_['map'](_0x393170[_0x13c8('0x2f')],function(_0x3a56d6){var _0x24491d={};_0x24491d[_0x3a56d6]={'$like':'%'+_0x19cb78[_0x13c8('0x2e')]['filter']+'%'};return _0x24491d;})});}_0x393170=_[_0x13c8('0x3b')]({},_0x393170,_0x19cb78[_0x13c8('0x3e')]);return _0x365c2d[_0x13c8('0x4a')](_0x393170);}})[_0x13c8('0x23')](function(_0x578c01){if(_0x578c01){_0x3d269e=_0x578c01[_0x13c8('0x32')];if(!_0x19cb78[_0x13c8('0x2e')][_0x13c8('0x33')](_0x13c8('0x34'))){_0x393170[_0x13c8('0x1d')]=qs[_0x13c8('0x1d')](_0x19cb78[_0x13c8('0x2e')][_0x13c8('0x1d')]);_0x393170[_0x13c8('0x1c')]=qs[_0x13c8('0x1c')](_0x19cb78[_0x13c8('0x2e')][_0x13c8('0x1c')]);}return _0x365c2d[_0x13c8('0x4a')](_0x393170);}})[_0x13c8('0x23')](function(_0x23d267){if(_0x23d267){return _0x23d267?{'count':_0x3d269e,'rows':_0x23d267}:null;}})['then'](respondWithResult(_0x3bea38,null))[_0x13c8('0x43')](handleError(_0x3bea38,null));};exports['addConfiguration']=function(_0x2db89a,_0x5990c9,_0x371d30){if(_0x2db89a[_0x13c8('0x48')]['id']){delete _0x2db89a[_0x13c8('0x48')]['id'];}return db['FreshsalesAccount'][_0x13c8('0x4c')]({'where':{'id':_0x2db89a['params']['id']}})[_0x13c8('0x23')](handleEntityNotFound(_0x5990c9,null))[_0x13c8('0x23')](function(_0xcf3320){if(_0xcf3320){_0x2db89a['body']['AccountId']=_0xcf3320['id'];_0x2db89a[_0x13c8('0x48')][_0x13c8('0x4d')]=integrations[_0x13c8('0x4e')](_0x2db89a[_0x13c8('0x48')][_0x13c8('0x4f')],_0x2db89a['body'][_0x13c8('0x2b')]);_0x2db89a[_0x13c8('0x48')][_0x13c8('0x50')]=integrations['getDescriptions'](_0x2db89a[_0x13c8('0x48')][_0x13c8('0x4f')],_0x2db89a[_0x13c8('0x48')]['type']);return db[_0x13c8('0x4b')][_0x13c8('0x47')](_0x2db89a['body'],{'include':[{'model':db[_0x13c8('0x51')],'as':_0x13c8('0x4d')},{'model':db[_0x13c8('0x51')],'as':_0x13c8('0x50')}]});}return null;})[_0x13c8('0x23')](respondWithResult(_0x5990c9,null))[_0x13c8('0x43')](handleError(_0x5990c9,null));};exports[_0x13c8('0x52')]=function(_0x43db34,_0xb23e55,_0x43d0e3){var _0x42b408='';var _0x93eb0a='';return db[_0x13c8('0x3f')][_0x13c8('0x4c')]({'where':{'id':_0x43db34['params']['id']},'attributes':['id',_0x13c8('0x53'),'remoteUri',_0x13c8('0x54')]})[_0x13c8('0x23')](handleEntityNotFound(_0xb23e55,null))['then'](function(_0x373a7){if(_0x373a7){_0x93eb0a=_0x373a7['username'];_0x42b408=_0x373a7['remoteUri'];var _0x1d57c6=_0x373a7[_0x13c8('0x55')][_0x13c8('0x56')](-0x1);if(_0x1d57c6==='/'){_0x42b408=_0x42b408[_0x13c8('0x57')](0x0,_0x42b408[_0x13c8('0x58')](_0x1d57c6));}return rp({'method':_0x13c8('0x59'),'uri':util['format'](_0x13c8('0x5a'),_0x42b408,_0x13c8('0x5b')),'headers':{'Authorization':_0x13c8('0x5c')+_0x373a7[_0x13c8('0x54')]},'json':!![]});}})[_0x13c8('0x23')](function(_0x1d39d2){if(_0x1d39d2){var _0x19ff80=_0x1d39d2[_0x13c8('0x5d')];var _0x20d676=![];var _0x536d08=null;for(_0x536d08=0x0;_0x536d08<_0x19ff80[_0x13c8('0x32')];_0x536d08++){if(_0x19ff80[_0x536d08]['email']===_0x93eb0a){_0x20d676=!![];}}if(_0x20d676){return!![];}else{throw new Error({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}})['then'](respondWithResult(_0xb23e55,null))[_0x13c8('0x43')](function(_0x2df4b5){var _0x73e1d0=_0x43db34[_0x13c8('0x2e')][_0x13c8('0x5e')]?0x1f4:_0x2df4b5[_0x13c8('0x5f')]||0x1f4;logger[_0x13c8('0x26')](_0x13c8('0x60'),_0x13c8('0x52'),_0x73e1d0,JSON[_0x13c8('0x61')](_0x2df4b5));delete _0x2df4b5['name'];if(_0x73e1d0===0x191){_0x73e1d0=0x190;}_0xb23e55[_0x13c8('0x19')](_0x73e1d0)[_0x13c8('0x28')](_0x43db34[_0x13c8('0x2e')][_0x13c8('0x5e')]?{'message':_0x13c8('0x62'),'statusCode':_0x2df4b5[_0x13c8('0x5f')]}:_0x2df4b5);});};