583fc1fb8cf91379a477dede36f0fd87eefc914e
[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 _0x7140=['../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','sendStatus','error','stack','name','send','index','FreshsalesAccount','fieldName','type','key','map','query','intersection','model','attributes','fields','hasOwnProperty','order','sort','where','filters','filter','merge','VIRTUAL','options','include','rows','show','params','rawAttributes','keys','length','find','catch','create','body','destroy','getConfigurations','findOne','FreshsalesConfiguration','pick','nolimit','addConfiguration','AccountId','getSubjects','channel','Descriptions','FreshsalesField','Subjects','getFields','username','remoteUri','apiKey','slice','substring','lastIndexOf','GET','%s%s','Token\x20token=','users','email','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','fs-extra','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x7140,0x125));var _0x0714=function(_0x1e4360,_0x930b9b){_0x1e4360=_0x1e4360-0x0;var _0x31e6b4=_0x7140[_0x1e4360];return _0x31e6b4;};'use strict';var emlformat=require(_0x0714('0x0'));var rimraf=require(_0x0714('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0714('0x2'));var rp=require(_0x0714('0x3'));var moment=require(_0x0714('0x4'));var BPromise=require(_0x0714('0x5'));var Mustache=require(_0x0714('0x6'));var util=require(_0x0714('0x7'));var path=require('path');var sox=require(_0x0714('0x8'));var csv=require(_0x0714('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0714('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x0714('0xb'));var jsforce=require(_0x0714('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x0714('0x9'));var querystring=require(_0x0714('0xd'));var Papa=require(_0x0714('0xe'));var Redis=require(_0x0714('0xf'));var authService=require(_0x0714('0x10'));var qs=require(_0x0714('0x11'));var as=require(_0x0714('0x12'));var hardwareService=require(_0x0714('0x13'));var logger=require(_0x0714('0x14'))(_0x0714('0x15'));var utils=require(_0x0714('0x16'));var config=require(_0x0714('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x0714('0x18'))['db'];var integrations=require(_0x0714('0x19'));function respondWithStatusCode(_0x1c9930,_0x24873b){_0x24873b=_0x24873b||0xcc;return function(_0x52246b){if(_0x52246b){return _0x1c9930['sendStatus'](_0x24873b);}return _0x1c9930[_0x0714('0x1a')](_0x24873b)[_0x0714('0x1b')]();};}function respondWithResult(_0x3658cf,_0x145f7e){_0x145f7e=_0x145f7e||0xc8;return function(_0x6695ed){if(_0x6695ed){return _0x3658cf[_0x0714('0x1a')](_0x145f7e)[_0x0714('0x1c')](_0x6695ed);}};}function respondWithFilteredResult(_0x47ed92,_0x366e8f){return function(_0x54059c){if(_0x54059c){var _0x557754=typeof _0x366e8f[_0x0714('0x1d')]===_0x0714('0x1e')&&typeof _0x366e8f[_0x0714('0x1f')]===_0x0714('0x1e');var _0x314952=_0x54059c[_0x0714('0x20')];var _0x217496=_0x557754?0x0:_0x366e8f['offset'];var _0x293f84=_0x557754?_0x54059c[_0x0714('0x20')]:_0x366e8f[_0x0714('0x1d')]+_0x366e8f[_0x0714('0x1f')];var _0x348779;if(_0x293f84>=_0x314952){_0x293f84=_0x314952;_0x348779=0xc8;}else{_0x348779=0xce;}_0x47ed92[_0x0714('0x1a')](_0x348779);return _0x47ed92[_0x0714('0x21')](_0x0714('0x22'),_0x217496+'-'+_0x293f84+'/'+_0x314952)[_0x0714('0x1c')](_0x54059c);}return null;};}function patchUpdates(_0x289deb){return function(_0x25b423){try{jsonpatch[_0x0714('0x23')](_0x25b423,_0x289deb,!![]);}catch(_0x6a4089){return BPromise[_0x0714('0x24')](_0x6a4089);}return _0x25b423[_0x0714('0x25')]();};}function saveUpdates(_0x3d82de,_0x5bae70){return function(_0x15e8a7){if(_0x15e8a7){return _0x15e8a7[_0x0714('0x26')](_0x3d82de)[_0x0714('0x27')](function(_0x58a7da){return _0x58a7da;});}return null;};}function removeEntity(_0x329a50,_0x4f7a9d){return function(_0x46f216){if(_0x46f216){return _0x46f216['destroy']()[_0x0714('0x27')](function(){_0x329a50[_0x0714('0x1a')](0xcc)[_0x0714('0x1b')]();});}};}function handleEntityNotFound(_0x179b7f,_0x3a56ef){return function(_0x39b6fc){if(!_0x39b6fc){_0x179b7f[_0x0714('0x28')](0x194);}return _0x39b6fc;};}function handleError(_0x17887e,_0x896db){_0x896db=_0x896db||0x1f4;return function(_0x4855e9){logger[_0x0714('0x29')](_0x4855e9[_0x0714('0x2a')]);if(_0x4855e9[_0x0714('0x2b')]){delete _0x4855e9[_0x0714('0x2b')];}_0x17887e[_0x0714('0x1a')](_0x896db)[_0x0714('0x2c')](_0x4855e9);};}exports[_0x0714('0x2d')]=function(_0x5e59f3,_0x4415e0){var _0x51c33c={},_0x5ba0fb={},_0x2ae3ec={'count':0x0,'rows':[]};var _0x25a303=_['map'](db[_0x0714('0x2e')]['rawAttributes'],function(_0x7dde52){return{'name':_0x7dde52[_0x0714('0x2f')],'type':_0x7dde52[_0x0714('0x30')][_0x0714('0x31')]};});_0x5ba0fb['model']=_[_0x0714('0x32')](_0x25a303,_0x0714('0x2b'));_0x5ba0fb['query']=_['keys'](_0x5e59f3[_0x0714('0x33')]);_0x5ba0fb['filters']=_[_0x0714('0x34')](_0x5ba0fb[_0x0714('0x35')],_0x5ba0fb[_0x0714('0x33')]);_0x51c33c[_0x0714('0x36')]=_[_0x0714('0x34')](_0x5ba0fb[_0x0714('0x35')],qs['fields'](_0x5e59f3[_0x0714('0x33')][_0x0714('0x37')]));_0x51c33c['attributes']=_0x51c33c[_0x0714('0x36')]['length']?_0x51c33c[_0x0714('0x36')]:_0x5ba0fb['model'];if(!_0x5e59f3[_0x0714('0x33')][_0x0714('0x38')]('nolimit')){_0x51c33c[_0x0714('0x1f')]=qs['limit'](_0x5e59f3[_0x0714('0x33')]['limit']);_0x51c33c[_0x0714('0x1d')]=qs[_0x0714('0x1d')](_0x5e59f3[_0x0714('0x33')][_0x0714('0x1d')]);}_0x51c33c[_0x0714('0x39')]=qs[_0x0714('0x3a')](_0x5e59f3[_0x0714('0x33')]['sort']);_0x51c33c[_0x0714('0x3b')]=qs['filters'](_['pick'](_0x5e59f3[_0x0714('0x33')],_0x5ba0fb[_0x0714('0x3c')]),_0x25a303);if(_0x5e59f3['query'][_0x0714('0x3d')]){_0x51c33c[_0x0714('0x3b')]=_[_0x0714('0x3e')](_0x51c33c[_0x0714('0x3b')],{'$or':_['map'](_0x25a303,function(_0x38d398){if(_0x38d398[_0x0714('0x30')]!==_0x0714('0x3f')){var _0x1314f2={};_0x1314f2[_0x38d398[_0x0714('0x2b')]]={'$like':'%'+_0x5e59f3['query'][_0x0714('0x3d')]+'%'};return _0x1314f2;}})});}_0x51c33c=_[_0x0714('0x3e')]({},_0x51c33c,_0x5e59f3[_0x0714('0x40')]);var _0x2066c1={'where':_0x51c33c[_0x0714('0x3b')]};return db['FreshsalesAccount'][_0x0714('0x20')](_0x2066c1)[_0x0714('0x27')](function(_0x5baaee){_0x2ae3ec[_0x0714('0x20')]=_0x5baaee;if(_0x5e59f3[_0x0714('0x33')]['includeAll']){_0x51c33c[_0x0714('0x41')]=[{'all':!![]}];}return db['FreshsalesAccount']['findAll'](_0x51c33c);})[_0x0714('0x27')](function(_0x78fe1d){_0x2ae3ec[_0x0714('0x42')]=_0x78fe1d;return _0x2ae3ec;})[_0x0714('0x27')](respondWithFilteredResult(_0x4415e0,_0x51c33c))['catch'](handleError(_0x4415e0,null));};exports[_0x0714('0x43')]=function(_0x450996,_0x30cbf3){var _0x27f212={'raw':![],'where':{'id':_0x450996[_0x0714('0x44')]['id']}},_0x575caa={};_0x575caa[_0x0714('0x35')]=_['keys'](db['FreshsalesAccount'][_0x0714('0x45')]);_0x575caa[_0x0714('0x33')]=_[_0x0714('0x46')](_0x450996[_0x0714('0x33')]);_0x575caa[_0x0714('0x3c')]=_[_0x0714('0x34')](_0x575caa['model'],_0x575caa['query']);_0x27f212[_0x0714('0x36')]=_[_0x0714('0x34')](_0x575caa[_0x0714('0x35')],qs[_0x0714('0x37')](_0x450996[_0x0714('0x33')][_0x0714('0x37')]));_0x27f212[_0x0714('0x36')]=_0x27f212['attributes'][_0x0714('0x47')]?_0x27f212[_0x0714('0x36')]:_0x575caa[_0x0714('0x35')];if(_0x450996[_0x0714('0x33')]['includeAll']){_0x27f212[_0x0714('0x41')]=[{'all':!![]}];}_0x27f212=_[_0x0714('0x3e')]({},_0x27f212,_0x450996[_0x0714('0x40')]);return db[_0x0714('0x2e')][_0x0714('0x48')](_0x27f212)['then'](handleEntityNotFound(_0x30cbf3,null))[_0x0714('0x27')](respondWithResult(_0x30cbf3,null))[_0x0714('0x49')](handleError(_0x30cbf3,null));};exports[_0x0714('0x4a')]=function(_0x50bf7b,_0xc3bb91){return db[_0x0714('0x2e')][_0x0714('0x4a')](_0x50bf7b[_0x0714('0x4b')],{})[_0x0714('0x27')](respondWithResult(_0xc3bb91,0xc9))[_0x0714('0x49')](handleError(_0xc3bb91,null));};exports[_0x0714('0x26')]=function(_0x5d89a1,_0x34cdaa){if(_0x5d89a1['body']['id']){delete _0x5d89a1['body']['id'];}return db['FreshsalesAccount'][_0x0714('0x48')]({'where':{'id':_0x5d89a1[_0x0714('0x44')]['id']}})[_0x0714('0x27')](handleEntityNotFound(_0x34cdaa,null))['then'](saveUpdates(_0x5d89a1['body'],null))['then'](respondWithResult(_0x34cdaa,null))[_0x0714('0x49')](handleError(_0x34cdaa,null));};exports[_0x0714('0x4c')]=function(_0x11afd6,_0x10f55b){return db[_0x0714('0x2e')]['find']({'where':{'id':_0x11afd6[_0x0714('0x44')]['id']}})[_0x0714('0x27')](handleEntityNotFound(_0x10f55b,null))[_0x0714('0x27')](removeEntity(_0x10f55b,null))[_0x0714('0x49')](handleError(_0x10f55b,null));};exports[_0x0714('0x4d')]=function(_0x3bb414,_0x12274a,_0x2c3e07){var _0x905afd={};var _0x15db50={};var _0x50d601;var _0x618d7f;return db[_0x0714('0x2e')][_0x0714('0x4e')]({'where':{'id':_0x3bb414['params']['id']}})['then'](handleEntityNotFound(_0x12274a,null))[_0x0714('0x27')](function(_0x25499c){if(_0x25499c){_0x50d601=_0x25499c;_0x15db50[_0x0714('0x35')]=_[_0x0714('0x46')](db[_0x0714('0x4f')]['rawAttributes']);_0x15db50[_0x0714('0x33')]=_[_0x0714('0x46')](_0x3bb414[_0x0714('0x33')]);_0x15db50[_0x0714('0x3c')]=_[_0x0714('0x34')](_0x15db50['model'],_0x15db50[_0x0714('0x33')]);_0x905afd[_0x0714('0x36')]=_[_0x0714('0x34')](_0x15db50[_0x0714('0x35')],qs[_0x0714('0x37')](_0x3bb414[_0x0714('0x33')]['fields']));_0x905afd[_0x0714('0x36')]=_0x905afd[_0x0714('0x36')][_0x0714('0x47')]?_0x905afd[_0x0714('0x36')]:_0x15db50[_0x0714('0x35')];_0x905afd[_0x0714('0x39')]=qs['sort'](_0x3bb414[_0x0714('0x33')]['sort']);_0x905afd['where']=qs[_0x0714('0x3c')](_[_0x0714('0x50')](_0x3bb414[_0x0714('0x33')],_0x15db50[_0x0714('0x3c')]));if(_0x3bb414[_0x0714('0x33')]['filter']){_0x905afd['where']=_[_0x0714('0x3e')](_0x905afd[_0x0714('0x3b')],{'$or':_['map'](_0x905afd['attributes'],function(_0x2f571d){var _0x1edbe3={};_0x1edbe3[_0x2f571d]={'$like':'%'+_0x3bb414[_0x0714('0x33')][_0x0714('0x3d')]+'%'};return _0x1edbe3;})});}_0x905afd=_[_0x0714('0x3e')]({},_0x905afd,_0x3bb414['options']);return _0x50d601[_0x0714('0x4d')](_0x905afd);}})[_0x0714('0x27')](function(_0x25397e){if(_0x25397e){_0x618d7f=_0x25397e['length'];if(!_0x3bb414[_0x0714('0x33')][_0x0714('0x38')](_0x0714('0x51'))){_0x905afd[_0x0714('0x1f')]=qs[_0x0714('0x1f')](_0x3bb414[_0x0714('0x33')][_0x0714('0x1f')]);_0x905afd[_0x0714('0x1d')]=qs['offset'](_0x3bb414[_0x0714('0x33')][_0x0714('0x1d')]);}return _0x50d601[_0x0714('0x4d')](_0x905afd);}})[_0x0714('0x27')](function(_0x412928){if(_0x412928){return _0x412928?{'count':_0x618d7f,'rows':_0x412928}:null;}})[_0x0714('0x27')](respondWithResult(_0x12274a,null))[_0x0714('0x49')](handleError(_0x12274a,null));};exports[_0x0714('0x52')]=function(_0x100f67,_0x3fec1c,_0x615a66){if(_0x100f67['body']['id']){delete _0x100f67[_0x0714('0x4b')]['id'];}return db[_0x0714('0x2e')][_0x0714('0x4e')]({'where':{'id':_0x100f67[_0x0714('0x44')]['id']}})[_0x0714('0x27')](handleEntityNotFound(_0x3fec1c,null))[_0x0714('0x27')](function(_0x1b2328){if(_0x1b2328){_0x100f67[_0x0714('0x4b')][_0x0714('0x53')]=_0x1b2328['id'];_0x100f67[_0x0714('0x4b')]['Subjects']=integrations[_0x0714('0x54')](_0x100f67[_0x0714('0x4b')][_0x0714('0x55')],_0x100f67[_0x0714('0x4b')][_0x0714('0x30')]);_0x100f67[_0x0714('0x4b')][_0x0714('0x56')]=integrations['getDescriptions'](_0x100f67[_0x0714('0x4b')][_0x0714('0x55')],_0x100f67[_0x0714('0x4b')][_0x0714('0x30')]);return db[_0x0714('0x4f')][_0x0714('0x4a')](_0x100f67['body'],{'include':[{'model':db[_0x0714('0x57')],'as':_0x0714('0x58')},{'model':db[_0x0714('0x57')],'as':_0x0714('0x56')}]});}return null;})[_0x0714('0x27')](respondWithResult(_0x3fec1c,null))[_0x0714('0x49')](handleError(_0x3fec1c,null));};exports[_0x0714('0x59')]=function(_0x7a848b,_0x5c968f,_0x4381a6){var _0x12befc='';var _0x5672ea='';return db['FreshsalesAccount'][_0x0714('0x4e')]({'where':{'id':_0x7a848b[_0x0714('0x44')]['id']},'attributes':['id',_0x0714('0x5a'),_0x0714('0x5b'),_0x0714('0x5c')]})[_0x0714('0x27')](handleEntityNotFound(_0x5c968f,null))[_0x0714('0x27')](function(_0x1f551c){if(_0x1f551c){_0x5672ea=_0x1f551c[_0x0714('0x5a')];_0x12befc=_0x1f551c[_0x0714('0x5b')];var _0x1e2784=_0x1f551c[_0x0714('0x5b')][_0x0714('0x5d')](-0x1);if(_0x1e2784==='/'){_0x12befc=_0x12befc[_0x0714('0x5e')](0x0,_0x12befc[_0x0714('0x5f')](_0x1e2784));}return rp({'method':_0x0714('0x60'),'uri':util['format'](_0x0714('0x61'),_0x12befc,'/api/selector/owners'),'headers':{'Authorization':_0x0714('0x62')+_0x1f551c[_0x0714('0x5c')]},'json':!![]});}})[_0x0714('0x27')](function(_0x47c053){if(_0x47c053){var _0x247931=_0x47c053[_0x0714('0x63')];var _0x4bfff9=![];var _0x398f05=null;for(_0x398f05=0x0;_0x398f05<_0x247931[_0x0714('0x47')];_0x398f05++){if(_0x247931[_0x398f05][_0x0714('0x64')]===_0x5672ea){_0x4bfff9=!![];}}if(_0x4bfff9){return!![];}else{throw new Error({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}})[_0x0714('0x27')](respondWithResult(_0x5c968f,null))[_0x0714('0x49')](function(_0x793475){var _0x319c31=_0x7a848b['query'][_0x0714('0x65')]?0x1f4:_0x793475[_0x0714('0x66')]||0x1f4;logger[_0x0714('0x29')](_0x0714('0x67'),_0x0714('0x59'),_0x319c31,JSON['stringify'](_0x793475));delete _0x793475[_0x0714('0x2b')];if(_0x319c31===0x191){_0x319c31=0x190;}_0x5c968f[_0x0714('0x1a')](_0x319c31)[_0x0714('0x2c')](_0x7a848b[_0x0714('0x33')][_0x0714('0x65')]?{'message':'Wrong\x20credentials','statusCode':_0x793475[_0x0714('0x66')]}:_0x793475);});};