Built motion from commit 5ae82ce5.|2.6.7
[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 _0x5c15=['params','keys','find','create','body','update','getConfigurations','FreshsalesConfiguration','merge','nolimit','addConfiguration','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshsalesField','findOne','username','apiKey','remoteUri','slice','GET','%s%s','/api/selector/owners','Token\x20token=','users','Requested\x20Resource\x20not\x20Found','test','statusCode','getFields','stringify','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','destroy','then','sendStatus','stack','name','send','index','map','FreshsalesAccount','rawAttributes','fieldName','type','intersection','model','query','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filters','filter','options','includeAll','include','findAll','rows','catch'];(function(_0x429194,_0x4ea940){var _0x66fd30=function(_0x2f6232){while(--_0x2f6232){_0x429194['push'](_0x429194['shift']());}};_0x66fd30(++_0x4ea940);}(_0x5c15,0xe3));var _0x55c1=function(_0x50a0c2,_0x4befab){_0x50a0c2=_0x50a0c2-0x0;var _0x5ebadd=_0x5c15[_0x50a0c2];return _0x5ebadd;};'use strict';var emlformat=require(_0x55c1('0x0'));var rimraf=require(_0x55c1('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x55c1('0x2'));var rp=require(_0x55c1('0x3'));var moment=require(_0x55c1('0x4'));var BPromise=require(_0x55c1('0x5'));var Mustache=require(_0x55c1('0x6'));var util=require('util');var path=require('path');var sox=require(_0x55c1('0x7'));var csv=require(_0x55c1('0x8'));var ejs=require(_0x55c1('0x9'));var fs=require('fs');var fs_extra=require(_0x55c1('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x55c1('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x55c1('0x8'));var querystring=require(_0x55c1('0xc'));var Papa=require('papaparse');var Redis=require(_0x55c1('0xd'));var authService=require(_0x55c1('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x55c1('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x55c1('0x10'))(_0x55c1('0x11'));var utils=require(_0x55c1('0x12'));var config=require(_0x55c1('0x13'));var licenseUtil=require(_0x55c1('0x14'));var db=require(_0x55c1('0x15'))['db'];var integrations=require(_0x55c1('0x16'));function respondWithStatusCode(_0xec8bb3,_0x41dfaa){_0x41dfaa=_0x41dfaa||0xcc;return function(_0x4e9e67){if(_0x4e9e67){return _0xec8bb3['sendStatus'](_0x41dfaa);}return _0xec8bb3[_0x55c1('0x17')](_0x41dfaa)[_0x55c1('0x18')]();};}function respondWithResult(_0x5b64cd,_0x5bea48){_0x5bea48=_0x5bea48||0xc8;return function(_0x10275d){if(_0x10275d){return _0x5b64cd['status'](_0x5bea48)[_0x55c1('0x19')](_0x10275d);}};}function respondWithFilteredResult(_0x21e6d9,_0x46774d){return function(_0x3e14db){if(_0x3e14db){var _0x4d0dae=typeof _0x46774d[_0x55c1('0x1a')]===_0x55c1('0x1b')&&typeof _0x46774d[_0x55c1('0x1c')]===_0x55c1('0x1b');var _0x248e08=_0x3e14db['count'];var _0x3f2e13=_0x4d0dae?0x0:_0x46774d[_0x55c1('0x1a')];var _0x5f0a8f=_0x4d0dae?_0x3e14db[_0x55c1('0x1d')]:_0x46774d[_0x55c1('0x1a')]+_0x46774d[_0x55c1('0x1c')];var _0x51e3ca;if(_0x5f0a8f>=_0x248e08){_0x5f0a8f=_0x248e08;_0x51e3ca=0xc8;}else{_0x51e3ca=0xce;}_0x21e6d9[_0x55c1('0x17')](_0x51e3ca);return _0x21e6d9['set'](_0x55c1('0x1e'),_0x3f2e13+'-'+_0x5f0a8f+'/'+_0x248e08)[_0x55c1('0x19')](_0x3e14db);}return null;};}function patchUpdates(_0x700ea1){return function(_0x327f78){try{jsonpatch[_0x55c1('0x1f')](_0x327f78,_0x700ea1,!![]);}catch(_0x54ff4b){return BPromise[_0x55c1('0x20')](_0x54ff4b);}return _0x327f78['save']();};}function saveUpdates(_0x5e76da,_0x309e9d){return function(_0x20b2a9){if(_0x20b2a9){return _0x20b2a9['update'](_0x5e76da)['then'](function(_0x1818a2){return _0x1818a2;});}return null;};}function removeEntity(_0x1a276a,_0x23689f){return function(_0x3b4298){if(_0x3b4298){return _0x3b4298[_0x55c1('0x21')]()[_0x55c1('0x22')](function(){_0x1a276a['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x38f215,_0x4ba7b5){return function(_0x31730b){if(!_0x31730b){_0x38f215[_0x55c1('0x23')](0x194);}return _0x31730b;};}function handleError(_0x394c96,_0x226c98){_0x226c98=_0x226c98||0x1f4;return function(_0x3dd904){logger['error'](_0x3dd904[_0x55c1('0x24')]);if(_0x3dd904['name']){delete _0x3dd904[_0x55c1('0x25')];}_0x394c96[_0x55c1('0x17')](_0x226c98)[_0x55c1('0x26')](_0x3dd904);};}exports[_0x55c1('0x27')]=function(_0x411707,_0x5353f9){var _0x37535f={},_0x321c0d={},_0x45b83d={'count':0x0,'rows':[]};var _0x910820=_[_0x55c1('0x28')](db[_0x55c1('0x29')][_0x55c1('0x2a')],function(_0x23a636){return{'name':_0x23a636[_0x55c1('0x2b')],'type':_0x23a636[_0x55c1('0x2c')]['key']};});_0x321c0d['model']=_[_0x55c1('0x28')](_0x910820,_0x55c1('0x25'));_0x321c0d['query']=_['keys'](_0x411707['query']);_0x321c0d['filters']=_[_0x55c1('0x2d')](_0x321c0d[_0x55c1('0x2e')],_0x321c0d[_0x55c1('0x2f')]);_0x37535f[_0x55c1('0x30')]=_[_0x55c1('0x2d')](_0x321c0d[_0x55c1('0x2e')],qs[_0x55c1('0x31')](_0x411707[_0x55c1('0x2f')][_0x55c1('0x31')]));_0x37535f[_0x55c1('0x30')]=_0x37535f[_0x55c1('0x30')][_0x55c1('0x32')]?_0x37535f[_0x55c1('0x30')]:_0x321c0d[_0x55c1('0x2e')];if(!_0x411707[_0x55c1('0x2f')][_0x55c1('0x33')]('nolimit')){_0x37535f['limit']=qs['limit'](_0x411707['query'][_0x55c1('0x1c')]);_0x37535f[_0x55c1('0x1a')]=qs['offset'](_0x411707['query'][_0x55c1('0x1a')]);}_0x37535f[_0x55c1('0x34')]=qs[_0x55c1('0x35')](_0x411707[_0x55c1('0x2f')][_0x55c1('0x35')]);_0x37535f[_0x55c1('0x36')]=qs['filters'](_[_0x55c1('0x37')](_0x411707['query'],_0x321c0d[_0x55c1('0x38')]),_0x910820);if(_0x411707[_0x55c1('0x2f')]['filter']){_0x37535f[_0x55c1('0x36')]=_['merge'](_0x37535f[_0x55c1('0x36')],{'$or':_[_0x55c1('0x28')](_0x910820,function(_0x5a6176){if(_0x5a6176[_0x55c1('0x2c')]!=='VIRTUAL'){var _0x24a92c={};_0x24a92c[_0x5a6176[_0x55c1('0x25')]]={'$like':'%'+_0x411707[_0x55c1('0x2f')][_0x55c1('0x39')]+'%'};return _0x24a92c;}})});}_0x37535f=_['merge']({},_0x37535f,_0x411707[_0x55c1('0x3a')]);var _0x5ef15f={'where':_0x37535f[_0x55c1('0x36')]};return db['FreshsalesAccount'][_0x55c1('0x1d')](_0x5ef15f)[_0x55c1('0x22')](function(_0x50ea79){_0x45b83d['count']=_0x50ea79;if(_0x411707[_0x55c1('0x2f')][_0x55c1('0x3b')]){_0x37535f[_0x55c1('0x3c')]=[{'all':!![]}];}return db['FreshsalesAccount'][_0x55c1('0x3d')](_0x37535f);})[_0x55c1('0x22')](function(_0x57127f){_0x45b83d[_0x55c1('0x3e')]=_0x57127f;return _0x45b83d;})[_0x55c1('0x22')](respondWithFilteredResult(_0x5353f9,_0x37535f))[_0x55c1('0x3f')](handleError(_0x5353f9,null));};exports['show']=function(_0x210d38,_0x49d4ce){var _0x57df23={'raw':![],'where':{'id':_0x210d38[_0x55c1('0x40')]['id']}},_0xacfbe0={};_0xacfbe0[_0x55c1('0x2e')]=_[_0x55c1('0x41')](db['FreshsalesAccount'][_0x55c1('0x2a')]);_0xacfbe0[_0x55c1('0x2f')]=_['keys'](_0x210d38['query']);_0xacfbe0[_0x55c1('0x38')]=_[_0x55c1('0x2d')](_0xacfbe0[_0x55c1('0x2e')],_0xacfbe0[_0x55c1('0x2f')]);_0x57df23[_0x55c1('0x30')]=_[_0x55c1('0x2d')](_0xacfbe0['model'],qs[_0x55c1('0x31')](_0x210d38['query']['fields']));_0x57df23[_0x55c1('0x30')]=_0x57df23[_0x55c1('0x30')][_0x55c1('0x32')]?_0x57df23[_0x55c1('0x30')]:_0xacfbe0['model'];if(_0x210d38[_0x55c1('0x2f')][_0x55c1('0x3b')]){_0x57df23[_0x55c1('0x3c')]=[{'all':!![]}];}_0x57df23=_['merge']({},_0x57df23,_0x210d38[_0x55c1('0x3a')]);return db['FreshsalesAccount'][_0x55c1('0x42')](_0x57df23)[_0x55c1('0x22')](handleEntityNotFound(_0x49d4ce,null))[_0x55c1('0x22')](respondWithResult(_0x49d4ce,null))[_0x55c1('0x3f')](handleError(_0x49d4ce,null));};exports['create']=function(_0x3d0874,_0x458cac){return db[_0x55c1('0x29')][_0x55c1('0x43')](_0x3d0874[_0x55c1('0x44')],{})[_0x55c1('0x22')](respondWithResult(_0x458cac,0xc9))[_0x55c1('0x3f')](handleError(_0x458cac,null));};exports[_0x55c1('0x45')]=function(_0x37accf,_0x2ab7f0){if(_0x37accf[_0x55c1('0x44')]['id']){delete _0x37accf['body']['id'];}return db[_0x55c1('0x29')][_0x55c1('0x42')]({'where':{'id':_0x37accf[_0x55c1('0x40')]['id']}})['then'](handleEntityNotFound(_0x2ab7f0,null))[_0x55c1('0x22')](saveUpdates(_0x37accf[_0x55c1('0x44')],null))[_0x55c1('0x22')](respondWithResult(_0x2ab7f0,null))[_0x55c1('0x3f')](handleError(_0x2ab7f0,null));};exports[_0x55c1('0x21')]=function(_0x410943,_0x49fe97){return db[_0x55c1('0x29')][_0x55c1('0x42')]({'where':{'id':_0x410943[_0x55c1('0x40')]['id']}})[_0x55c1('0x22')](handleEntityNotFound(_0x49fe97,null))[_0x55c1('0x22')](removeEntity(_0x49fe97,null))[_0x55c1('0x3f')](handleError(_0x49fe97,null));};exports[_0x55c1('0x46')]=function(_0x26260e,_0x172e3b,_0x3e9882){var _0x2ff843={};var _0x4e1a77={};var _0x85f105;var _0x4a4b76;return db[_0x55c1('0x29')]['findOne']({'where':{'id':_0x26260e[_0x55c1('0x40')]['id']}})[_0x55c1('0x22')](handleEntityNotFound(_0x172e3b,null))[_0x55c1('0x22')](function(_0x1ca042){if(_0x1ca042){_0x85f105=_0x1ca042;_0x4e1a77[_0x55c1('0x2e')]=_[_0x55c1('0x41')](db[_0x55c1('0x47')][_0x55c1('0x2a')]);_0x4e1a77[_0x55c1('0x2f')]=_[_0x55c1('0x41')](_0x26260e['query']);_0x4e1a77[_0x55c1('0x38')]=_[_0x55c1('0x2d')](_0x4e1a77[_0x55c1('0x2e')],_0x4e1a77[_0x55c1('0x2f')]);_0x2ff843[_0x55c1('0x30')]=_[_0x55c1('0x2d')](_0x4e1a77[_0x55c1('0x2e')],qs[_0x55c1('0x31')](_0x26260e[_0x55c1('0x2f')][_0x55c1('0x31')]));_0x2ff843[_0x55c1('0x30')]=_0x2ff843['attributes'][_0x55c1('0x32')]?_0x2ff843[_0x55c1('0x30')]:_0x4e1a77[_0x55c1('0x2e')];_0x2ff843[_0x55c1('0x34')]=qs[_0x55c1('0x35')](_0x26260e['query']['sort']);_0x2ff843['where']=qs[_0x55c1('0x38')](_[_0x55c1('0x37')](_0x26260e[_0x55c1('0x2f')],_0x4e1a77[_0x55c1('0x38')]));if(_0x26260e[_0x55c1('0x2f')][_0x55c1('0x39')]){_0x2ff843[_0x55c1('0x36')]=_[_0x55c1('0x48')](_0x2ff843[_0x55c1('0x36')],{'$or':_[_0x55c1('0x28')](_0x2ff843[_0x55c1('0x30')],function(_0x20e522){var _0x5e94ad={};_0x5e94ad[_0x20e522]={'$like':'%'+_0x26260e[_0x55c1('0x2f')][_0x55c1('0x39')]+'%'};return _0x5e94ad;})});}_0x2ff843=_[_0x55c1('0x48')]({},_0x2ff843,_0x26260e['options']);return _0x85f105[_0x55c1('0x46')](_0x2ff843);}})[_0x55c1('0x22')](function(_0x46f50f){if(_0x46f50f){_0x4a4b76=_0x46f50f[_0x55c1('0x32')];if(!_0x26260e[_0x55c1('0x2f')]['hasOwnProperty'](_0x55c1('0x49'))){_0x2ff843[_0x55c1('0x1c')]=qs[_0x55c1('0x1c')](_0x26260e[_0x55c1('0x2f')][_0x55c1('0x1c')]);_0x2ff843[_0x55c1('0x1a')]=qs[_0x55c1('0x1a')](_0x26260e[_0x55c1('0x2f')][_0x55c1('0x1a')]);}return _0x85f105[_0x55c1('0x46')](_0x2ff843);}})[_0x55c1('0x22')](function(_0x4c8294){if(_0x4c8294){return _0x4c8294?{'count':_0x4a4b76,'rows':_0x4c8294}:null;}})[_0x55c1('0x22')](respondWithResult(_0x172e3b,null))[_0x55c1('0x3f')](handleError(_0x172e3b,null));};exports[_0x55c1('0x4a')]=function(_0x5ee839,_0x5c7ea4,_0x3f3ab4){if(_0x5ee839['body']['id']){delete _0x5ee839['body']['id'];}return db[_0x55c1('0x29')]['findOne']({'where':{'id':_0x5ee839[_0x55c1('0x40')]['id']}})['then'](handleEntityNotFound(_0x5c7ea4,null))[_0x55c1('0x22')](function(_0xcdda44){if(_0xcdda44){_0x5ee839[_0x55c1('0x44')]['AccountId']=_0xcdda44['id'];_0x5ee839[_0x55c1('0x44')][_0x55c1('0x4b')]=integrations[_0x55c1('0x4c')](_0x5ee839[_0x55c1('0x44')][_0x55c1('0x4d')],_0x5ee839['body']['type']);_0x5ee839['body'][_0x55c1('0x4e')]=integrations[_0x55c1('0x4f')](_0x5ee839[_0x55c1('0x44')][_0x55c1('0x4d')],_0x5ee839[_0x55c1('0x44')][_0x55c1('0x2c')]);return db[_0x55c1('0x47')]['create'](_0x5ee839[_0x55c1('0x44')],{'include':[{'model':db['FreshsalesField'],'as':_0x55c1('0x4b')},{'model':db[_0x55c1('0x50')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x5c7ea4,null))[_0x55c1('0x3f')](handleError(_0x5c7ea4,null));};exports['getFields']=function(_0x3bb1ec,_0x45bb46,_0x41262d){var _0x7577bb='';var _0x51395c='';return db['FreshsalesAccount'][_0x55c1('0x51')]({'where':{'id':_0x3bb1ec[_0x55c1('0x40')]['id']},'attributes':['id',_0x55c1('0x52'),'remoteUri',_0x55c1('0x53')]})[_0x55c1('0x22')](handleEntityNotFound(_0x45bb46,null))[_0x55c1('0x22')](function(_0xb1d7c4){if(_0xb1d7c4){_0x51395c=_0xb1d7c4['username'];_0x7577bb=_0xb1d7c4[_0x55c1('0x54')];var _0x1c0b2a=_0xb1d7c4[_0x55c1('0x54')][_0x55c1('0x55')](-0x1);if(_0x1c0b2a==='/'){_0x7577bb=_0x7577bb['substring'](0x0,_0x7577bb['lastIndexOf'](_0x1c0b2a));}return rp({'method':_0x55c1('0x56'),'uri':util['format'](_0x55c1('0x57'),_0x7577bb,_0x55c1('0x58')),'headers':{'Authorization':_0x55c1('0x59')+_0xb1d7c4[_0x55c1('0x53')]},'json':!![]});}})[_0x55c1('0x22')](function(_0x3e3719){if(_0x3e3719){var _0x180bc0=_0x3e3719[_0x55c1('0x5a')];var _0x2af963=![];var _0x4c8391=null;for(_0x4c8391=0x0;_0x4c8391<_0x180bc0['length'];_0x4c8391++){if(_0x180bc0[_0x4c8391]['email']===_0x51395c){_0x2af963=!![];}}if(_0x2af963){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x55c1('0x5b')});}}})[_0x55c1('0x22')](respondWithResult(_0x45bb46,null))[_0x55c1('0x3f')](function(_0x1dfa48){var _0xe3394e=_0x3bb1ec['query'][_0x55c1('0x5c')]?0x1f4:_0x1dfa48[_0x55c1('0x5d')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x55c1('0x5e'),_0xe3394e,JSON[_0x55c1('0x5f')](_0x1dfa48));delete _0x1dfa48[_0x55c1('0x25')];if(_0xe3394e===0x191){_0xe3394e=0x190;}_0x45bb46['status'](_0xe3394e)[_0x55c1('0x26')](_0x3bb1ec[_0x55c1('0x2f')][_0x55c1('0x5c')]?{'message':_0x55c1('0x60'),'statusCode':_0x1dfa48[_0x55c1('0x5d')]}:_0x1dfa48);});};