266781c9b359dba2da5bb4452338c7dea5be97a8
[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 _0x1991=['FreshsalesField','Subjects','getFields','remoteUri','substring','lastIndexOf','GET','/api/selector/owners','Token\x20token=','apiKey','users','email','Requested\x20Resource\x20not\x20Found','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','offset','limit','undefined','count','set','Content-Range','reject','save','update','then','destroy','end','error','stack','send','index','map','rawAttributes','fieldName','type','model','name','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','options','FreshsalesAccount','includeAll','include','findAll','rows','catch','show','params','find','create','body','getConfigurations','findOne','FreshsalesConfiguration','addConfiguration','getSubjects','Descriptions','channel'];(function(_0x5d85cf,_0x4b5e44){var _0x9bb7c2=function(_0x34ba85){while(--_0x34ba85){_0x5d85cf['push'](_0x5d85cf['shift']());}};_0x9bb7c2(++_0x4b5e44);}(_0x1991,0x140));var _0x1199=function(_0x23654a,_0x3a9bf3){_0x23654a=_0x23654a-0x0;var _0x630bae=_0x1991[_0x23654a];return _0x630bae;};'use strict';var emlformat=require(_0x1199('0x0'));var rimraf=require(_0x1199('0x1'));var zipdir=require(_0x1199('0x2'));var jsonpatch=require(_0x1199('0x3'));var rp=require('request-promise');var moment=require(_0x1199('0x4'));var BPromise=require(_0x1199('0x5'));var Mustache=require(_0x1199('0x6'));var util=require(_0x1199('0x7'));var path=require(_0x1199('0x8'));var sox=require(_0x1199('0x9'));var csv=require(_0x1199('0xa'));var ejs=require(_0x1199('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x1199('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x1199('0xa'));var querystring=require(_0x1199('0xd'));var Papa=require('papaparse');var Redis=require(_0x1199('0xe'));var authService=require(_0x1199('0xf'));var qs=require(_0x1199('0x10'));var as=require(_0x1199('0x11'));var hardwareService=require(_0x1199('0x12'));var logger=require(_0x1199('0x13'))('api');var utils=require(_0x1199('0x14'));var config=require(_0x1199('0x15'));var licenseUtil=require(_0x1199('0x16'));var db=require(_0x1199('0x17'))['db'];var integrations=require(_0x1199('0x18'));function respondWithStatusCode(_0x12f385,_0x2288fb){_0x2288fb=_0x2288fb||0xcc;return function(_0x4f3651){if(_0x4f3651){return _0x12f385[_0x1199('0x19')](_0x2288fb);}return _0x12f385[_0x1199('0x1a')](_0x2288fb)['end']();};}function respondWithResult(_0x3ccd21,_0x26af1e){_0x26af1e=_0x26af1e||0xc8;return function(_0x266b29){if(_0x266b29){return _0x3ccd21['status'](_0x26af1e)[_0x1199('0x1b')](_0x266b29);}};}function respondWithFilteredResult(_0x3bfca6,_0x38cc77){return function(_0x57ad2f){if(_0x57ad2f){var _0x2b3774=typeof _0x38cc77[_0x1199('0x1c')]==='undefined'&&typeof _0x38cc77[_0x1199('0x1d')]===_0x1199('0x1e');var _0x255fbb=_0x57ad2f[_0x1199('0x1f')];var _0x35b4a4=_0x2b3774?0x0:_0x38cc77[_0x1199('0x1c')];var _0x21020e=_0x2b3774?_0x57ad2f['count']:_0x38cc77['offset']+_0x38cc77['limit'];var _0x26bef9;if(_0x21020e>=_0x255fbb){_0x21020e=_0x255fbb;_0x26bef9=0xc8;}else{_0x26bef9=0xce;}_0x3bfca6[_0x1199('0x1a')](_0x26bef9);return _0x3bfca6[_0x1199('0x20')](_0x1199('0x21'),_0x35b4a4+'-'+_0x21020e+'/'+_0x255fbb)[_0x1199('0x1b')](_0x57ad2f);}return null;};}function patchUpdates(_0x823452){return function(_0x3fa797){try{jsonpatch['apply'](_0x3fa797,_0x823452,!![]);}catch(_0x31f83b){return BPromise[_0x1199('0x22')](_0x31f83b);}return _0x3fa797[_0x1199('0x23')]();};}function saveUpdates(_0x3b5c1a,_0x18e2cd){return function(_0x52da44){if(_0x52da44){return _0x52da44[_0x1199('0x24')](_0x3b5c1a)[_0x1199('0x25')](function(_0x373adc){return _0x373adc;});}return null;};}function removeEntity(_0x16c966,_0x109626){return function(_0x53053e){if(_0x53053e){return _0x53053e[_0x1199('0x26')]()[_0x1199('0x25')](function(){_0x16c966[_0x1199('0x1a')](0xcc)[_0x1199('0x27')]();});}};}function handleEntityNotFound(_0x259757,_0x5337a2){return function(_0x468542){if(!_0x468542){_0x259757[_0x1199('0x19')](0x194);}return _0x468542;};}function handleError(_0xd3ce42,_0x366dd1){_0x366dd1=_0x366dd1||0x1f4;return function(_0xa10632){logger[_0x1199('0x28')](_0xa10632[_0x1199('0x29')]);if(_0xa10632['name']){delete _0xa10632['name'];}_0xd3ce42[_0x1199('0x1a')](_0x366dd1)[_0x1199('0x2a')](_0xa10632);};}exports[_0x1199('0x2b')]=function(_0x1bf7c6,_0x3bab20){var _0x576239={},_0x782f8a={},_0x1c3d3f={'count':0x0,'rows':[]};var _0x11e590=_[_0x1199('0x2c')](db['FreshsalesAccount'][_0x1199('0x2d')],function(_0x225606){return{'name':_0x225606[_0x1199('0x2e')],'type':_0x225606[_0x1199('0x2f')]['key']};});_0x782f8a[_0x1199('0x30')]=_[_0x1199('0x2c')](_0x11e590,_0x1199('0x31'));_0x782f8a[_0x1199('0x32')]=_[_0x1199('0x33')](_0x1bf7c6[_0x1199('0x32')]);_0x782f8a['filters']=_['intersection'](_0x782f8a['model'],_0x782f8a[_0x1199('0x32')]);_0x576239[_0x1199('0x34')]=_[_0x1199('0x35')](_0x782f8a[_0x1199('0x30')],qs[_0x1199('0x36')](_0x1bf7c6[_0x1199('0x32')][_0x1199('0x36')]));_0x576239['attributes']=_0x576239[_0x1199('0x34')][_0x1199('0x37')]?_0x576239[_0x1199('0x34')]:_0x782f8a[_0x1199('0x30')];if(!_0x1bf7c6[_0x1199('0x32')][_0x1199('0x38')](_0x1199('0x39'))){_0x576239[_0x1199('0x1d')]=qs[_0x1199('0x1d')](_0x1bf7c6[_0x1199('0x32')][_0x1199('0x1d')]);_0x576239['offset']=qs['offset'](_0x1bf7c6[_0x1199('0x32')][_0x1199('0x1c')]);}_0x576239[_0x1199('0x3a')]=qs[_0x1199('0x3b')](_0x1bf7c6['query'][_0x1199('0x3b')]);_0x576239[_0x1199('0x3c')]=qs[_0x1199('0x3d')](_['pick'](_0x1bf7c6[_0x1199('0x32')],_0x782f8a[_0x1199('0x3d')]),_0x11e590);if(_0x1bf7c6[_0x1199('0x32')][_0x1199('0x3e')]){_0x576239['where']=_[_0x1199('0x3f')](_0x576239['where'],{'$or':_[_0x1199('0x2c')](_0x11e590,function(_0x10ad4e){if(_0x10ad4e['type']!==_0x1199('0x40')){var _0x589d57={};_0x589d57[_0x10ad4e[_0x1199('0x31')]]={'$like':'%'+_0x1bf7c6['query'][_0x1199('0x3e')]+'%'};return _0x589d57;}})});}_0x576239=_[_0x1199('0x3f')]({},_0x576239,_0x1bf7c6[_0x1199('0x41')]);var _0x34d0a8={'where':_0x576239[_0x1199('0x3c')]};return db[_0x1199('0x42')]['count'](_0x34d0a8)[_0x1199('0x25')](function(_0x29803c){_0x1c3d3f['count']=_0x29803c;if(_0x1bf7c6[_0x1199('0x32')][_0x1199('0x43')]){_0x576239[_0x1199('0x44')]=[{'all':!![]}];}return db[_0x1199('0x42')][_0x1199('0x45')](_0x576239);})['then'](function(_0x356708){_0x1c3d3f[_0x1199('0x46')]=_0x356708;return _0x1c3d3f;})[_0x1199('0x25')](respondWithFilteredResult(_0x3bab20,_0x576239))[_0x1199('0x47')](handleError(_0x3bab20,null));};exports[_0x1199('0x48')]=function(_0x384f22,_0x167a42){var _0x34e786={'raw':![],'where':{'id':_0x384f22[_0x1199('0x49')]['id']}},_0x452a12={};_0x452a12[_0x1199('0x30')]=_[_0x1199('0x33')](db[_0x1199('0x42')][_0x1199('0x2d')]);_0x452a12[_0x1199('0x32')]=_[_0x1199('0x33')](_0x384f22['query']);_0x452a12['filters']=_['intersection'](_0x452a12['model'],_0x452a12['query']);_0x34e786[_0x1199('0x34')]=_['intersection'](_0x452a12[_0x1199('0x30')],qs['fields'](_0x384f22[_0x1199('0x32')][_0x1199('0x36')]));_0x34e786[_0x1199('0x34')]=_0x34e786['attributes'][_0x1199('0x37')]?_0x34e786[_0x1199('0x34')]:_0x452a12[_0x1199('0x30')];if(_0x384f22['query']['includeAll']){_0x34e786[_0x1199('0x44')]=[{'all':!![]}];}_0x34e786=_[_0x1199('0x3f')]({},_0x34e786,_0x384f22['options']);return db[_0x1199('0x42')][_0x1199('0x4a')](_0x34e786)[_0x1199('0x25')](handleEntityNotFound(_0x167a42,null))[_0x1199('0x25')](respondWithResult(_0x167a42,null))[_0x1199('0x47')](handleError(_0x167a42,null));};exports[_0x1199('0x4b')]=function(_0x5d8685,_0xb9a754){return db[_0x1199('0x42')]['create'](_0x5d8685[_0x1199('0x4c')],{})['then'](respondWithResult(_0xb9a754,0xc9))['catch'](handleError(_0xb9a754,null));};exports[_0x1199('0x24')]=function(_0x14789d,_0x1479fb){if(_0x14789d['body']['id']){delete _0x14789d['body']['id'];}return db[_0x1199('0x42')]['find']({'where':{'id':_0x14789d[_0x1199('0x49')]['id']}})[_0x1199('0x25')](handleEntityNotFound(_0x1479fb,null))[_0x1199('0x25')](saveUpdates(_0x14789d[_0x1199('0x4c')],null))[_0x1199('0x25')](respondWithResult(_0x1479fb,null))[_0x1199('0x47')](handleError(_0x1479fb,null));};exports[_0x1199('0x26')]=function(_0x76a1e5,_0x88e40c){return db[_0x1199('0x42')]['find']({'where':{'id':_0x76a1e5['params']['id']}})[_0x1199('0x25')](handleEntityNotFound(_0x88e40c,null))['then'](removeEntity(_0x88e40c,null))[_0x1199('0x47')](handleError(_0x88e40c,null));};exports[_0x1199('0x4d')]=function(_0x5a729d,_0x164489,_0x596413){var _0x26156c={};var _0x331517={};var _0x24cf23;var _0x138bdb;return db[_0x1199('0x42')][_0x1199('0x4e')]({'where':{'id':_0x5a729d['params']['id']}})[_0x1199('0x25')](handleEntityNotFound(_0x164489,null))['then'](function(_0x3bd0d9){if(_0x3bd0d9){_0x24cf23=_0x3bd0d9;_0x331517[_0x1199('0x30')]=_[_0x1199('0x33')](db[_0x1199('0x4f')][_0x1199('0x2d')]);_0x331517[_0x1199('0x32')]=_['keys'](_0x5a729d['query']);_0x331517['filters']=_[_0x1199('0x35')](_0x331517['model'],_0x331517['query']);_0x26156c[_0x1199('0x34')]=_['intersection'](_0x331517[_0x1199('0x30')],qs[_0x1199('0x36')](_0x5a729d['query'][_0x1199('0x36')]));_0x26156c[_0x1199('0x34')]=_0x26156c['attributes']['length']?_0x26156c[_0x1199('0x34')]:_0x331517['model'];_0x26156c['order']=qs['sort'](_0x5a729d[_0x1199('0x32')][_0x1199('0x3b')]);_0x26156c[_0x1199('0x3c')]=qs[_0x1199('0x3d')](_['pick'](_0x5a729d[_0x1199('0x32')],_0x331517[_0x1199('0x3d')]));if(_0x5a729d[_0x1199('0x32')][_0x1199('0x3e')]){_0x26156c[_0x1199('0x3c')]=_[_0x1199('0x3f')](_0x26156c[_0x1199('0x3c')],{'$or':_['map'](_0x26156c[_0x1199('0x34')],function(_0x2f846b){var _0x83c766={};_0x83c766[_0x2f846b]={'$like':'%'+_0x5a729d['query'][_0x1199('0x3e')]+'%'};return _0x83c766;})});}_0x26156c=_[_0x1199('0x3f')]({},_0x26156c,_0x5a729d[_0x1199('0x41')]);return _0x24cf23[_0x1199('0x4d')](_0x26156c);}})[_0x1199('0x25')](function(_0x395d2b){if(_0x395d2b){_0x138bdb=_0x395d2b[_0x1199('0x37')];if(!_0x5a729d['query'][_0x1199('0x38')](_0x1199('0x39'))){_0x26156c[_0x1199('0x1d')]=qs[_0x1199('0x1d')](_0x5a729d['query'][_0x1199('0x1d')]);_0x26156c[_0x1199('0x1c')]=qs[_0x1199('0x1c')](_0x5a729d[_0x1199('0x32')][_0x1199('0x1c')]);}return _0x24cf23['getConfigurations'](_0x26156c);}})[_0x1199('0x25')](function(_0x36bfa9){if(_0x36bfa9){return _0x36bfa9?{'count':_0x138bdb,'rows':_0x36bfa9}:null;}})['then'](respondWithResult(_0x164489,null))[_0x1199('0x47')](handleError(_0x164489,null));};exports[_0x1199('0x50')]=function(_0x483eda,_0x12b949,_0x27c9fb){if(_0x483eda['body']['id']){delete _0x483eda[_0x1199('0x4c')]['id'];}return db[_0x1199('0x42')][_0x1199('0x4e')]({'where':{'id':_0x483eda[_0x1199('0x49')]['id']}})['then'](handleEntityNotFound(_0x12b949,null))['then'](function(_0x7abe52){if(_0x7abe52){_0x483eda['body']['AccountId']=_0x7abe52['id'];_0x483eda[_0x1199('0x4c')]['Subjects']=integrations[_0x1199('0x51')](_0x483eda[_0x1199('0x4c')]['channel'],_0x483eda[_0x1199('0x4c')][_0x1199('0x2f')]);_0x483eda[_0x1199('0x4c')][_0x1199('0x52')]=integrations['getDescriptions'](_0x483eda[_0x1199('0x4c')][_0x1199('0x53')],_0x483eda[_0x1199('0x4c')]['type']);return db[_0x1199('0x4f')]['create'](_0x483eda[_0x1199('0x4c')],{'include':[{'model':db[_0x1199('0x54')],'as':_0x1199('0x55')},{'model':db['FreshsalesField'],'as':'Descriptions'}]});}return null;})[_0x1199('0x25')](respondWithResult(_0x12b949,null))[_0x1199('0x47')](handleError(_0x12b949,null));};exports[_0x1199('0x56')]=function(_0x11f9d2,_0x2edcf3,_0x2e9e52){var _0x28b937='';var _0x195d3a='';return db['FreshsalesAccount'][_0x1199('0x4e')]({'where':{'id':_0x11f9d2['params']['id']},'attributes':['id','username','remoteUri','apiKey']})[_0x1199('0x25')](handleEntityNotFound(_0x2edcf3,null))[_0x1199('0x25')](function(_0x10a765){if(_0x10a765){_0x195d3a=_0x10a765['username'];_0x28b937=_0x10a765[_0x1199('0x57')];var _0x1520ad=_0x10a765['remoteUri']['slice'](-0x1);if(_0x1520ad==='/'){_0x28b937=_0x28b937[_0x1199('0x58')](0x0,_0x28b937[_0x1199('0x59')](_0x1520ad));}return rp({'method':_0x1199('0x5a'),'uri':util['format']('%s%s',_0x28b937,_0x1199('0x5b')),'headers':{'Authorization':_0x1199('0x5c')+_0x10a765[_0x1199('0x5d')]},'json':!![]});}})[_0x1199('0x25')](function(_0x3c5a99){if(_0x3c5a99){var _0x1fe394=_0x3c5a99[_0x1199('0x5e')];var _0x323367=![];var _0x430f83=null;for(_0x430f83=0x0;_0x430f83<_0x1fe394[_0x1199('0x37')];_0x430f83++){if(_0x1fe394[_0x430f83][_0x1199('0x5f')]===_0x195d3a){_0x323367=!![];}}if(_0x323367){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x1199('0x60')});}}})['then'](respondWithResult(_0x2edcf3,null))['catch'](function(_0x5bd34e){var _0x44fa9d=_0x11f9d2['query'][_0x1199('0x61')]?0x1f4:_0x5bd34e[_0x1199('0x62')]||0x1f4;logger[_0x1199('0x28')](_0x1199('0x63'),_0x1199('0x56'),_0x44fa9d,JSON[_0x1199('0x64')](_0x5bd34e));delete _0x5bd34e['name'];if(_0x44fa9d===0x191){_0x44fa9d=0x190;}_0x2edcf3[_0x1199('0x1a')](_0x44fa9d)[_0x1199('0x2a')](_0x11f9d2[_0x1199('0x32')][_0x1199('0x61')]?{'message':'Wrong\x20credentials','statusCode':_0x5bd34e[_0x1199('0x62')]}:_0x5bd34e);});};