56bd42a1a42399732a10e6e14fbce25bf47cc537
[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 _0xcb58=['channel','FreshsalesField','Descriptions','remoteUri','username','substring','lastIndexOf','GET','%s%s','/api/selector/owners','Token\x20token=','apiKey','users','Requested\x20Resource\x20not\x20Found','test','statusCode','getFields','stringify','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','fs-extra','lodash','squel','crypto','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','undefined','count','offset','limit','set','reject','save','update','then','error','stack','name','send','index','map','FreshsalesAccount','rawAttributes','fieldName','type','key','keys','query','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','filter','includeAll','findAll','rows','catch','show','params','include','create','body','find','destroy','getConfigurations','findOne','FreshsalesConfiguration','options','Subjects'];(function(_0x245f76,_0x5ae175){var _0x2f908b=function(_0x1ada93){while(--_0x1ada93){_0x245f76['push'](_0x245f76['shift']());}};_0x2f908b(++_0x5ae175);}(_0xcb58,0x77));var _0x8cb5=function(_0x357273,_0x30bda0){_0x357273=_0x357273-0x0;var _0x5a3590=_0xcb58[_0x357273];return _0x5a3590;};'use strict';var emlformat=require(_0x8cb5('0x0'));var rimraf=require(_0x8cb5('0x1'));var zipdir=require(_0x8cb5('0x2'));var jsonpatch=require(_0x8cb5('0x3'));var rp=require(_0x8cb5('0x4'));var moment=require(_0x8cb5('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x8cb5('0x6'));var util=require(_0x8cb5('0x7'));var path=require(_0x8cb5('0x8'));var sox=require(_0x8cb5('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8cb5('0xa'));var _=require(_0x8cb5('0xb'));var squel=require(_0x8cb5('0xc'));var crypto=require(_0x8cb5('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x8cb5('0xe'));var querystring=require(_0x8cb5('0xf'));var Papa=require(_0x8cb5('0x10'));var Redis=require('ioredis');var authService=require(_0x8cb5('0x11'));var qs=require(_0x8cb5('0x12'));var as=require(_0x8cb5('0x13'));var hardwareService=require(_0x8cb5('0x14'));var logger=require(_0x8cb5('0x15'))(_0x8cb5('0x16'));var utils=require(_0x8cb5('0x17'));var config=require(_0x8cb5('0x18'));var licenseUtil=require(_0x8cb5('0x19'));var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x644a07,_0x1b1cee){_0x1b1cee=_0x1b1cee||0xcc;return function(_0x119e39){if(_0x119e39){return _0x644a07[_0x8cb5('0x1a')](_0x1b1cee);}return _0x644a07[_0x8cb5('0x1b')](_0x1b1cee)[_0x8cb5('0x1c')]();};}function respondWithResult(_0x5b2932,_0x93b235){_0x93b235=_0x93b235||0xc8;return function(_0x1d2649){if(_0x1d2649){return _0x5b2932['status'](_0x93b235)[_0x8cb5('0x1d')](_0x1d2649);}};}function respondWithFilteredResult(_0x2330de,_0x5f0073){return function(_0x126cf5){if(_0x126cf5){var _0x20e268=typeof _0x5f0073['offset']===_0x8cb5('0x1e')&&typeof _0x5f0073['limit']===_0x8cb5('0x1e');var _0x2ecf97=_0x126cf5[_0x8cb5('0x1f')];var _0x47e35a=_0x20e268?0x0:_0x5f0073[_0x8cb5('0x20')];var _0x208aba=_0x20e268?_0x126cf5[_0x8cb5('0x1f')]:_0x5f0073[_0x8cb5('0x20')]+_0x5f0073[_0x8cb5('0x21')];var _0x4eed8c;if(_0x208aba>=_0x2ecf97){_0x208aba=_0x2ecf97;_0x4eed8c=0xc8;}else{_0x4eed8c=0xce;}_0x2330de['status'](_0x4eed8c);return _0x2330de[_0x8cb5('0x22')]('Content-Range',_0x47e35a+'-'+_0x208aba+'/'+_0x2ecf97)[_0x8cb5('0x1d')](_0x126cf5);}return null;};}function patchUpdates(_0x4db7b2){return function(_0xec4aae){try{jsonpatch['apply'](_0xec4aae,_0x4db7b2,!![]);}catch(_0x270fa9){return BPromise[_0x8cb5('0x23')](_0x270fa9);}return _0xec4aae[_0x8cb5('0x24')]();};}function saveUpdates(_0x3415fe,_0x111e84){return function(_0xca931){if(_0xca931){return _0xca931[_0x8cb5('0x25')](_0x3415fe)[_0x8cb5('0x26')](function(_0x22f739){return _0x22f739;});}return null;};}function removeEntity(_0x5807f9,_0x1723a3){return function(_0x114d69){if(_0x114d69){return _0x114d69['destroy']()[_0x8cb5('0x26')](function(){_0x5807f9[_0x8cb5('0x1b')](0xcc)[_0x8cb5('0x1c')]();});}};}function handleEntityNotFound(_0x3d8bc5,_0xae2fc5){return function(_0x30b881){if(!_0x30b881){_0x3d8bc5[_0x8cb5('0x1a')](0x194);}return _0x30b881;};}function handleError(_0x37c77a,_0x2bdbf7){_0x2bdbf7=_0x2bdbf7||0x1f4;return function(_0x364873){logger[_0x8cb5('0x27')](_0x364873[_0x8cb5('0x28')]);if(_0x364873[_0x8cb5('0x29')]){delete _0x364873[_0x8cb5('0x29')];}_0x37c77a[_0x8cb5('0x1b')](_0x2bdbf7)[_0x8cb5('0x2a')](_0x364873);};}exports[_0x8cb5('0x2b')]=function(_0xb0712e,_0x10a1fe){var _0x354e05={},_0x4dc22c={},_0x15bf0c={'count':0x0,'rows':[]};var _0x33ee41=_[_0x8cb5('0x2c')](db[_0x8cb5('0x2d')][_0x8cb5('0x2e')],function(_0x4248ab){return{'name':_0x4248ab[_0x8cb5('0x2f')],'type':_0x4248ab[_0x8cb5('0x30')][_0x8cb5('0x31')]};});_0x4dc22c['model']=_[_0x8cb5('0x2c')](_0x33ee41,_0x8cb5('0x29'));_0x4dc22c['query']=_[_0x8cb5('0x32')](_0xb0712e[_0x8cb5('0x33')]);_0x4dc22c['filters']=_[_0x8cb5('0x34')](_0x4dc22c['model'],_0x4dc22c[_0x8cb5('0x33')]);_0x354e05[_0x8cb5('0x35')]=_[_0x8cb5('0x34')](_0x4dc22c[_0x8cb5('0x36')],qs[_0x8cb5('0x37')](_0xb0712e['query'][_0x8cb5('0x37')]));_0x354e05['attributes']=_0x354e05['attributes'][_0x8cb5('0x38')]?_0x354e05[_0x8cb5('0x35')]:_0x4dc22c[_0x8cb5('0x36')];if(!_0xb0712e[_0x8cb5('0x33')][_0x8cb5('0x39')](_0x8cb5('0x3a'))){_0x354e05[_0x8cb5('0x21')]=qs[_0x8cb5('0x21')](_0xb0712e['query']['limit']);_0x354e05[_0x8cb5('0x20')]=qs[_0x8cb5('0x20')](_0xb0712e[_0x8cb5('0x33')][_0x8cb5('0x20')]);}_0x354e05[_0x8cb5('0x3b')]=qs['sort'](_0xb0712e[_0x8cb5('0x33')][_0x8cb5('0x3c')]);_0x354e05[_0x8cb5('0x3d')]=qs[_0x8cb5('0x3e')](_[_0x8cb5('0x3f')](_0xb0712e[_0x8cb5('0x33')],_0x4dc22c[_0x8cb5('0x3e')]),_0x33ee41);if(_0xb0712e[_0x8cb5('0x33')]['filter']){_0x354e05[_0x8cb5('0x3d')]=_[_0x8cb5('0x40')](_0x354e05[_0x8cb5('0x3d')],{'$or':_['map'](_0x33ee41,function(_0xba528d){if(_0xba528d[_0x8cb5('0x30')]!==_0x8cb5('0x41')){var _0x2b383f={};_0x2b383f[_0xba528d['name']]={'$like':'%'+_0xb0712e['query'][_0x8cb5('0x42')]+'%'};return _0x2b383f;}})});}_0x354e05=_[_0x8cb5('0x40')]({},_0x354e05,_0xb0712e['options']);var _0x2b4317={'where':_0x354e05[_0x8cb5('0x3d')]};return db['FreshsalesAccount'][_0x8cb5('0x1f')](_0x2b4317)[_0x8cb5('0x26')](function(_0x2ad8cb){_0x15bf0c[_0x8cb5('0x1f')]=_0x2ad8cb;if(_0xb0712e[_0x8cb5('0x33')][_0x8cb5('0x43')]){_0x354e05['include']=[{'all':!![]}];}return db[_0x8cb5('0x2d')][_0x8cb5('0x44')](_0x354e05);})[_0x8cb5('0x26')](function(_0x465892){_0x15bf0c[_0x8cb5('0x45')]=_0x465892;return _0x15bf0c;})[_0x8cb5('0x26')](respondWithFilteredResult(_0x10a1fe,_0x354e05))[_0x8cb5('0x46')](handleError(_0x10a1fe,null));};exports[_0x8cb5('0x47')]=function(_0x2c6adc,_0x179aa9){var _0x28135e={'raw':![],'where':{'id':_0x2c6adc[_0x8cb5('0x48')]['id']}},_0x20f9c9={};_0x20f9c9[_0x8cb5('0x36')]=_[_0x8cb5('0x32')](db[_0x8cb5('0x2d')][_0x8cb5('0x2e')]);_0x20f9c9[_0x8cb5('0x33')]=_[_0x8cb5('0x32')](_0x2c6adc[_0x8cb5('0x33')]);_0x20f9c9[_0x8cb5('0x3e')]=_['intersection'](_0x20f9c9[_0x8cb5('0x36')],_0x20f9c9[_0x8cb5('0x33')]);_0x28135e[_0x8cb5('0x35')]=_[_0x8cb5('0x34')](_0x20f9c9[_0x8cb5('0x36')],qs[_0x8cb5('0x37')](_0x2c6adc[_0x8cb5('0x33')][_0x8cb5('0x37')]));_0x28135e[_0x8cb5('0x35')]=_0x28135e['attributes'][_0x8cb5('0x38')]?_0x28135e[_0x8cb5('0x35')]:_0x20f9c9[_0x8cb5('0x36')];if(_0x2c6adc[_0x8cb5('0x33')]['includeAll']){_0x28135e[_0x8cb5('0x49')]=[{'all':!![]}];}_0x28135e=_[_0x8cb5('0x40')]({},_0x28135e,_0x2c6adc['options']);return db[_0x8cb5('0x2d')]['find'](_0x28135e)[_0x8cb5('0x26')](handleEntityNotFound(_0x179aa9,null))[_0x8cb5('0x26')](respondWithResult(_0x179aa9,null))[_0x8cb5('0x46')](handleError(_0x179aa9,null));};exports[_0x8cb5('0x4a')]=function(_0x531dc6,_0x5de867){return db[_0x8cb5('0x2d')][_0x8cb5('0x4a')](_0x531dc6[_0x8cb5('0x4b')],{})[_0x8cb5('0x26')](respondWithResult(_0x5de867,0xc9))[_0x8cb5('0x46')](handleError(_0x5de867,null));};exports['update']=function(_0x49dddc,_0x42fb3a){if(_0x49dddc['body']['id']){delete _0x49dddc[_0x8cb5('0x4b')]['id'];}return db['FreshsalesAccount'][_0x8cb5('0x4c')]({'where':{'id':_0x49dddc[_0x8cb5('0x48')]['id']}})[_0x8cb5('0x26')](handleEntityNotFound(_0x42fb3a,null))['then'](saveUpdates(_0x49dddc['body'],null))[_0x8cb5('0x26')](respondWithResult(_0x42fb3a,null))[_0x8cb5('0x46')](handleError(_0x42fb3a,null));};exports[_0x8cb5('0x4d')]=function(_0x361f37,_0x24239b){return db[_0x8cb5('0x2d')][_0x8cb5('0x4c')]({'where':{'id':_0x361f37[_0x8cb5('0x48')]['id']}})['then'](handleEntityNotFound(_0x24239b,null))['then'](removeEntity(_0x24239b,null))['catch'](handleError(_0x24239b,null));};exports[_0x8cb5('0x4e')]=function(_0x530e9e,_0x1984a9,_0x4d0a5a){var _0x309f47={};var _0x20254c={};var _0x464f66;var _0x230cd2;return db[_0x8cb5('0x2d')][_0x8cb5('0x4f')]({'where':{'id':_0x530e9e[_0x8cb5('0x48')]['id']}})['then'](handleEntityNotFound(_0x1984a9,null))['then'](function(_0x55385a){if(_0x55385a){_0x464f66=_0x55385a;_0x20254c[_0x8cb5('0x36')]=_['keys'](db[_0x8cb5('0x50')][_0x8cb5('0x2e')]);_0x20254c[_0x8cb5('0x33')]=_[_0x8cb5('0x32')](_0x530e9e[_0x8cb5('0x33')]);_0x20254c[_0x8cb5('0x3e')]=_[_0x8cb5('0x34')](_0x20254c['model'],_0x20254c[_0x8cb5('0x33')]);_0x309f47[_0x8cb5('0x35')]=_[_0x8cb5('0x34')](_0x20254c[_0x8cb5('0x36')],qs[_0x8cb5('0x37')](_0x530e9e[_0x8cb5('0x33')]['fields']));_0x309f47[_0x8cb5('0x35')]=_0x309f47[_0x8cb5('0x35')][_0x8cb5('0x38')]?_0x309f47['attributes']:_0x20254c['model'];_0x309f47[_0x8cb5('0x3b')]=qs[_0x8cb5('0x3c')](_0x530e9e[_0x8cb5('0x33')][_0x8cb5('0x3c')]);_0x309f47[_0x8cb5('0x3d')]=qs[_0x8cb5('0x3e')](_[_0x8cb5('0x3f')](_0x530e9e[_0x8cb5('0x33')],_0x20254c['filters']));if(_0x530e9e[_0x8cb5('0x33')][_0x8cb5('0x42')]){_0x309f47[_0x8cb5('0x3d')]=_[_0x8cb5('0x40')](_0x309f47[_0x8cb5('0x3d')],{'$or':_[_0x8cb5('0x2c')](_0x309f47[_0x8cb5('0x35')],function(_0x177ec2){var _0x3d400b={};_0x3d400b[_0x177ec2]={'$like':'%'+_0x530e9e[_0x8cb5('0x33')][_0x8cb5('0x42')]+'%'};return _0x3d400b;})});}_0x309f47=_[_0x8cb5('0x40')]({},_0x309f47,_0x530e9e[_0x8cb5('0x51')]);return _0x464f66[_0x8cb5('0x4e')](_0x309f47);}})[_0x8cb5('0x26')](function(_0x113500){if(_0x113500){_0x230cd2=_0x113500[_0x8cb5('0x38')];if(!_0x530e9e[_0x8cb5('0x33')][_0x8cb5('0x39')](_0x8cb5('0x3a'))){_0x309f47[_0x8cb5('0x21')]=qs[_0x8cb5('0x21')](_0x530e9e[_0x8cb5('0x33')][_0x8cb5('0x21')]);_0x309f47[_0x8cb5('0x20')]=qs['offset'](_0x530e9e[_0x8cb5('0x33')]['offset']);}return _0x464f66[_0x8cb5('0x4e')](_0x309f47);}})[_0x8cb5('0x26')](function(_0x296327){if(_0x296327){return _0x296327?{'count':_0x230cd2,'rows':_0x296327}:null;}})[_0x8cb5('0x26')](respondWithResult(_0x1984a9,null))['catch'](handleError(_0x1984a9,null));};exports['addConfiguration']=function(_0x2eeda2,_0x44da35,_0x147edf){if(_0x2eeda2[_0x8cb5('0x4b')]['id']){delete _0x2eeda2[_0x8cb5('0x4b')]['id'];}return db['FreshsalesAccount'][_0x8cb5('0x4f')]({'where':{'id':_0x2eeda2[_0x8cb5('0x48')]['id']}})[_0x8cb5('0x26')](handleEntityNotFound(_0x44da35,null))['then'](function(_0x331784){if(_0x331784){_0x2eeda2[_0x8cb5('0x4b')]['AccountId']=_0x331784['id'];_0x2eeda2[_0x8cb5('0x4b')][_0x8cb5('0x52')]=integrations['getSubjects'](_0x2eeda2[_0x8cb5('0x4b')]['channel'],_0x2eeda2['body'][_0x8cb5('0x30')]);_0x2eeda2[_0x8cb5('0x4b')]['Descriptions']=integrations['getDescriptions'](_0x2eeda2[_0x8cb5('0x4b')][_0x8cb5('0x53')],_0x2eeda2[_0x8cb5('0x4b')][_0x8cb5('0x30')]);return db[_0x8cb5('0x50')][_0x8cb5('0x4a')](_0x2eeda2[_0x8cb5('0x4b')],{'include':[{'model':db['FreshsalesField'],'as':'Subjects'},{'model':db[_0x8cb5('0x54')],'as':_0x8cb5('0x55')}]});}return null;})[_0x8cb5('0x26')](respondWithResult(_0x44da35,null))[_0x8cb5('0x46')](handleError(_0x44da35,null));};exports['getFields']=function(_0x2bc63b,_0x5cb557,_0x5e0f8b){var _0x22f9d5='';var _0x355df2='';return db[_0x8cb5('0x2d')]['findOne']({'where':{'id':_0x2bc63b[_0x8cb5('0x48')]['id']},'attributes':['id','username',_0x8cb5('0x56'),'apiKey']})[_0x8cb5('0x26')](handleEntityNotFound(_0x5cb557,null))[_0x8cb5('0x26')](function(_0x49ddfc){if(_0x49ddfc){_0x355df2=_0x49ddfc[_0x8cb5('0x57')];_0x22f9d5=_0x49ddfc[_0x8cb5('0x56')];var _0x2d1207=_0x49ddfc[_0x8cb5('0x56')]['slice'](-0x1);if(_0x2d1207==='/'){_0x22f9d5=_0x22f9d5[_0x8cb5('0x58')](0x0,_0x22f9d5[_0x8cb5('0x59')](_0x2d1207));}return rp({'method':_0x8cb5('0x5a'),'uri':util['format'](_0x8cb5('0x5b'),_0x22f9d5,_0x8cb5('0x5c')),'headers':{'Authorization':_0x8cb5('0x5d')+_0x49ddfc[_0x8cb5('0x5e')]},'json':!![]});}})[_0x8cb5('0x26')](function(_0x95c056){if(_0x95c056){var _0x2d212f=_0x95c056[_0x8cb5('0x5f')];var _0x29aef6=![];var _0x58c2cb=null;for(_0x58c2cb=0x0;_0x58c2cb<_0x2d212f[_0x8cb5('0x38')];_0x58c2cb++){if(_0x2d212f[_0x58c2cb]['email']===_0x355df2){_0x29aef6=!![];}}if(_0x29aef6){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x8cb5('0x60')});}}})[_0x8cb5('0x26')](respondWithResult(_0x5cb557,null))['catch'](function(_0x52e8df){var _0x31eccd=_0x2bc63b[_0x8cb5('0x33')][_0x8cb5('0x61')]?0x1f4:_0x52e8df[_0x8cb5('0x62')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x8cb5('0x63'),_0x31eccd,JSON[_0x8cb5('0x64')](_0x52e8df));delete _0x52e8df[_0x8cb5('0x29')];if(_0x31eccd===0x191){_0x31eccd=0x190;}_0x5cb557[_0x8cb5('0x1b')](_0x31eccd)[_0x8cb5('0x2a')](_0x2bc63b['query'][_0x8cb5('0x61')]?{'message':'Wrong\x20credentials','statusCode':_0x52e8df[_0x8cb5('0x62')]}:_0x52e8df);});};