c47fa24ee64c5b8e1fb7509363703fb9240cb093
[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 _0x49b7=['name','send','FreshsalesAccount','rawAttributes','fieldName','type','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','rows','show','params','keys','find','create','body','destroy','findOne','FreshsalesConfiguration','map','getConfigurations','addConfiguration','Subjects','getSubjects','Descriptions','channel','FreshsalesField','getFields','username','remoteUri','apiKey','slice','format','%s%s','/api/selector/owners','Token\x20token=','users','email','Requested\x20Resource\x20not\x20Found','statusCode','getFields,\x20%s,\x20%s,\x20%s','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','api','../../config/license/util','../../mysqldb','jayson/promise','client','http','info','FreshsalesAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','end','status','json','offset','limit','Content-Range','save','update','then','sendStatus','stack'];(function(_0x320aea,_0x4c5125){var _0x38d380=function(_0x15e649){while(--_0x15e649){_0x320aea['push'](_0x320aea['shift']());}};_0x38d380(++_0x4c5125);}(_0x49b7,0x181));var _0x749b=function(_0x3eff21,_0x5bf36c){_0x3eff21=_0x3eff21-0x0;var _0x1945bb=_0x49b7[_0x3eff21];return _0x1945bb;};'use strict';var emlformat=require(_0x749b('0x0'));var rimraf=require(_0x749b('0x1'));var zipdir=require(_0x749b('0x2'));var jsonpatch=require(_0x749b('0x3'));var rp=require(_0x749b('0x4'));var moment=require(_0x749b('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x749b('0x6'));var path=require(_0x749b('0x7'));var sox=require(_0x749b('0x8'));var csv=require(_0x749b('0x9'));var ejs=require(_0x749b('0xa'));var fs=require('fs');var fs_extra=require(_0x749b('0xb'));var _=require(_0x749b('0xc'));var squel=require(_0x749b('0xd'));var crypto=require('crypto');var jsforce=require(_0x749b('0xe'));var deskjs=require(_0x749b('0xf'));var toCsv=require('to-csv');var querystring=require(_0x749b('0x10'));var Papa=require(_0x749b('0x11'));var Redis=require(_0x749b('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x749b('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x749b('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x749b('0x15'));var db=require(_0x749b('0x16'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0x749b('0x17'));var client=jayson[_0x749b('0x18')][_0x749b('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x2d2ecb,_0x35396a,_0x25f693,_0x481cc1){return new BPromise(function(_0x127f38,_0x1c3cd5){var _0x58e193=_0x481cc1||client;return _0x58e193['request'](_0x2d2ecb,_0x25f693)['then'](function(_0x58d5f9){logger[_0x749b('0x1a')](_0x749b('0x1b'),_0x35396a,_0x749b('0x1c'));logger[_0x749b('0x1d')]('FreshsalesAccount,\x20%s,\x20%s,\x20%s',_0x35396a,_0x749b('0x1c'),JSON[_0x749b('0x1e')](_0x58d5f9));if(_0x58d5f9[_0x749b('0x1f')]){if(_0x58d5f9[_0x749b('0x1f')][_0x749b('0x20')]===0x1f4){logger[_0x749b('0x1f')]('FreshsalesAccount,\x20%s,\x20%s',_0x35396a,_0x58d5f9[_0x749b('0x1f')][_0x749b('0x21')]);return _0x1c3cd5(_0x58d5f9[_0x749b('0x1f')][_0x749b('0x21')]);}logger[_0x749b('0x1f')](_0x749b('0x1b'),_0x35396a,_0x58d5f9[_0x749b('0x1f')]['message']);return _0x127f38(_0x58d5f9[_0x749b('0x1f')][_0x749b('0x21')]);}else{logger[_0x749b('0x1a')](_0x749b('0x1b'),_0x35396a,'request\x20sent');_0x127f38(_0x58d5f9[_0x749b('0x22')]['message']);}})[_0x749b('0x23')](function(_0xa39626){logger['error'](_0x749b('0x1b'),_0x35396a,_0xa39626);_0x1c3cd5(_0xa39626);});});}function respondWithStatusCode(_0xab6a71,_0x4bad02){_0x4bad02=_0x4bad02||0xcc;return function(_0x3a530c){if(_0x3a530c){return _0xab6a71['sendStatus'](_0x4bad02);}return _0xab6a71['status'](_0x4bad02)[_0x749b('0x24')]();};}function respondWithResult(_0x34bbde,_0x4ec064){_0x4ec064=_0x4ec064||0xc8;return function(_0x377aef){if(_0x377aef){return _0x34bbde[_0x749b('0x25')](_0x4ec064)[_0x749b('0x26')](_0x377aef);}};}function respondWithFilteredResult(_0x23a3fd,_0x1cadef){return function(_0x5b8358){if(_0x5b8358){var _0x109574=_0x5b8358['count'],_0x3fd671=_0x1cadef[_0x749b('0x27')],_0x3f2b8f=_0x1cadef[_0x749b('0x27')]+_0x1cadef[_0x749b('0x28')],_0x549a9f;if(_0x3f2b8f>=_0x109574){_0x3f2b8f=_0x109574;_0x549a9f=0xc8;}else{_0x549a9f=0xce;}_0x23a3fd[_0x749b('0x25')](_0x549a9f);return _0x23a3fd['set'](_0x749b('0x29'),_0x3fd671+'-'+_0x3f2b8f+'/'+_0x109574)['json'](_0x5b8358);}return null;};}function patchUpdates(_0x5ad8ff){return function(_0x138f3c){try{jsonpatch['apply'](_0x138f3c,_0x5ad8ff,!![]);}catch(_0x375d31){return BPromise['reject'](_0x375d31);}return _0x138f3c[_0x749b('0x2a')]();};}function saveUpdates(_0x2d6184,_0x58af53){return function(_0xa39e92){if(_0xa39e92){return _0xa39e92[_0x749b('0x2b')](_0x2d6184)[_0x749b('0x2c')](function(_0x42b2b1){return _0x42b2b1;});}return null;};}function removeEntity(_0x19aaa3,_0x584ac1){return function(_0x2cdff7){if(_0x2cdff7){return _0x2cdff7['destroy']()[_0x749b('0x2c')](function(){_0x19aaa3[_0x749b('0x25')](0xcc)[_0x749b('0x24')]();});}};}function handleEntityNotFound(_0x2d15bb,_0x1b3c56){return function(_0x370593){if(!_0x370593){_0x2d15bb[_0x749b('0x2d')](0x194);}return _0x370593;};}function handleError(_0x5e1f67,_0x15e7d5){_0x15e7d5=_0x15e7d5||0x1f4;return function(_0x5c33b6){logger[_0x749b('0x1f')](_0x5c33b6[_0x749b('0x2e')]);if(_0x5c33b6[_0x749b('0x2f')]){delete _0x5c33b6[_0x749b('0x2f')];}_0x5e1f67[_0x749b('0x25')](_0x15e7d5)[_0x749b('0x30')](_0x5c33b6);};}exports['index']=function(_0x9ab696,_0x12ad2f){var _0x44dd38={},_0x1495e5={},_0x289df7={'count':0x0,'rows':[]};var _0x2340f5=_['map'](db[_0x749b('0x31')][_0x749b('0x32')],function(_0x37f88b){return{'name':_0x37f88b[_0x749b('0x33')],'type':_0x37f88b[_0x749b('0x34')]['key']};});_0x1495e5[_0x749b('0x35')]=_['map'](_0x2340f5,_0x749b('0x2f'));_0x1495e5[_0x749b('0x36')]=_['keys'](_0x9ab696['query']);_0x1495e5[_0x749b('0x37')]=_[_0x749b('0x38')](_0x1495e5[_0x749b('0x35')],_0x1495e5['query']);_0x44dd38['attributes']=_[_0x749b('0x38')](_0x1495e5[_0x749b('0x35')],qs['fields'](_0x9ab696[_0x749b('0x36')][_0x749b('0x39')]));_0x44dd38[_0x749b('0x3a')]=_0x44dd38[_0x749b('0x3a')][_0x749b('0x3b')]?_0x44dd38[_0x749b('0x3a')]:_0x1495e5[_0x749b('0x35')];if(!_0x9ab696[_0x749b('0x36')][_0x749b('0x3c')](_0x749b('0x3d'))){_0x44dd38[_0x749b('0x28')]=qs[_0x749b('0x28')](_0x9ab696[_0x749b('0x36')]['limit']);_0x44dd38[_0x749b('0x27')]=qs[_0x749b('0x27')](_0x9ab696[_0x749b('0x36')]['offset']);}_0x44dd38[_0x749b('0x3e')]=qs[_0x749b('0x3f')](_0x9ab696['query']['sort']);_0x44dd38[_0x749b('0x40')]=qs[_0x749b('0x37')](_[_0x749b('0x41')](_0x9ab696[_0x749b('0x36')],_0x1495e5[_0x749b('0x37')]),_0x2340f5);if(_0x9ab696[_0x749b('0x36')][_0x749b('0x42')]){_0x44dd38[_0x749b('0x40')]=_[_0x749b('0x43')](_0x44dd38[_0x749b('0x40')],{'$or':_['map'](_0x2340f5,function(_0x144375){if(_0x144375[_0x749b('0x34')]!==_0x749b('0x44')){var _0x2bc37e={};_0x2bc37e[_0x144375['name']]={'$like':'%'+_0x9ab696[_0x749b('0x36')][_0x749b('0x42')]+'%'};return _0x2bc37e;}})});}_0x44dd38=_[_0x749b('0x43')]({},_0x44dd38,_0x9ab696[_0x749b('0x45')]);var _0x3289c3={'where':_0x44dd38[_0x749b('0x40')]};return db[_0x749b('0x31')]['count'](_0x3289c3)[_0x749b('0x2c')](function(_0x26f41d){_0x289df7[_0x749b('0x46')]=_0x26f41d;if(_0x9ab696[_0x749b('0x36')][_0x749b('0x47')]){_0x44dd38[_0x749b('0x48')]=[{'all':!![]}];}return db['FreshsalesAccount'][_0x749b('0x49')](_0x44dd38);})['then'](function(_0x2c74b9){_0x289df7[_0x749b('0x4a')]=_0x2c74b9;return _0x289df7;})[_0x749b('0x2c')](respondWithFilteredResult(_0x12ad2f,_0x44dd38))[_0x749b('0x23')](handleError(_0x12ad2f,null));};exports[_0x749b('0x4b')]=function(_0x473f5,_0x37180e){var _0x3219d6={'raw':![],'where':{'id':_0x473f5[_0x749b('0x4c')]['id']}},_0xbe6768={};_0xbe6768['model']=_[_0x749b('0x4d')](db['FreshsalesAccount'][_0x749b('0x32')]);_0xbe6768['query']=_[_0x749b('0x4d')](_0x473f5[_0x749b('0x36')]);_0xbe6768[_0x749b('0x37')]=_[_0x749b('0x38')](_0xbe6768[_0x749b('0x35')],_0xbe6768[_0x749b('0x36')]);_0x3219d6[_0x749b('0x3a')]=_[_0x749b('0x38')](_0xbe6768[_0x749b('0x35')],qs[_0x749b('0x39')](_0x473f5[_0x749b('0x36')][_0x749b('0x39')]));_0x3219d6['attributes']=_0x3219d6[_0x749b('0x3a')][_0x749b('0x3b')]?_0x3219d6[_0x749b('0x3a')]:_0xbe6768[_0x749b('0x35')];if(_0x473f5[_0x749b('0x36')][_0x749b('0x47')]){_0x3219d6[_0x749b('0x48')]=[{'all':!![]}];}_0x3219d6=_['merge']({},_0x3219d6,_0x473f5[_0x749b('0x45')]);return db[_0x749b('0x31')][_0x749b('0x4e')](_0x3219d6)[_0x749b('0x2c')](handleEntityNotFound(_0x37180e,null))['then'](respondWithResult(_0x37180e,null))[_0x749b('0x23')](handleError(_0x37180e,null));};exports[_0x749b('0x4f')]=function(_0x5f2aa4,_0x48ac32){return db[_0x749b('0x31')]['create'](_0x5f2aa4['body'],{})[_0x749b('0x2c')](respondWithResult(_0x48ac32,0xc9))[_0x749b('0x23')](handleError(_0x48ac32,null));};exports[_0x749b('0x2b')]=function(_0xe8cf42,_0x1200bf){if(_0xe8cf42[_0x749b('0x50')]['id']){delete _0xe8cf42[_0x749b('0x50')]['id'];}return db['FreshsalesAccount'][_0x749b('0x4e')]({'where':{'id':_0xe8cf42[_0x749b('0x4c')]['id']}})[_0x749b('0x2c')](handleEntityNotFound(_0x1200bf,null))[_0x749b('0x2c')](saveUpdates(_0xe8cf42[_0x749b('0x50')],null))[_0x749b('0x2c')](respondWithResult(_0x1200bf,null))[_0x749b('0x23')](handleError(_0x1200bf,null));};exports[_0x749b('0x51')]=function(_0x3281c7,_0x1eae23){return db[_0x749b('0x31')][_0x749b('0x4e')]({'where':{'id':_0x3281c7[_0x749b('0x4c')]['id']}})['then'](handleEntityNotFound(_0x1eae23,null))['then'](removeEntity(_0x1eae23,null))[_0x749b('0x23')](handleError(_0x1eae23,null));};exports['getConfigurations']=function(_0x357597,_0x2d27cc,_0x39e384){var _0x38be21={};var _0x5a34d7={};var _0x2b1058;var _0x1f4385;return db['FreshsalesAccount'][_0x749b('0x52')]({'where':{'id':_0x357597[_0x749b('0x4c')]['id']}})[_0x749b('0x2c')](handleEntityNotFound(_0x2d27cc,null))[_0x749b('0x2c')](function(_0x2c191d){if(_0x2c191d){_0x2b1058=_0x2c191d;_0x5a34d7[_0x749b('0x35')]=_[_0x749b('0x4d')](db[_0x749b('0x53')]['rawAttributes']);_0x5a34d7[_0x749b('0x36')]=_[_0x749b('0x4d')](_0x357597[_0x749b('0x36')]);_0x5a34d7[_0x749b('0x37')]=_[_0x749b('0x38')](_0x5a34d7[_0x749b('0x35')],_0x5a34d7[_0x749b('0x36')]);_0x38be21[_0x749b('0x3a')]=_[_0x749b('0x38')](_0x5a34d7[_0x749b('0x35')],qs[_0x749b('0x39')](_0x357597[_0x749b('0x36')]['fields']));_0x38be21[_0x749b('0x3a')]=_0x38be21['attributes'][_0x749b('0x3b')]?_0x38be21[_0x749b('0x3a')]:_0x5a34d7['model'];_0x38be21[_0x749b('0x3e')]=qs[_0x749b('0x3f')](_0x357597[_0x749b('0x36')][_0x749b('0x3f')]);_0x38be21[_0x749b('0x40')]=qs[_0x749b('0x37')](_['pick'](_0x357597[_0x749b('0x36')],_0x5a34d7['filters']));if(_0x357597[_0x749b('0x36')][_0x749b('0x42')]){_0x38be21[_0x749b('0x40')]=_[_0x749b('0x43')](_0x38be21[_0x749b('0x40')],{'$or':_[_0x749b('0x54')](_0x38be21[_0x749b('0x3a')],function(_0xf04284){var _0x4e3e2b={};_0x4e3e2b[_0xf04284]={'$like':'%'+_0x357597[_0x749b('0x36')]['filter']+'%'};return _0x4e3e2b;})});}_0x38be21=_['merge']({},_0x38be21,_0x357597[_0x749b('0x45')]);return _0x2b1058[_0x749b('0x55')](_0x38be21);}})[_0x749b('0x2c')](function(_0x1356cd){if(_0x1356cd){_0x1f4385=_0x1356cd[_0x749b('0x3b')];if(!_0x357597['query'][_0x749b('0x3c')]('nolimit')){_0x38be21[_0x749b('0x28')]=qs[_0x749b('0x28')](_0x357597[_0x749b('0x36')][_0x749b('0x28')]);_0x38be21['offset']=qs[_0x749b('0x27')](_0x357597[_0x749b('0x36')][_0x749b('0x27')]);}return _0x2b1058[_0x749b('0x55')](_0x38be21);}})[_0x749b('0x2c')](function(_0x20eb44){if(_0x20eb44){return _0x20eb44?{'count':_0x1f4385,'rows':_0x20eb44}:null;}})[_0x749b('0x2c')](respondWithResult(_0x2d27cc,null))[_0x749b('0x23')](handleError(_0x2d27cc,null));};exports[_0x749b('0x56')]=function(_0xc48d0a,_0x52211a,_0x444066){if(_0xc48d0a[_0x749b('0x50')]['id']){delete _0xc48d0a[_0x749b('0x50')]['id'];}return db[_0x749b('0x31')]['findOne']({'where':{'id':_0xc48d0a[_0x749b('0x4c')]['id']}})['then'](handleEntityNotFound(_0x52211a,null))[_0x749b('0x2c')](function(_0x252590){if(_0x252590){_0xc48d0a[_0x749b('0x50')]['AccountId']=_0x252590['id'];_0xc48d0a[_0x749b('0x50')][_0x749b('0x57')]=integrations[_0x749b('0x58')](_0xc48d0a[_0x749b('0x50')]['channel'],_0xc48d0a[_0x749b('0x50')][_0x749b('0x34')]);_0xc48d0a[_0x749b('0x50')][_0x749b('0x59')]=integrations['getDescriptions'](_0xc48d0a[_0x749b('0x50')][_0x749b('0x5a')],_0xc48d0a[_0x749b('0x50')]['type']);return db[_0x749b('0x53')][_0x749b('0x4f')](_0xc48d0a[_0x749b('0x50')],{'include':[{'model':db[_0x749b('0x5b')],'as':'Subjects'},{'model':db[_0x749b('0x5b')],'as':_0x749b('0x59')}]});}return null;})[_0x749b('0x2c')](respondWithResult(_0x52211a,null))[_0x749b('0x23')](handleError(_0x52211a,null));};exports[_0x749b('0x5c')]=function(_0x381c93,_0x9814da,_0x43a80e){var _0x2f68fd='';var _0x1504b5='';return db[_0x749b('0x31')][_0x749b('0x52')]({'where':{'id':_0x381c93[_0x749b('0x4c')]['id']},'attributes':['id',_0x749b('0x5d'),_0x749b('0x5e'),_0x749b('0x5f')]})[_0x749b('0x2c')](handleEntityNotFound(_0x9814da,null))['then'](function(_0xa43d4b){if(_0xa43d4b){_0x1504b5=_0xa43d4b[_0x749b('0x5d')];_0x2f68fd=_0xa43d4b[_0x749b('0x5e')];var _0x91f5ed=_0xa43d4b['remoteUri'][_0x749b('0x60')](-0x1);if(_0x91f5ed==='/'){_0x2f68fd=_0x2f68fd['substring'](0x0,_0x2f68fd['lastIndexOf'](_0x91f5ed));}return rp({'method':'GET','uri':util[_0x749b('0x61')](_0x749b('0x62'),_0x2f68fd,_0x749b('0x63')),'headers':{'Authorization':_0x749b('0x64')+_0xa43d4b['apiKey']},'json':!![]});}})[_0x749b('0x2c')](function(_0x452926){if(_0x452926){var _0x31096c=_0x452926[_0x749b('0x65')];var _0x4e7d03=![];var _0xd2715e=null;for(_0xd2715e=0x0;_0xd2715e<_0x31096c[_0x749b('0x3b')];_0xd2715e++){if(_0x31096c[_0xd2715e][_0x749b('0x66')]===_0x1504b5){_0x4e7d03=!![];}}if(_0x4e7d03){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x749b('0x67')});}}})['then'](respondWithResult(_0x9814da,null))[_0x749b('0x23')](function(_0xdadef0){var _0x527dd1=_0x381c93[_0x749b('0x36')]['test']?0x1f4:_0xdadef0[_0x749b('0x68')]||0x1f4;logger['error'](_0x749b('0x69'),'getFields',_0x527dd1,JSON[_0x749b('0x1e')](_0xdadef0));delete _0xdadef0[_0x749b('0x2f')];if(_0x527dd1===0x191){_0x527dd1=0x190;}_0x9814da['status'](_0x527dd1)[_0x749b('0x30')](_0x381c93[_0x749b('0x36')][_0x749b('0x6a')]?{'message':_0x749b('0x6b'),'statusCode':_0xdadef0[_0x749b('0x68')]}:_0xdadef0);});};