Built motion from commit a61a4a20.|2.5.46
[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 _0xd14e=['Token\x20token=','users','Requested\x20Resource\x20not\x20Found','test','Wrong\x20credentials','statusCode','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','send','index','map','FreshsalesAccount','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','nolimit','order','sort','where','merge','type','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','update','getConfigurations','findOne','length','pick','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','channel','FreshsalesConfiguration','FreshsalesField','getFields','username','remoteUri','apiKey','slice','lastIndexOf','format','%s%s','/api/selector/owners'];(function(_0x1197ce,_0x4b14b7){var _0x3346bb=function(_0x617c3f){while(--_0x617c3f){_0x1197ce['push'](_0x1197ce['shift']());}};_0x3346bb(++_0x4b14b7);}(_0xd14e,0x6e));var _0xed14=function(_0x2d68d6,_0x34aaa7){_0x2d68d6=_0x2d68d6-0x0;var _0x13fb48=_0xd14e[_0x2d68d6];return _0x13fb48;};'use strict';var emlformat=require(_0xed14('0x0'));var rimraf=require(_0xed14('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xed14('0x2'));var rp=require(_0xed14('0x3'));var moment=require(_0xed14('0x4'));var BPromise=require(_0xed14('0x5'));var Mustache=require(_0xed14('0x6'));var util=require('util');var path=require('path');var sox=require(_0xed14('0x7'));var csv=require(_0xed14('0x8'));var ejs=require(_0xed14('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xed14('0xa'));var squel=require(_0xed14('0xb'));var crypto=require(_0xed14('0xc'));var jsforce=require(_0xed14('0xd'));var deskjs=require(_0xed14('0xe'));var toCsv=require(_0xed14('0x8'));var querystring=require(_0xed14('0xf'));var Papa=require(_0xed14('0x10'));var Redis=require(_0xed14('0x11'));var authService=require(_0xed14('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xed14('0x13'));var logger=require('../../config/logger')(_0xed14('0x14'));var utils=require(_0xed14('0x15'));var config=require(_0xed14('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xed14('0x17'))['db'];var integrations=require(_0xed14('0x18'));function respondWithStatusCode(_0x379d4f,_0x422dae){_0x422dae=_0x422dae||0xcc;return function(_0x37339f){if(_0x37339f){return _0x379d4f['sendStatus'](_0x422dae);}return _0x379d4f[_0xed14('0x19')](_0x422dae)[_0xed14('0x1a')]();};}function respondWithResult(_0x47c6ec,_0xeb693e){_0xeb693e=_0xeb693e||0xc8;return function(_0x5e7fac){if(_0x5e7fac){return _0x47c6ec['status'](_0xeb693e)[_0xed14('0x1b')](_0x5e7fac);}};}function respondWithFilteredResult(_0x57c90d,_0x3083ec){return function(_0x234dfe){if(_0x234dfe){var _0xed301b=typeof _0x3083ec[_0xed14('0x1c')]===_0xed14('0x1d')&&typeof _0x3083ec[_0xed14('0x1e')]===_0xed14('0x1d');var _0x297973=_0x234dfe[_0xed14('0x1f')];var _0x32e60f=_0xed301b?0x0:_0x3083ec['offset'];var _0x12cde7=_0xed301b?_0x234dfe[_0xed14('0x1f')]:_0x3083ec[_0xed14('0x1c')]+_0x3083ec['limit'];var _0x5521ee;if(_0x12cde7>=_0x297973){_0x12cde7=_0x297973;_0x5521ee=0xc8;}else{_0x5521ee=0xce;}_0x57c90d[_0xed14('0x19')](_0x5521ee);return _0x57c90d[_0xed14('0x20')](_0xed14('0x21'),_0x32e60f+'-'+_0x12cde7+'/'+_0x297973)[_0xed14('0x1b')](_0x234dfe);}return null;};}function patchUpdates(_0x5bd911){return function(_0x15ac0d){try{jsonpatch[_0xed14('0x22')](_0x15ac0d,_0x5bd911,!![]);}catch(_0x9d9c70){return BPromise[_0xed14('0x23')](_0x9d9c70);}return _0x15ac0d[_0xed14('0x24')]();};}function saveUpdates(_0x139406,_0x9a6822){return function(_0x5e6f7c){if(_0x5e6f7c){return _0x5e6f7c['update'](_0x139406)[_0xed14('0x25')](function(_0x29e793){return _0x29e793;});}return null;};}function removeEntity(_0x46d2d3,_0x450575){return function(_0x50a7aa){if(_0x50a7aa){return _0x50a7aa[_0xed14('0x26')]()[_0xed14('0x25')](function(){_0x46d2d3[_0xed14('0x19')](0xcc)[_0xed14('0x1a')]();});}};}function handleEntityNotFound(_0x4cc136,_0x5d2c33){return function(_0x3a7044){if(!_0x3a7044){_0x4cc136['sendStatus'](0x194);}return _0x3a7044;};}function handleError(_0x25e700,_0x31b7b5){_0x31b7b5=_0x31b7b5||0x1f4;return function(_0xb8ca80){logger[_0xed14('0x27')](_0xb8ca80[_0xed14('0x28')]);if(_0xb8ca80[_0xed14('0x29')]){delete _0xb8ca80[_0xed14('0x29')];}_0x25e700[_0xed14('0x19')](_0x31b7b5)[_0xed14('0x2a')](_0xb8ca80);};}exports[_0xed14('0x2b')]=function(_0x5ae312,_0x17fbe7){var _0x23aee4={},_0x29b03c={},_0x53008b={'count':0x0,'rows':[]};var _0x2b26ca=_[_0xed14('0x2c')](db[_0xed14('0x2d')][_0xed14('0x2e')],function(_0x6f3723){return{'name':_0x6f3723[_0xed14('0x2f')],'type':_0x6f3723['type'][_0xed14('0x30')]};});_0x29b03c[_0xed14('0x31')]=_['map'](_0x2b26ca,'name');_0x29b03c[_0xed14('0x32')]=_[_0xed14('0x33')](_0x5ae312[_0xed14('0x32')]);_0x29b03c[_0xed14('0x34')]=_[_0xed14('0x35')](_0x29b03c['model'],_0x29b03c[_0xed14('0x32')]);_0x23aee4['attributes']=_[_0xed14('0x35')](_0x29b03c[_0xed14('0x31')],qs[_0xed14('0x36')](_0x5ae312['query'][_0xed14('0x36')]));_0x23aee4[_0xed14('0x37')]=_0x23aee4['attributes']['length']?_0x23aee4['attributes']:_0x29b03c[_0xed14('0x31')];if(!_0x5ae312['query']['hasOwnProperty'](_0xed14('0x38'))){_0x23aee4['limit']=qs[_0xed14('0x1e')](_0x5ae312['query'][_0xed14('0x1e')]);_0x23aee4[_0xed14('0x1c')]=qs[_0xed14('0x1c')](_0x5ae312[_0xed14('0x32')]['offset']);}_0x23aee4[_0xed14('0x39')]=qs[_0xed14('0x3a')](_0x5ae312['query'][_0xed14('0x3a')]);_0x23aee4[_0xed14('0x3b')]=qs['filters'](_['pick'](_0x5ae312[_0xed14('0x32')],_0x29b03c['filters']),_0x2b26ca);if(_0x5ae312[_0xed14('0x32')]['filter']){_0x23aee4[_0xed14('0x3b')]=_[_0xed14('0x3c')](_0x23aee4['where'],{'$or':_['map'](_0x2b26ca,function(_0x1976fa){if(_0x1976fa[_0xed14('0x3d')]!==_0xed14('0x3e')){var _0x22b066={};_0x22b066[_0x1976fa[_0xed14('0x29')]]={'$like':'%'+_0x5ae312[_0xed14('0x32')][_0xed14('0x3f')]+'%'};return _0x22b066;}})});}_0x23aee4=_[_0xed14('0x3c')]({},_0x23aee4,_0x5ae312[_0xed14('0x40')]);var _0x5a4bba={'where':_0x23aee4[_0xed14('0x3b')]};return db['FreshsalesAccount']['count'](_0x5a4bba)[_0xed14('0x25')](function(_0x2aa3d9){_0x53008b[_0xed14('0x1f')]=_0x2aa3d9;if(_0x5ae312[_0xed14('0x32')][_0xed14('0x41')]){_0x23aee4[_0xed14('0x42')]=[{'all':!![]}];}return db[_0xed14('0x2d')][_0xed14('0x43')](_0x23aee4);})['then'](function(_0x5dbed9){_0x53008b[_0xed14('0x44')]=_0x5dbed9;return _0x53008b;})[_0xed14('0x25')](respondWithFilteredResult(_0x17fbe7,_0x23aee4))[_0xed14('0x45')](handleError(_0x17fbe7,null));};exports[_0xed14('0x46')]=function(_0x32376d,_0xf638e2){var _0xddf6bf={'raw':![],'where':{'id':_0x32376d[_0xed14('0x47')]['id']}},_0x291c9a={};_0x291c9a[_0xed14('0x31')]=_[_0xed14('0x33')](db['FreshsalesAccount'][_0xed14('0x2e')]);_0x291c9a[_0xed14('0x32')]=_[_0xed14('0x33')](_0x32376d['query']);_0x291c9a[_0xed14('0x34')]=_['intersection'](_0x291c9a[_0xed14('0x31')],_0x291c9a[_0xed14('0x32')]);_0xddf6bf[_0xed14('0x37')]=_[_0xed14('0x35')](_0x291c9a['model'],qs[_0xed14('0x36')](_0x32376d[_0xed14('0x32')]['fields']));_0xddf6bf[_0xed14('0x37')]=_0xddf6bf['attributes']['length']?_0xddf6bf[_0xed14('0x37')]:_0x291c9a['model'];if(_0x32376d[_0xed14('0x32')][_0xed14('0x41')]){_0xddf6bf[_0xed14('0x42')]=[{'all':!![]}];}_0xddf6bf=_['merge']({},_0xddf6bf,_0x32376d['options']);return db[_0xed14('0x2d')][_0xed14('0x48')](_0xddf6bf)[_0xed14('0x25')](handleEntityNotFound(_0xf638e2,null))[_0xed14('0x25')](respondWithResult(_0xf638e2,null))['catch'](handleError(_0xf638e2,null));};exports[_0xed14('0x49')]=function(_0x467ea3,_0x59da35){return db['FreshsalesAccount'][_0xed14('0x49')](_0x467ea3[_0xed14('0x4a')],{})[_0xed14('0x25')](respondWithResult(_0x59da35,0xc9))[_0xed14('0x45')](handleError(_0x59da35,null));};exports[_0xed14('0x4b')]=function(_0x4c7aa3,_0x32d5f6){if(_0x4c7aa3[_0xed14('0x4a')]['id']){delete _0x4c7aa3[_0xed14('0x4a')]['id'];}return db[_0xed14('0x2d')][_0xed14('0x48')]({'where':{'id':_0x4c7aa3['params']['id']}})[_0xed14('0x25')](handleEntityNotFound(_0x32d5f6,null))[_0xed14('0x25')](saveUpdates(_0x4c7aa3['body'],null))['then'](respondWithResult(_0x32d5f6,null))[_0xed14('0x45')](handleError(_0x32d5f6,null));};exports[_0xed14('0x26')]=function(_0x1c305d,_0x5930c0){return db[_0xed14('0x2d')][_0xed14('0x48')]({'where':{'id':_0x1c305d['params']['id']}})['then'](handleEntityNotFound(_0x5930c0,null))['then'](removeEntity(_0x5930c0,null))[_0xed14('0x45')](handleError(_0x5930c0,null));};exports[_0xed14('0x4c')]=function(_0x354bf8,_0x5c280f,_0x153af2){var _0x1990aa={};var _0x5ec0f4={};var _0x22f277;var _0x1b0bdb;return db[_0xed14('0x2d')][_0xed14('0x4d')]({'where':{'id':_0x354bf8[_0xed14('0x47')]['id']}})[_0xed14('0x25')](handleEntityNotFound(_0x5c280f,null))['then'](function(_0x4b0ce8){if(_0x4b0ce8){_0x22f277=_0x4b0ce8;_0x5ec0f4[_0xed14('0x31')]=_[_0xed14('0x33')](db['FreshsalesConfiguration']['rawAttributes']);_0x5ec0f4[_0xed14('0x32')]=_[_0xed14('0x33')](_0x354bf8[_0xed14('0x32')]);_0x5ec0f4['filters']=_['intersection'](_0x5ec0f4['model'],_0x5ec0f4[_0xed14('0x32')]);_0x1990aa[_0xed14('0x37')]=_['intersection'](_0x5ec0f4[_0xed14('0x31')],qs['fields'](_0x354bf8[_0xed14('0x32')]['fields']));_0x1990aa['attributes']=_0x1990aa[_0xed14('0x37')][_0xed14('0x4e')]?_0x1990aa[_0xed14('0x37')]:_0x5ec0f4[_0xed14('0x31')];_0x1990aa[_0xed14('0x39')]=qs[_0xed14('0x3a')](_0x354bf8['query']['sort']);_0x1990aa['where']=qs[_0xed14('0x34')](_[_0xed14('0x4f')](_0x354bf8[_0xed14('0x32')],_0x5ec0f4[_0xed14('0x34')]));if(_0x354bf8['query'][_0xed14('0x3f')]){_0x1990aa[_0xed14('0x3b')]=_[_0xed14('0x3c')](_0x1990aa[_0xed14('0x3b')],{'$or':_[_0xed14('0x2c')](_0x1990aa[_0xed14('0x37')],function(_0xd1f239){var _0xa0ba42={};_0xa0ba42[_0xd1f239]={'$like':'%'+_0x354bf8[_0xed14('0x32')]['filter']+'%'};return _0xa0ba42;})});}_0x1990aa=_[_0xed14('0x3c')]({},_0x1990aa,_0x354bf8[_0xed14('0x40')]);return _0x22f277[_0xed14('0x4c')](_0x1990aa);}})[_0xed14('0x25')](function(_0x294adc){if(_0x294adc){_0x1b0bdb=_0x294adc[_0xed14('0x4e')];if(!_0x354bf8['query'][_0xed14('0x50')]('nolimit')){_0x1990aa[_0xed14('0x1e')]=qs['limit'](_0x354bf8[_0xed14('0x32')][_0xed14('0x1e')]);_0x1990aa[_0xed14('0x1c')]=qs[_0xed14('0x1c')](_0x354bf8[_0xed14('0x32')][_0xed14('0x1c')]);}return _0x22f277['getConfigurations'](_0x1990aa);}})[_0xed14('0x25')](function(_0x33cc3f){if(_0x33cc3f){return _0x33cc3f?{'count':_0x1b0bdb,'rows':_0x33cc3f}:null;}})['then'](respondWithResult(_0x5c280f,null))[_0xed14('0x45')](handleError(_0x5c280f,null));};exports[_0xed14('0x51')]=function(_0x103234,_0x3af802,_0x1dbfee){if(_0x103234['body']['id']){delete _0x103234[_0xed14('0x4a')]['id'];}return db[_0xed14('0x2d')][_0xed14('0x4d')]({'where':{'id':_0x103234['params']['id']}})[_0xed14('0x25')](handleEntityNotFound(_0x3af802,null))[_0xed14('0x25')](function(_0x53c1d1){if(_0x53c1d1){_0x103234[_0xed14('0x4a')][_0xed14('0x52')]=_0x53c1d1['id'];_0x103234[_0xed14('0x4a')][_0xed14('0x53')]=integrations[_0xed14('0x54')](_0x103234[_0xed14('0x4a')]['channel'],_0x103234[_0xed14('0x4a')]['type']);_0x103234[_0xed14('0x4a')][_0xed14('0x55')]=integrations['getDescriptions'](_0x103234[_0xed14('0x4a')][_0xed14('0x56')],_0x103234['body'][_0xed14('0x3d')]);return db[_0xed14('0x57')][_0xed14('0x49')](_0x103234[_0xed14('0x4a')],{'include':[{'model':db[_0xed14('0x58')],'as':_0xed14('0x53')},{'model':db[_0xed14('0x58')],'as':_0xed14('0x55')}]});}return null;})[_0xed14('0x25')](respondWithResult(_0x3af802,null))['catch'](handleError(_0x3af802,null));};exports[_0xed14('0x59')]=function(_0x156740,_0x1ecd15,_0xec3dd1){var _0x4940f8='';var _0x25147a='';return db[_0xed14('0x2d')][_0xed14('0x4d')]({'where':{'id':_0x156740['params']['id']},'attributes':['id',_0xed14('0x5a'),_0xed14('0x5b'),_0xed14('0x5c')]})['then'](handleEntityNotFound(_0x1ecd15,null))[_0xed14('0x25')](function(_0x2d5f70){if(_0x2d5f70){_0x25147a=_0x2d5f70['username'];_0x4940f8=_0x2d5f70['remoteUri'];var _0x3bae2c=_0x2d5f70[_0xed14('0x5b')][_0xed14('0x5d')](-0x1);if(_0x3bae2c==='/'){_0x4940f8=_0x4940f8['substring'](0x0,_0x4940f8[_0xed14('0x5e')](_0x3bae2c));}return rp({'method':'GET','uri':util[_0xed14('0x5f')](_0xed14('0x60'),_0x4940f8,_0xed14('0x61')),'headers':{'Authorization':_0xed14('0x62')+_0x2d5f70['apiKey']},'json':!![]});}})[_0xed14('0x25')](function(_0x4ac0f6){if(_0x4ac0f6){var _0x1ff7e3=_0x4ac0f6[_0xed14('0x63')];var _0x37426f=![];var _0x39ac52=null;for(_0x39ac52=0x0;_0x39ac52<_0x1ff7e3[_0xed14('0x4e')];_0x39ac52++){if(_0x1ff7e3[_0x39ac52]['email']===_0x25147a){_0x37426f=!![];}}if(_0x37426f){return!![];}else{throw new Error({'statusCode':0x194,'message':_0xed14('0x64')});}}})[_0xed14('0x25')](respondWithResult(_0x1ecd15,null))['catch'](function(_0x4ecb56){var _0x449d41=_0x156740['query'][_0xed14('0x65')]?0x1f4:_0x4ecb56['statusCode']||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0xed14('0x59'),_0x449d41,JSON['stringify'](_0x4ecb56));delete _0x4ecb56[_0xed14('0x29')];if(_0x449d41===0x191){_0x449d41=0x190;}_0x1ecd15[_0xed14('0x19')](_0x449d41)[_0xed14('0x2a')](_0x156740[_0xed14('0x32')]['test']?{'message':_0xed14('0x66'),'statusCode':_0x4ecb56[_0xed14('0x67')]}:_0x4ecb56);});};