9a17e6fd28ce1971cc4ef6f7c5c934600a045670
[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 _0xc60e=['Descriptions','FreshsalesField','Subjects','getFields','username','apiKey','remoteUri','slice','substring','lastIndexOf','GET','format','%s%s','/api/selector/owners','Token\x20token=','users','email','Requested\x20Resource\x20not\x20Found','statusCode','stringify','test','Wrong\x20credentials','rimraf','fast-json-patch','request-promise','moment','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','undefined','limit','count','offset','set','apply','reject','update','then','destroy','error','stack','name','send','map','FreshsalesAccount','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','filter','merge','where','VIRTUAL','options','include','findAll','catch','show','find','create','body','params','FreshsalesConfiguration','order','pick','getConfigurations','addConfiguration','findOne','AccountId','getSubjects','channel'];(function(_0x403a72,_0x18d05b){var _0x258860=function(_0x31e3cd){while(--_0x31e3cd){_0x403a72['push'](_0x403a72['shift']());}};_0x258860(++_0x18d05b);}(_0xc60e,0x1ae));var _0xec60=function(_0x5096d1,_0x48910e){_0x5096d1=_0x5096d1-0x0;var _0x3e58a6=_0xc60e[_0x5096d1];return _0x3e58a6;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xec60('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xec60('0x1'));var rp=require(_0xec60('0x2'));var moment=require(_0xec60('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xec60('0x4'));var sox=require(_0xec60('0x5'));var csv=require(_0xec60('0x6'));var ejs=require(_0xec60('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xec60('0x8'));var crypto=require(_0xec60('0x9'));var jsforce=require(_0xec60('0xa'));var deskjs=require(_0xec60('0xb'));var toCsv=require(_0xec60('0x6'));var querystring=require(_0xec60('0xc'));var Papa=require(_0xec60('0xd'));var Redis=require(_0xec60('0xe'));var authService=require(_0xec60('0xf'));var qs=require(_0xec60('0x10'));var as=require(_0xec60('0x11'));var hardwareService=require(_0xec60('0x12'));var logger=require('../../config/logger')(_0xec60('0x13'));var utils=require('../../config/utils');var config=require(_0xec60('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0xec60('0x15'))['db'];var integrations=require(_0xec60('0x16'));function respondWithStatusCode(_0x1089d0,_0x26dd46){_0x26dd46=_0x26dd46||0xcc;return function(_0x1a800b){if(_0x1a800b){return _0x1089d0[_0xec60('0x17')](_0x26dd46);}return _0x1089d0[_0xec60('0x18')](_0x26dd46)[_0xec60('0x19')]();};}function respondWithResult(_0x57c23a,_0x1bd6ff){_0x1bd6ff=_0x1bd6ff||0xc8;return function(_0x2908e9){if(_0x2908e9){return _0x57c23a['status'](_0x1bd6ff)[_0xec60('0x1a')](_0x2908e9);}};}function respondWithFilteredResult(_0x4e4a4d,_0x145977){return function(_0x15ecbc){if(_0x15ecbc){var _0x5b4770=typeof _0x145977['offset']===_0xec60('0x1b')&&typeof _0x145977[_0xec60('0x1c')]===_0xec60('0x1b');var _0x2daedf=_0x15ecbc[_0xec60('0x1d')];var _0x20d79c=_0x5b4770?0x0:_0x145977[_0xec60('0x1e')];var _0x4e448b=_0x5b4770?_0x15ecbc[_0xec60('0x1d')]:_0x145977['offset']+_0x145977['limit'];var _0x29eafe;if(_0x4e448b>=_0x2daedf){_0x4e448b=_0x2daedf;_0x29eafe=0xc8;}else{_0x29eafe=0xce;}_0x4e4a4d['status'](_0x29eafe);return _0x4e4a4d[_0xec60('0x1f')]('Content-Range',_0x20d79c+'-'+_0x4e448b+'/'+_0x2daedf)[_0xec60('0x1a')](_0x15ecbc);}return null;};}function patchUpdates(_0x1ba022){return function(_0x102119){try{jsonpatch[_0xec60('0x20')](_0x102119,_0x1ba022,!![]);}catch(_0x560419){return BPromise[_0xec60('0x21')](_0x560419);}return _0x102119['save']();};}function saveUpdates(_0xfb0c19,_0x3a1b16){return function(_0x177cae){if(_0x177cae){return _0x177cae[_0xec60('0x22')](_0xfb0c19)[_0xec60('0x23')](function(_0x20329c){return _0x20329c;});}return null;};}function removeEntity(_0x2f0dab,_0x2c4ccf){return function(_0xaf039b){if(_0xaf039b){return _0xaf039b[_0xec60('0x24')]()[_0xec60('0x23')](function(){_0x2f0dab['status'](0xcc)[_0xec60('0x19')]();});}};}function handleEntityNotFound(_0x446389,_0x4689c6){return function(_0x164694){if(!_0x164694){_0x446389[_0xec60('0x17')](0x194);}return _0x164694;};}function handleError(_0x3fbb2c,_0x351edb){_0x351edb=_0x351edb||0x1f4;return function(_0x1bac5f){logger[_0xec60('0x25')](_0x1bac5f[_0xec60('0x26')]);if(_0x1bac5f[_0xec60('0x27')]){delete _0x1bac5f[_0xec60('0x27')];}_0x3fbb2c['status'](_0x351edb)[_0xec60('0x28')](_0x1bac5f);};}exports['index']=function(_0x33ee53,_0x160b6e){var _0x2a255b={},_0x362aca={},_0x5d2657={'count':0x0,'rows':[]};var _0x56a90b=_[_0xec60('0x29')](db[_0xec60('0x2a')][_0xec60('0x2b')],function(_0x68e8e5){return{'name':_0x68e8e5[_0xec60('0x2c')],'type':_0x68e8e5[_0xec60('0x2d')][_0xec60('0x2e')]};});_0x362aca[_0xec60('0x2f')]=_['map'](_0x56a90b,'name');_0x362aca['query']=_[_0xec60('0x30')](_0x33ee53[_0xec60('0x31')]);_0x362aca[_0xec60('0x32')]=_[_0xec60('0x33')](_0x362aca[_0xec60('0x2f')],_0x362aca['query']);_0x2a255b[_0xec60('0x34')]=_[_0xec60('0x33')](_0x362aca['model'],qs[_0xec60('0x35')](_0x33ee53[_0xec60('0x31')][_0xec60('0x35')]));_0x2a255b[_0xec60('0x34')]=_0x2a255b[_0xec60('0x34')][_0xec60('0x36')]?_0x2a255b[_0xec60('0x34')]:_0x362aca[_0xec60('0x2f')];if(!_0x33ee53[_0xec60('0x31')][_0xec60('0x37')](_0xec60('0x38'))){_0x2a255b[_0xec60('0x1c')]=qs['limit'](_0x33ee53[_0xec60('0x31')][_0xec60('0x1c')]);_0x2a255b['offset']=qs[_0xec60('0x1e')](_0x33ee53[_0xec60('0x31')][_0xec60('0x1e')]);}_0x2a255b['order']=qs['sort'](_0x33ee53[_0xec60('0x31')][_0xec60('0x39')]);_0x2a255b['where']=qs[_0xec60('0x32')](_['pick'](_0x33ee53[_0xec60('0x31')],_0x362aca[_0xec60('0x32')]),_0x56a90b);if(_0x33ee53[_0xec60('0x31')][_0xec60('0x3a')]){_0x2a255b['where']=_[_0xec60('0x3b')](_0x2a255b[_0xec60('0x3c')],{'$or':_[_0xec60('0x29')](_0x56a90b,function(_0x269306){if(_0x269306[_0xec60('0x2d')]!==_0xec60('0x3d')){var _0x3f26ee={};_0x3f26ee[_0x269306[_0xec60('0x27')]]={'$like':'%'+_0x33ee53[_0xec60('0x31')][_0xec60('0x3a')]+'%'};return _0x3f26ee;}})});}_0x2a255b=_['merge']({},_0x2a255b,_0x33ee53[_0xec60('0x3e')]);var _0x42b5b8={'where':_0x2a255b['where']};return db[_0xec60('0x2a')][_0xec60('0x1d')](_0x42b5b8)['then'](function(_0x5bd3cb){_0x5d2657['count']=_0x5bd3cb;if(_0x33ee53[_0xec60('0x31')]['includeAll']){_0x2a255b[_0xec60('0x3f')]=[{'all':!![]}];}return db[_0xec60('0x2a')][_0xec60('0x40')](_0x2a255b);})[_0xec60('0x23')](function(_0x2287b5){_0x5d2657['rows']=_0x2287b5;return _0x5d2657;})[_0xec60('0x23')](respondWithFilteredResult(_0x160b6e,_0x2a255b))[_0xec60('0x41')](handleError(_0x160b6e,null));};exports[_0xec60('0x42')]=function(_0x13d468,_0x18adb1){var _0x4c0d1c={'raw':![],'where':{'id':_0x13d468['params']['id']}},_0x325b9a={};_0x325b9a[_0xec60('0x2f')]=_[_0xec60('0x30')](db[_0xec60('0x2a')][_0xec60('0x2b')]);_0x325b9a['query']=_[_0xec60('0x30')](_0x13d468['query']);_0x325b9a[_0xec60('0x32')]=_['intersection'](_0x325b9a[_0xec60('0x2f')],_0x325b9a[_0xec60('0x31')]);_0x4c0d1c[_0xec60('0x34')]=_[_0xec60('0x33')](_0x325b9a['model'],qs['fields'](_0x13d468['query'][_0xec60('0x35')]));_0x4c0d1c[_0xec60('0x34')]=_0x4c0d1c[_0xec60('0x34')]['length']?_0x4c0d1c[_0xec60('0x34')]:_0x325b9a['model'];if(_0x13d468[_0xec60('0x31')]['includeAll']){_0x4c0d1c['include']=[{'all':!![]}];}_0x4c0d1c=_['merge']({},_0x4c0d1c,_0x13d468[_0xec60('0x3e')]);return db['FreshsalesAccount'][_0xec60('0x43')](_0x4c0d1c)[_0xec60('0x23')](handleEntityNotFound(_0x18adb1,null))['then'](respondWithResult(_0x18adb1,null))[_0xec60('0x41')](handleError(_0x18adb1,null));};exports[_0xec60('0x44')]=function(_0x31b403,_0x1c6bae){return db[_0xec60('0x2a')][_0xec60('0x44')](_0x31b403['body'],{})[_0xec60('0x23')](respondWithResult(_0x1c6bae,0xc9))[_0xec60('0x41')](handleError(_0x1c6bae,null));};exports[_0xec60('0x22')]=function(_0x44d001,_0x219752){if(_0x44d001[_0xec60('0x45')]['id']){delete _0x44d001[_0xec60('0x45')]['id'];}return db[_0xec60('0x2a')][_0xec60('0x43')]({'where':{'id':_0x44d001[_0xec60('0x46')]['id']}})[_0xec60('0x23')](handleEntityNotFound(_0x219752,null))[_0xec60('0x23')](saveUpdates(_0x44d001['body'],null))['then'](respondWithResult(_0x219752,null))['catch'](handleError(_0x219752,null));};exports[_0xec60('0x24')]=function(_0x45cc3d,_0x3abbcf){return db['FreshsalesAccount'][_0xec60('0x43')]({'where':{'id':_0x45cc3d[_0xec60('0x46')]['id']}})[_0xec60('0x23')](handleEntityNotFound(_0x3abbcf,null))[_0xec60('0x23')](removeEntity(_0x3abbcf,null))[_0xec60('0x41')](handleError(_0x3abbcf,null));};exports['getConfigurations']=function(_0x5aa977,_0x4d18dd,_0x56f168){var _0x175785={};var _0x1ad303={};var _0x3c5660;var _0x587bbf;return db[_0xec60('0x2a')]['findOne']({'where':{'id':_0x5aa977[_0xec60('0x46')]['id']}})['then'](handleEntityNotFound(_0x4d18dd,null))[_0xec60('0x23')](function(_0x104a1d){if(_0x104a1d){_0x3c5660=_0x104a1d;_0x1ad303[_0xec60('0x2f')]=_[_0xec60('0x30')](db[_0xec60('0x47')]['rawAttributes']);_0x1ad303[_0xec60('0x31')]=_[_0xec60('0x30')](_0x5aa977['query']);_0x1ad303['filters']=_[_0xec60('0x33')](_0x1ad303['model'],_0x1ad303[_0xec60('0x31')]);_0x175785[_0xec60('0x34')]=_['intersection'](_0x1ad303[_0xec60('0x2f')],qs['fields'](_0x5aa977['query'][_0xec60('0x35')]));_0x175785[_0xec60('0x34')]=_0x175785[_0xec60('0x34')]['length']?_0x175785[_0xec60('0x34')]:_0x1ad303[_0xec60('0x2f')];_0x175785[_0xec60('0x48')]=qs[_0xec60('0x39')](_0x5aa977[_0xec60('0x31')][_0xec60('0x39')]);_0x175785[_0xec60('0x3c')]=qs['filters'](_[_0xec60('0x49')](_0x5aa977['query'],_0x1ad303['filters']));if(_0x5aa977[_0xec60('0x31')][_0xec60('0x3a')]){_0x175785[_0xec60('0x3c')]=_['merge'](_0x175785[_0xec60('0x3c')],{'$or':_[_0xec60('0x29')](_0x175785['attributes'],function(_0x14557b){var _0x22dcbe={};_0x22dcbe[_0x14557b]={'$like':'%'+_0x5aa977[_0xec60('0x31')][_0xec60('0x3a')]+'%'};return _0x22dcbe;})});}_0x175785=_[_0xec60('0x3b')]({},_0x175785,_0x5aa977[_0xec60('0x3e')]);return _0x3c5660[_0xec60('0x4a')](_0x175785);}})[_0xec60('0x23')](function(_0x3c52c1){if(_0x3c52c1){_0x587bbf=_0x3c52c1[_0xec60('0x36')];if(!_0x5aa977['query'][_0xec60('0x37')](_0xec60('0x38'))){_0x175785['limit']=qs[_0xec60('0x1c')](_0x5aa977[_0xec60('0x31')]['limit']);_0x175785[_0xec60('0x1e')]=qs[_0xec60('0x1e')](_0x5aa977[_0xec60('0x31')][_0xec60('0x1e')]);}return _0x3c5660['getConfigurations'](_0x175785);}})[_0xec60('0x23')](function(_0x1bf070){if(_0x1bf070){return _0x1bf070?{'count':_0x587bbf,'rows':_0x1bf070}:null;}})[_0xec60('0x23')](respondWithResult(_0x4d18dd,null))[_0xec60('0x41')](handleError(_0x4d18dd,null));};exports[_0xec60('0x4b')]=function(_0x240f49,_0x1fc0cb,_0x123dda){if(_0x240f49['body']['id']){delete _0x240f49[_0xec60('0x45')]['id'];}return db[_0xec60('0x2a')][_0xec60('0x4c')]({'where':{'id':_0x240f49[_0xec60('0x46')]['id']}})[_0xec60('0x23')](handleEntityNotFound(_0x1fc0cb,null))[_0xec60('0x23')](function(_0x1da990){if(_0x1da990){_0x240f49['body'][_0xec60('0x4d')]=_0x1da990['id'];_0x240f49[_0xec60('0x45')]['Subjects']=integrations[_0xec60('0x4e')](_0x240f49[_0xec60('0x45')][_0xec60('0x4f')],_0x240f49['body'][_0xec60('0x2d')]);_0x240f49[_0xec60('0x45')][_0xec60('0x50')]=integrations['getDescriptions'](_0x240f49[_0xec60('0x45')][_0xec60('0x4f')],_0x240f49[_0xec60('0x45')][_0xec60('0x2d')]);return db[_0xec60('0x47')][_0xec60('0x44')](_0x240f49[_0xec60('0x45')],{'include':[{'model':db[_0xec60('0x51')],'as':_0xec60('0x52')},{'model':db[_0xec60('0x51')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x1fc0cb,null))[_0xec60('0x41')](handleError(_0x1fc0cb,null));};exports[_0xec60('0x53')]=function(_0x51c721,_0x3a1672,_0x402db8){var _0x30528b='';var _0x1b1386='';return db[_0xec60('0x2a')]['findOne']({'where':{'id':_0x51c721['params']['id']},'attributes':['id',_0xec60('0x54'),'remoteUri',_0xec60('0x55')]})[_0xec60('0x23')](handleEntityNotFound(_0x3a1672,null))[_0xec60('0x23')](function(_0x66a8df){if(_0x66a8df){_0x1b1386=_0x66a8df['username'];_0x30528b=_0x66a8df[_0xec60('0x56')];var _0x2c21e4=_0x66a8df['remoteUri'][_0xec60('0x57')](-0x1);if(_0x2c21e4==='/'){_0x30528b=_0x30528b[_0xec60('0x58')](0x0,_0x30528b[_0xec60('0x59')](_0x2c21e4));}return rp({'method':_0xec60('0x5a'),'uri':util[_0xec60('0x5b')](_0xec60('0x5c'),_0x30528b,_0xec60('0x5d')),'headers':{'Authorization':_0xec60('0x5e')+_0x66a8df[_0xec60('0x55')]},'json':!![]});}})[_0xec60('0x23')](function(_0x4797dd){if(_0x4797dd){var _0x1b624e=_0x4797dd[_0xec60('0x5f')];var _0x24dbf7=![];var _0x568798=null;for(_0x568798=0x0;_0x568798<_0x1b624e['length'];_0x568798++){if(_0x1b624e[_0x568798][_0xec60('0x60')]===_0x1b1386){_0x24dbf7=!![];}}if(_0x24dbf7){return!![];}else{throw new Error({'statusCode':0x194,'message':_0xec60('0x61')});}}})['then'](respondWithResult(_0x3a1672,null))[_0xec60('0x41')](function(_0x4d285d){var _0x3da0e4=_0x51c721[_0xec60('0x31')]['test']?0x1f4:_0x4d285d[_0xec60('0x62')]||0x1f4;logger[_0xec60('0x25')]('getFields,\x20%s,\x20%s,\x20%s',_0xec60('0x53'),_0x3da0e4,JSON[_0xec60('0x63')](_0x4d285d));delete _0x4d285d[_0xec60('0x27')];if(_0x3da0e4===0x191){_0x3da0e4=0x190;}_0x3a1672[_0xec60('0x18')](_0x3da0e4)[_0xec60('0x28')](_0x51c721[_0xec60('0x31')][_0xec60('0x64')]?{'message':_0xec60('0x65'),'statusCode':_0x4d285d[_0xec60('0x62')]}:_0x4d285d);});};