Built motion from commit 97153652.|2.6.26
[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 _0x8bd7=['key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','FreshsalesAccount','includeAll','include','rows','catch','show','params','options','create','body','destroy','find','getConfigurations','findOne','FreshsalesConfiguration','addConfiguration','Subjects','getSubjects','channel','getDescriptions','FreshsalesField','Descriptions','remoteUri','username','substring','lastIndexOf','format','/api/selector/owners','Token\x20token=','apiKey','users','email','statusCode','error','stringify','test','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','stack','name','index','map','rawAttributes','fieldName','type'];(function(_0x574703,_0x53b5d5){var _0x1c707a=function(_0x5c5116){while(--_0x5c5116){_0x574703['push'](_0x574703['shift']());}};_0x1c707a(++_0x53b5d5);}(_0x8bd7,0x101));var _0x78bd=function(_0x1ca1ea,_0x1a13d5){_0x1ca1ea=_0x1ca1ea-0x0;var _0x3420d6=_0x8bd7[_0x1ca1ea];return _0x3420d6;};'use strict';var emlformat=require(_0x78bd('0x0'));var rimraf=require(_0x78bd('0x1'));var zipdir=require(_0x78bd('0x2'));var jsonpatch=require(_0x78bd('0x3'));var rp=require(_0x78bd('0x4'));var moment=require(_0x78bd('0x5'));var BPromise=require(_0x78bd('0x6'));var Mustache=require(_0x78bd('0x7'));var util=require(_0x78bd('0x8'));var path=require(_0x78bd('0x9'));var sox=require(_0x78bd('0xa'));var csv=require(_0x78bd('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x78bd('0xc'));var squel=require(_0x78bd('0xd'));var crypto=require(_0x78bd('0xe'));var jsforce=require(_0x78bd('0xf'));var deskjs=require(_0x78bd('0x10'));var toCsv=require(_0x78bd('0xb'));var querystring=require(_0x78bd('0x11'));var Papa=require('papaparse');var Redis=require(_0x78bd('0x12'));var authService=require(_0x78bd('0x13'));var qs=require(_0x78bd('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x78bd('0x15'));var logger=require('../../config/logger')(_0x78bd('0x16'));var utils=require(_0x78bd('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x78bd('0x18'));var db=require(_0x78bd('0x19'))['db'];var integrations=require(_0x78bd('0x1a'));function respondWithStatusCode(_0x3f46ed,_0x29f2c7){_0x29f2c7=_0x29f2c7||0xcc;return function(_0x53e825){if(_0x53e825){return _0x3f46ed[_0x78bd('0x1b')](_0x29f2c7);}return _0x3f46ed[_0x78bd('0x1c')](_0x29f2c7)[_0x78bd('0x1d')]();};}function respondWithResult(_0x208832,_0x5e2682){_0x5e2682=_0x5e2682||0xc8;return function(_0x257af0){if(_0x257af0){return _0x208832[_0x78bd('0x1c')](_0x5e2682)[_0x78bd('0x1e')](_0x257af0);}};}function respondWithFilteredResult(_0x4929ca,_0x1ebd18){return function(_0x124226){if(_0x124226){var _0x208b55=typeof _0x1ebd18[_0x78bd('0x1f')]===_0x78bd('0x20')&&typeof _0x1ebd18[_0x78bd('0x21')]===_0x78bd('0x20');var _0x2240b6=_0x124226['count'];var _0x48df00=_0x208b55?0x0:_0x1ebd18[_0x78bd('0x1f')];var _0x4f4d48=_0x208b55?_0x124226[_0x78bd('0x22')]:_0x1ebd18[_0x78bd('0x1f')]+_0x1ebd18[_0x78bd('0x21')];var _0x335b67;if(_0x4f4d48>=_0x2240b6){_0x4f4d48=_0x2240b6;_0x335b67=0xc8;}else{_0x335b67=0xce;}_0x4929ca[_0x78bd('0x1c')](_0x335b67);return _0x4929ca[_0x78bd('0x23')](_0x78bd('0x24'),_0x48df00+'-'+_0x4f4d48+'/'+_0x2240b6)[_0x78bd('0x1e')](_0x124226);}return null;};}function patchUpdates(_0x563199){return function(_0x333621){try{jsonpatch[_0x78bd('0x25')](_0x333621,_0x563199,!![]);}catch(_0x4b1b79){return BPromise[_0x78bd('0x26')](_0x4b1b79);}return _0x333621[_0x78bd('0x27')]();};}function saveUpdates(_0x614045,_0x3cfcd2){return function(_0x10332e){if(_0x10332e){return _0x10332e[_0x78bd('0x28')](_0x614045)[_0x78bd('0x29')](function(_0x3060fe){return _0x3060fe;});}return null;};}function removeEntity(_0x41a82f,_0xe3a6){return function(_0x6f455a){if(_0x6f455a){return _0x6f455a['destroy']()['then'](function(){_0x41a82f[_0x78bd('0x1c')](0xcc)[_0x78bd('0x1d')]();});}};}function handleEntityNotFound(_0x533243,_0x1ec732){return function(_0x5ac91a){if(!_0x5ac91a){_0x533243[_0x78bd('0x1b')](0x194);}return _0x5ac91a;};}function handleError(_0x3b737e,_0x5288d4){_0x5288d4=_0x5288d4||0x1f4;return function(_0x4c8b5a){logger['error'](_0x4c8b5a[_0x78bd('0x2a')]);if(_0x4c8b5a['name']){delete _0x4c8b5a[_0x78bd('0x2b')];}_0x3b737e[_0x78bd('0x1c')](_0x5288d4)['send'](_0x4c8b5a);};}exports[_0x78bd('0x2c')]=function(_0x27bcb8,_0x141b3f){var _0x40c8d5={},_0x289764={},_0x44040d={'count':0x0,'rows':[]};var _0x1bcf74=_[_0x78bd('0x2d')](db['FreshsalesAccount'][_0x78bd('0x2e')],function(_0x293cd9){return{'name':_0x293cd9[_0x78bd('0x2f')],'type':_0x293cd9[_0x78bd('0x30')][_0x78bd('0x31')]};});_0x289764[_0x78bd('0x32')]=_['map'](_0x1bcf74,_0x78bd('0x2b'));_0x289764[_0x78bd('0x33')]=_[_0x78bd('0x34')](_0x27bcb8[_0x78bd('0x33')]);_0x289764[_0x78bd('0x35')]=_[_0x78bd('0x36')](_0x289764[_0x78bd('0x32')],_0x289764['query']);_0x40c8d5['attributes']=_[_0x78bd('0x36')](_0x289764['model'],qs[_0x78bd('0x37')](_0x27bcb8[_0x78bd('0x33')][_0x78bd('0x37')]));_0x40c8d5[_0x78bd('0x38')]=_0x40c8d5['attributes'][_0x78bd('0x39')]?_0x40c8d5[_0x78bd('0x38')]:_0x289764['model'];if(!_0x27bcb8[_0x78bd('0x33')][_0x78bd('0x3a')](_0x78bd('0x3b'))){_0x40c8d5[_0x78bd('0x21')]=qs[_0x78bd('0x21')](_0x27bcb8[_0x78bd('0x33')]['limit']);_0x40c8d5[_0x78bd('0x1f')]=qs[_0x78bd('0x1f')](_0x27bcb8[_0x78bd('0x33')][_0x78bd('0x1f')]);}_0x40c8d5[_0x78bd('0x3c')]=qs[_0x78bd('0x3d')](_0x27bcb8[_0x78bd('0x33')][_0x78bd('0x3d')]);_0x40c8d5[_0x78bd('0x3e')]=qs['filters'](_[_0x78bd('0x3f')](_0x27bcb8['query'],_0x289764[_0x78bd('0x35')]),_0x1bcf74);if(_0x27bcb8['query'][_0x78bd('0x40')]){_0x40c8d5[_0x78bd('0x3e')]=_['merge'](_0x40c8d5[_0x78bd('0x3e')],{'$or':_[_0x78bd('0x2d')](_0x1bcf74,function(_0x59d594){if(_0x59d594['type']!=='VIRTUAL'){var _0x54d83e={};_0x54d83e[_0x59d594['name']]={'$like':'%'+_0x27bcb8[_0x78bd('0x33')][_0x78bd('0x40')]+'%'};return _0x54d83e;}})});}_0x40c8d5=_[_0x78bd('0x41')]({},_0x40c8d5,_0x27bcb8['options']);var _0x31ac5b={'where':_0x40c8d5['where']};return db[_0x78bd('0x42')][_0x78bd('0x22')](_0x31ac5b)[_0x78bd('0x29')](function(_0x535984){_0x44040d[_0x78bd('0x22')]=_0x535984;if(_0x27bcb8[_0x78bd('0x33')][_0x78bd('0x43')]){_0x40c8d5[_0x78bd('0x44')]=[{'all':!![]}];}return db[_0x78bd('0x42')]['findAll'](_0x40c8d5);})[_0x78bd('0x29')](function(_0x231366){_0x44040d[_0x78bd('0x45')]=_0x231366;return _0x44040d;})[_0x78bd('0x29')](respondWithFilteredResult(_0x141b3f,_0x40c8d5))[_0x78bd('0x46')](handleError(_0x141b3f,null));};exports[_0x78bd('0x47')]=function(_0x33801b,_0x494c5e){var _0x321258={'raw':![],'where':{'id':_0x33801b[_0x78bd('0x48')]['id']}},_0x25ef6e={};_0x25ef6e[_0x78bd('0x32')]=_[_0x78bd('0x34')](db['FreshsalesAccount'][_0x78bd('0x2e')]);_0x25ef6e[_0x78bd('0x33')]=_[_0x78bd('0x34')](_0x33801b[_0x78bd('0x33')]);_0x25ef6e[_0x78bd('0x35')]=_[_0x78bd('0x36')](_0x25ef6e[_0x78bd('0x32')],_0x25ef6e[_0x78bd('0x33')]);_0x321258[_0x78bd('0x38')]=_[_0x78bd('0x36')](_0x25ef6e[_0x78bd('0x32')],qs[_0x78bd('0x37')](_0x33801b[_0x78bd('0x33')][_0x78bd('0x37')]));_0x321258[_0x78bd('0x38')]=_0x321258[_0x78bd('0x38')][_0x78bd('0x39')]?_0x321258[_0x78bd('0x38')]:_0x25ef6e[_0x78bd('0x32')];if(_0x33801b[_0x78bd('0x33')]['includeAll']){_0x321258['include']=[{'all':!![]}];}_0x321258=_[_0x78bd('0x41')]({},_0x321258,_0x33801b[_0x78bd('0x49')]);return db[_0x78bd('0x42')]['find'](_0x321258)[_0x78bd('0x29')](handleEntityNotFound(_0x494c5e,null))['then'](respondWithResult(_0x494c5e,null))[_0x78bd('0x46')](handleError(_0x494c5e,null));};exports[_0x78bd('0x4a')]=function(_0x321948,_0x328749){return db[_0x78bd('0x42')][_0x78bd('0x4a')](_0x321948[_0x78bd('0x4b')],{})['then'](respondWithResult(_0x328749,0xc9))[_0x78bd('0x46')](handleError(_0x328749,null));};exports[_0x78bd('0x28')]=function(_0xb3d79b,_0x56792e){if(_0xb3d79b[_0x78bd('0x4b')]['id']){delete _0xb3d79b[_0x78bd('0x4b')]['id'];}return db[_0x78bd('0x42')]['find']({'where':{'id':_0xb3d79b[_0x78bd('0x48')]['id']}})[_0x78bd('0x29')](handleEntityNotFound(_0x56792e,null))['then'](saveUpdates(_0xb3d79b[_0x78bd('0x4b')],null))[_0x78bd('0x29')](respondWithResult(_0x56792e,null))['catch'](handleError(_0x56792e,null));};exports[_0x78bd('0x4c')]=function(_0x35e4d6,_0xd95c29){return db[_0x78bd('0x42')][_0x78bd('0x4d')]({'where':{'id':_0x35e4d6[_0x78bd('0x48')]['id']}})['then'](handleEntityNotFound(_0xd95c29,null))[_0x78bd('0x29')](removeEntity(_0xd95c29,null))[_0x78bd('0x46')](handleError(_0xd95c29,null));};exports[_0x78bd('0x4e')]=function(_0x548bf5,_0x3bdf31,_0x27210a){var _0x299695={};var _0x3c6cf7={};var _0x35ac24;var _0x5e9a95;return db[_0x78bd('0x42')][_0x78bd('0x4f')]({'where':{'id':_0x548bf5[_0x78bd('0x48')]['id']}})[_0x78bd('0x29')](handleEntityNotFound(_0x3bdf31,null))[_0x78bd('0x29')](function(_0x25b060){if(_0x25b060){_0x35ac24=_0x25b060;_0x3c6cf7['model']=_[_0x78bd('0x34')](db[_0x78bd('0x50')][_0x78bd('0x2e')]);_0x3c6cf7['query']=_[_0x78bd('0x34')](_0x548bf5[_0x78bd('0x33')]);_0x3c6cf7[_0x78bd('0x35')]=_['intersection'](_0x3c6cf7[_0x78bd('0x32')],_0x3c6cf7[_0x78bd('0x33')]);_0x299695[_0x78bd('0x38')]=_[_0x78bd('0x36')](_0x3c6cf7[_0x78bd('0x32')],qs['fields'](_0x548bf5['query'][_0x78bd('0x37')]));_0x299695['attributes']=_0x299695['attributes']['length']?_0x299695[_0x78bd('0x38')]:_0x3c6cf7['model'];_0x299695['order']=qs['sort'](_0x548bf5[_0x78bd('0x33')]['sort']);_0x299695[_0x78bd('0x3e')]=qs[_0x78bd('0x35')](_['pick'](_0x548bf5[_0x78bd('0x33')],_0x3c6cf7[_0x78bd('0x35')]));if(_0x548bf5[_0x78bd('0x33')][_0x78bd('0x40')]){_0x299695[_0x78bd('0x3e')]=_[_0x78bd('0x41')](_0x299695[_0x78bd('0x3e')],{'$or':_[_0x78bd('0x2d')](_0x299695[_0x78bd('0x38')],function(_0x4236cf){var _0x21d9f2={};_0x21d9f2[_0x4236cf]={'$like':'%'+_0x548bf5[_0x78bd('0x33')][_0x78bd('0x40')]+'%'};return _0x21d9f2;})});}_0x299695=_[_0x78bd('0x41')]({},_0x299695,_0x548bf5[_0x78bd('0x49')]);return _0x35ac24[_0x78bd('0x4e')](_0x299695);}})[_0x78bd('0x29')](function(_0x55578c){if(_0x55578c){_0x5e9a95=_0x55578c[_0x78bd('0x39')];if(!_0x548bf5[_0x78bd('0x33')][_0x78bd('0x3a')](_0x78bd('0x3b'))){_0x299695[_0x78bd('0x21')]=qs[_0x78bd('0x21')](_0x548bf5[_0x78bd('0x33')][_0x78bd('0x21')]);_0x299695[_0x78bd('0x1f')]=qs[_0x78bd('0x1f')](_0x548bf5[_0x78bd('0x33')][_0x78bd('0x1f')]);}return _0x35ac24['getConfigurations'](_0x299695);}})[_0x78bd('0x29')](function(_0x374801){if(_0x374801){return _0x374801?{'count':_0x5e9a95,'rows':_0x374801}:null;}})[_0x78bd('0x29')](respondWithResult(_0x3bdf31,null))['catch'](handleError(_0x3bdf31,null));};exports[_0x78bd('0x51')]=function(_0x9854e7,_0x3768e2,_0x3c598e){if(_0x9854e7[_0x78bd('0x4b')]['id']){delete _0x9854e7['body']['id'];}return db['FreshsalesAccount'][_0x78bd('0x4f')]({'where':{'id':_0x9854e7['params']['id']}})[_0x78bd('0x29')](handleEntityNotFound(_0x3768e2,null))[_0x78bd('0x29')](function(_0x4b7853){if(_0x4b7853){_0x9854e7['body']['AccountId']=_0x4b7853['id'];_0x9854e7[_0x78bd('0x4b')][_0x78bd('0x52')]=integrations[_0x78bd('0x53')](_0x9854e7[_0x78bd('0x4b')][_0x78bd('0x54')],_0x9854e7[_0x78bd('0x4b')][_0x78bd('0x30')]);_0x9854e7[_0x78bd('0x4b')]['Descriptions']=integrations[_0x78bd('0x55')](_0x9854e7['body'][_0x78bd('0x54')],_0x9854e7[_0x78bd('0x4b')][_0x78bd('0x30')]);return db[_0x78bd('0x50')][_0x78bd('0x4a')](_0x9854e7[_0x78bd('0x4b')],{'include':[{'model':db[_0x78bd('0x56')],'as':'Subjects'},{'model':db[_0x78bd('0x56')],'as':_0x78bd('0x57')}]});}return null;})[_0x78bd('0x29')](respondWithResult(_0x3768e2,null))[_0x78bd('0x46')](handleError(_0x3768e2,null));};exports['getFields']=function(_0x3619cc,_0x24e45c,_0x58b9d8){var _0x44684a='';var _0x2cf1a7='';return db[_0x78bd('0x42')][_0x78bd('0x4f')]({'where':{'id':_0x3619cc[_0x78bd('0x48')]['id']},'attributes':['id','username',_0x78bd('0x58'),'apiKey']})['then'](handleEntityNotFound(_0x24e45c,null))[_0x78bd('0x29')](function(_0x129339){if(_0x129339){_0x2cf1a7=_0x129339[_0x78bd('0x59')];_0x44684a=_0x129339[_0x78bd('0x58')];var _0x771c6=_0x129339[_0x78bd('0x58')]['slice'](-0x1);if(_0x771c6==='/'){_0x44684a=_0x44684a[_0x78bd('0x5a')](0x0,_0x44684a[_0x78bd('0x5b')](_0x771c6));}return rp({'method':'GET','uri':util[_0x78bd('0x5c')]('%s%s',_0x44684a,_0x78bd('0x5d')),'headers':{'Authorization':_0x78bd('0x5e')+_0x129339[_0x78bd('0x5f')]},'json':!![]});}})[_0x78bd('0x29')](function(_0x498a47){if(_0x498a47){var _0x814639=_0x498a47[_0x78bd('0x60')];var _0x2daaa0=![];var _0x3b2711=null;for(_0x3b2711=0x0;_0x3b2711<_0x814639[_0x78bd('0x39')];_0x3b2711++){if(_0x814639[_0x3b2711][_0x78bd('0x61')]===_0x2cf1a7){_0x2daaa0=!![];}}if(_0x2daaa0){return!![];}else{throw new Error({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}})[_0x78bd('0x29')](respondWithResult(_0x24e45c,null))[_0x78bd('0x46')](function(_0x50693f){var _0x1a09df=_0x3619cc[_0x78bd('0x33')]['test']?0x1f4:_0x50693f[_0x78bd('0x62')]||0x1f4;logger[_0x78bd('0x63')]('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x1a09df,JSON[_0x78bd('0x64')](_0x50693f));delete _0x50693f['name'];if(_0x1a09df===0x191){_0x1a09df=0x190;}_0x24e45c['status'](_0x1a09df)['send'](_0x3619cc[_0x78bd('0x33')][_0x78bd('0x65')]?{'message':'Wrong\x20credentials','statusCode':_0x50693f[_0x78bd('0x62')]}:_0x50693f);});};