Built motion from commit 47436d59.|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 _0x834a=['intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','type','VIRTUAL','filter','options','includeAll','include','rows','catch','show','rawAttributes','find','create','body','update','params','destroy','FreshsalesConfiguration','pick','getConfigurations','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshsalesField','getFields','username','remoteUri','apiKey','slice','substring','lastIndexOf','GET','format','/api/selector/owners','Token\x20token=','users','email','Requested\x20Resource\x20not\x20Found','getFields,\x20%s,\x20%s,\x20%s','test','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','bluebird','util','path','to-csv','ejs','fs-extra','lodash','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','reject','save','then','error','name','send','index','FreshsalesAccount','fieldName','model','map','query','keys','filters','attributes'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x834a,0xfd));var _0xa834=function(_0x502dae,_0x23b6b7){_0x502dae=_0x502dae-0x0;var _0x50ecf2=_0x834a[_0x502dae];return _0x50ecf2;};'use strict';var emlformat=require(_0xa834('0x0'));var rimraf=require(_0xa834('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa834('0x2'));var rp=require(_0xa834('0x3'));var moment=require('moment');var BPromise=require(_0xa834('0x4'));var Mustache=require('mustache');var util=require(_0xa834('0x5'));var path=require(_0xa834('0x6'));var sox=require('sox');var csv=require(_0xa834('0x7'));var ejs=require(_0xa834('0x8'));var fs=require('fs');var fs_extra=require(_0xa834('0x9'));var _=require(_0xa834('0xa'));var squel=require('squel');var crypto=require(_0xa834('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xa834('0x7'));var querystring=require(_0xa834('0xc'));var Papa=require(_0xa834('0xd'));var Redis=require(_0xa834('0xe'));var authService=require(_0xa834('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xa834('0x10'));var hardwareService=require(_0xa834('0x11'));var logger=require(_0xa834('0x12'))('api');var utils=require('../../config/utils');var config=require(_0xa834('0x13'));var licenseUtil=require(_0xa834('0x14'));var db=require(_0xa834('0x15'))['db'];var integrations=require(_0xa834('0x16'));function respondWithStatusCode(_0x1c7c49,_0x70d08b){_0x70d08b=_0x70d08b||0xcc;return function(_0x1ed6fd){if(_0x1ed6fd){return _0x1c7c49[_0xa834('0x17')](_0x70d08b);}return _0x1c7c49[_0xa834('0x18')](_0x70d08b)[_0xa834('0x19')]();};}function respondWithResult(_0x1975a9,_0xfc018d){_0xfc018d=_0xfc018d||0xc8;return function(_0x398b72){if(_0x398b72){return _0x1975a9['status'](_0xfc018d)[_0xa834('0x1a')](_0x398b72);}};}function respondWithFilteredResult(_0x22f765,_0x155f5a){return function(_0x1968df){if(_0x1968df){var _0x4c331b=typeof _0x155f5a[_0xa834('0x1b')]===_0xa834('0x1c')&&typeof _0x155f5a[_0xa834('0x1d')]===_0xa834('0x1c');var _0x1c352f=_0x1968df[_0xa834('0x1e')];var _0x236c6a=_0x4c331b?0x0:_0x155f5a[_0xa834('0x1b')];var _0x26d563=_0x4c331b?_0x1968df[_0xa834('0x1e')]:_0x155f5a[_0xa834('0x1b')]+_0x155f5a['limit'];var _0x4e1b3e;if(_0x26d563>=_0x1c352f){_0x26d563=_0x1c352f;_0x4e1b3e=0xc8;}else{_0x4e1b3e=0xce;}_0x22f765['status'](_0x4e1b3e);return _0x22f765['set'](_0xa834('0x1f'),_0x236c6a+'-'+_0x26d563+'/'+_0x1c352f)['json'](_0x1968df);}return null;};}function patchUpdates(_0x9626d7){return function(_0x442074){try{jsonpatch['apply'](_0x442074,_0x9626d7,!![]);}catch(_0x4ec6dc){return BPromise[_0xa834('0x20')](_0x4ec6dc);}return _0x442074[_0xa834('0x21')]();};}function saveUpdates(_0x478ebc,_0x47a32a){return function(_0x23a534){if(_0x23a534){return _0x23a534['update'](_0x478ebc)[_0xa834('0x22')](function(_0x58848d){return _0x58848d;});}return null;};}function removeEntity(_0x14da24,_0x29867f){return function(_0x4bad96){if(_0x4bad96){return _0x4bad96['destroy']()[_0xa834('0x22')](function(){_0x14da24[_0xa834('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4337d9,_0x1657c6){return function(_0x1cf3b1){if(!_0x1cf3b1){_0x4337d9[_0xa834('0x17')](0x194);}return _0x1cf3b1;};}function handleError(_0x3bc424,_0x306261){_0x306261=_0x306261||0x1f4;return function(_0x37e16d){logger[_0xa834('0x23')](_0x37e16d['stack']);if(_0x37e16d['name']){delete _0x37e16d[_0xa834('0x24')];}_0x3bc424['status'](_0x306261)[_0xa834('0x25')](_0x37e16d);};}exports[_0xa834('0x26')]=function(_0x4f7fe0,_0x1e94d3){var _0x4b71bb={},_0x2fb8e1={},_0x59c6cb={'count':0x0,'rows':[]};var _0x4decce=_['map'](db[_0xa834('0x27')]['rawAttributes'],function(_0x36a998){return{'name':_0x36a998[_0xa834('0x28')],'type':_0x36a998['type']['key']};});_0x2fb8e1[_0xa834('0x29')]=_[_0xa834('0x2a')](_0x4decce,_0xa834('0x24'));_0x2fb8e1[_0xa834('0x2b')]=_[_0xa834('0x2c')](_0x4f7fe0[_0xa834('0x2b')]);_0x2fb8e1[_0xa834('0x2d')]=_['intersection'](_0x2fb8e1['model'],_0x2fb8e1[_0xa834('0x2b')]);_0x4b71bb[_0xa834('0x2e')]=_[_0xa834('0x2f')](_0x2fb8e1['model'],qs[_0xa834('0x30')](_0x4f7fe0[_0xa834('0x2b')][_0xa834('0x30')]));_0x4b71bb['attributes']=_0x4b71bb['attributes'][_0xa834('0x31')]?_0x4b71bb[_0xa834('0x2e')]:_0x2fb8e1['model'];if(!_0x4f7fe0[_0xa834('0x2b')][_0xa834('0x32')](_0xa834('0x33'))){_0x4b71bb[_0xa834('0x1d')]=qs[_0xa834('0x1d')](_0x4f7fe0[_0xa834('0x2b')][_0xa834('0x1d')]);_0x4b71bb['offset']=qs[_0xa834('0x1b')](_0x4f7fe0[_0xa834('0x2b')]['offset']);}_0x4b71bb[_0xa834('0x34')]=qs['sort'](_0x4f7fe0[_0xa834('0x2b')][_0xa834('0x35')]);_0x4b71bb[_0xa834('0x36')]=qs[_0xa834('0x2d')](_['pick'](_0x4f7fe0['query'],_0x2fb8e1[_0xa834('0x2d')]),_0x4decce);if(_0x4f7fe0[_0xa834('0x2b')]['filter']){_0x4b71bb[_0xa834('0x36')]=_[_0xa834('0x37')](_0x4b71bb['where'],{'$or':_[_0xa834('0x2a')](_0x4decce,function(_0x3f6fd5){if(_0x3f6fd5[_0xa834('0x38')]!==_0xa834('0x39')){var _0x3c3c1b={};_0x3c3c1b[_0x3f6fd5[_0xa834('0x24')]]={'$like':'%'+_0x4f7fe0[_0xa834('0x2b')][_0xa834('0x3a')]+'%'};return _0x3c3c1b;}})});}_0x4b71bb=_['merge']({},_0x4b71bb,_0x4f7fe0[_0xa834('0x3b')]);var _0x5e80ab={'where':_0x4b71bb[_0xa834('0x36')]};return db['FreshsalesAccount'][_0xa834('0x1e')](_0x5e80ab)[_0xa834('0x22')](function(_0x5bfa29){_0x59c6cb[_0xa834('0x1e')]=_0x5bfa29;if(_0x4f7fe0[_0xa834('0x2b')][_0xa834('0x3c')]){_0x4b71bb[_0xa834('0x3d')]=[{'all':!![]}];}return db[_0xa834('0x27')]['findAll'](_0x4b71bb);})[_0xa834('0x22')](function(_0x7571c7){_0x59c6cb[_0xa834('0x3e')]=_0x7571c7;return _0x59c6cb;})[_0xa834('0x22')](respondWithFilteredResult(_0x1e94d3,_0x4b71bb))[_0xa834('0x3f')](handleError(_0x1e94d3,null));};exports[_0xa834('0x40')]=function(_0x179bfb,_0x392bfc){var _0x5c979f={'raw':![],'where':{'id':_0x179bfb['params']['id']}},_0x2b41c9={};_0x2b41c9[_0xa834('0x29')]=_[_0xa834('0x2c')](db[_0xa834('0x27')][_0xa834('0x41')]);_0x2b41c9[_0xa834('0x2b')]=_[_0xa834('0x2c')](_0x179bfb[_0xa834('0x2b')]);_0x2b41c9['filters']=_[_0xa834('0x2f')](_0x2b41c9[_0xa834('0x29')],_0x2b41c9[_0xa834('0x2b')]);_0x5c979f[_0xa834('0x2e')]=_[_0xa834('0x2f')](_0x2b41c9[_0xa834('0x29')],qs[_0xa834('0x30')](_0x179bfb['query']['fields']));_0x5c979f['attributes']=_0x5c979f[_0xa834('0x2e')][_0xa834('0x31')]?_0x5c979f[_0xa834('0x2e')]:_0x2b41c9[_0xa834('0x29')];if(_0x179bfb[_0xa834('0x2b')][_0xa834('0x3c')]){_0x5c979f[_0xa834('0x3d')]=[{'all':!![]}];}_0x5c979f=_[_0xa834('0x37')]({},_0x5c979f,_0x179bfb[_0xa834('0x3b')]);return db[_0xa834('0x27')][_0xa834('0x42')](_0x5c979f)[_0xa834('0x22')](handleEntityNotFound(_0x392bfc,null))[_0xa834('0x22')](respondWithResult(_0x392bfc,null))[_0xa834('0x3f')](handleError(_0x392bfc,null));};exports[_0xa834('0x43')]=function(_0x411e96,_0x49e629){return db[_0xa834('0x27')][_0xa834('0x43')](_0x411e96[_0xa834('0x44')],{})[_0xa834('0x22')](respondWithResult(_0x49e629,0xc9))[_0xa834('0x3f')](handleError(_0x49e629,null));};exports[_0xa834('0x45')]=function(_0x5df594,_0x53cf50){if(_0x5df594[_0xa834('0x44')]['id']){delete _0x5df594['body']['id'];}return db[_0xa834('0x27')][_0xa834('0x42')]({'where':{'id':_0x5df594[_0xa834('0x46')]['id']}})[_0xa834('0x22')](handleEntityNotFound(_0x53cf50,null))[_0xa834('0x22')](saveUpdates(_0x5df594[_0xa834('0x44')],null))[_0xa834('0x22')](respondWithResult(_0x53cf50,null))[_0xa834('0x3f')](handleError(_0x53cf50,null));};exports[_0xa834('0x47')]=function(_0x59a15e,_0x570428){return db[_0xa834('0x27')][_0xa834('0x42')]({'where':{'id':_0x59a15e[_0xa834('0x46')]['id']}})[_0xa834('0x22')](handleEntityNotFound(_0x570428,null))[_0xa834('0x22')](removeEntity(_0x570428,null))[_0xa834('0x3f')](handleError(_0x570428,null));};exports['getConfigurations']=function(_0x7d7e14,_0x3f103e,_0x3a717c){var _0x9e28b7={};var _0x11e1d6={};var _0x15da7c;var _0x32fb39;return db[_0xa834('0x27')]['findOne']({'where':{'id':_0x7d7e14[_0xa834('0x46')]['id']}})[_0xa834('0x22')](handleEntityNotFound(_0x3f103e,null))[_0xa834('0x22')](function(_0x292585){if(_0x292585){_0x15da7c=_0x292585;_0x11e1d6['model']=_['keys'](db[_0xa834('0x48')][_0xa834('0x41')]);_0x11e1d6[_0xa834('0x2b')]=_[_0xa834('0x2c')](_0x7d7e14[_0xa834('0x2b')]);_0x11e1d6[_0xa834('0x2d')]=_[_0xa834('0x2f')](_0x11e1d6[_0xa834('0x29')],_0x11e1d6[_0xa834('0x2b')]);_0x9e28b7[_0xa834('0x2e')]=_[_0xa834('0x2f')](_0x11e1d6[_0xa834('0x29')],qs[_0xa834('0x30')](_0x7d7e14[_0xa834('0x2b')]['fields']));_0x9e28b7[_0xa834('0x2e')]=_0x9e28b7[_0xa834('0x2e')][_0xa834('0x31')]?_0x9e28b7[_0xa834('0x2e')]:_0x11e1d6[_0xa834('0x29')];_0x9e28b7[_0xa834('0x34')]=qs[_0xa834('0x35')](_0x7d7e14[_0xa834('0x2b')][_0xa834('0x35')]);_0x9e28b7['where']=qs[_0xa834('0x2d')](_[_0xa834('0x49')](_0x7d7e14['query'],_0x11e1d6[_0xa834('0x2d')]));if(_0x7d7e14[_0xa834('0x2b')][_0xa834('0x3a')]){_0x9e28b7[_0xa834('0x36')]=_[_0xa834('0x37')](_0x9e28b7[_0xa834('0x36')],{'$or':_[_0xa834('0x2a')](_0x9e28b7[_0xa834('0x2e')],function(_0x19498d){var _0x2c01f4={};_0x2c01f4[_0x19498d]={'$like':'%'+_0x7d7e14['query'][_0xa834('0x3a')]+'%'};return _0x2c01f4;})});}_0x9e28b7=_[_0xa834('0x37')]({},_0x9e28b7,_0x7d7e14[_0xa834('0x3b')]);return _0x15da7c[_0xa834('0x4a')](_0x9e28b7);}})[_0xa834('0x22')](function(_0x449c71){if(_0x449c71){_0x32fb39=_0x449c71[_0xa834('0x31')];if(!_0x7d7e14[_0xa834('0x2b')][_0xa834('0x32')](_0xa834('0x33'))){_0x9e28b7[_0xa834('0x1d')]=qs['limit'](_0x7d7e14[_0xa834('0x2b')]['limit']);_0x9e28b7[_0xa834('0x1b')]=qs[_0xa834('0x1b')](_0x7d7e14[_0xa834('0x2b')][_0xa834('0x1b')]);}return _0x15da7c[_0xa834('0x4a')](_0x9e28b7);}})['then'](function(_0x1f02af){if(_0x1f02af){return _0x1f02af?{'count':_0x32fb39,'rows':_0x1f02af}:null;}})[_0xa834('0x22')](respondWithResult(_0x3f103e,null))[_0xa834('0x3f')](handleError(_0x3f103e,null));};exports[_0xa834('0x4b')]=function(_0x959031,_0x502480,_0x4c8f71){if(_0x959031[_0xa834('0x44')]['id']){delete _0x959031['body']['id'];}return db[_0xa834('0x27')]['findOne']({'where':{'id':_0x959031['params']['id']}})['then'](handleEntityNotFound(_0x502480,null))[_0xa834('0x22')](function(_0x48c4c6){if(_0x48c4c6){_0x959031[_0xa834('0x44')][_0xa834('0x4c')]=_0x48c4c6['id'];_0x959031[_0xa834('0x44')][_0xa834('0x4d')]=integrations[_0xa834('0x4e')](_0x959031['body'][_0xa834('0x4f')],_0x959031[_0xa834('0x44')][_0xa834('0x38')]);_0x959031['body'][_0xa834('0x50')]=integrations[_0xa834('0x51')](_0x959031[_0xa834('0x44')][_0xa834('0x4f')],_0x959031[_0xa834('0x44')][_0xa834('0x38')]);return db[_0xa834('0x48')][_0xa834('0x43')](_0x959031[_0xa834('0x44')],{'include':[{'model':db[_0xa834('0x52')],'as':_0xa834('0x4d')},{'model':db['FreshsalesField'],'as':_0xa834('0x50')}]});}return null;})[_0xa834('0x22')](respondWithResult(_0x502480,null))[_0xa834('0x3f')](handleError(_0x502480,null));};exports[_0xa834('0x53')]=function(_0x42c753,_0x1a995d,_0x5d8558){var _0x43976f='';var _0x35abb6='';return db[_0xa834('0x27')]['findOne']({'where':{'id':_0x42c753[_0xa834('0x46')]['id']},'attributes':['id',_0xa834('0x54'),_0xa834('0x55'),_0xa834('0x56')]})[_0xa834('0x22')](handleEntityNotFound(_0x1a995d,null))[_0xa834('0x22')](function(_0x4f93a0){if(_0x4f93a0){_0x35abb6=_0x4f93a0[_0xa834('0x54')];_0x43976f=_0x4f93a0[_0xa834('0x55')];var _0x155a40=_0x4f93a0[_0xa834('0x55')][_0xa834('0x57')](-0x1);if(_0x155a40==='/'){_0x43976f=_0x43976f[_0xa834('0x58')](0x0,_0x43976f[_0xa834('0x59')](_0x155a40));}return rp({'method':_0xa834('0x5a'),'uri':util[_0xa834('0x5b')]('%s%s',_0x43976f,_0xa834('0x5c')),'headers':{'Authorization':_0xa834('0x5d')+_0x4f93a0[_0xa834('0x56')]},'json':!![]});}})[_0xa834('0x22')](function(_0x4218ee){if(_0x4218ee){var _0x4860e4=_0x4218ee[_0xa834('0x5e')];var _0x3d2c8a=![];var _0x1df43f=null;for(_0x1df43f=0x0;_0x1df43f<_0x4860e4[_0xa834('0x31')];_0x1df43f++){if(_0x4860e4[_0x1df43f][_0xa834('0x5f')]===_0x35abb6){_0x3d2c8a=!![];}}if(_0x3d2c8a){return!![];}else{throw new Error({'statusCode':0x194,'message':_0xa834('0x60')});}}})[_0xa834('0x22')](respondWithResult(_0x1a995d,null))[_0xa834('0x3f')](function(_0x2f02a6){var _0x41b925=_0x42c753[_0xa834('0x2b')]['test']?0x1f4:_0x2f02a6['statusCode']||0x1f4;logger[_0xa834('0x23')](_0xa834('0x61'),_0xa834('0x53'),_0x41b925,JSON['stringify'](_0x2f02a6));delete _0x2f02a6[_0xa834('0x24')];if(_0x41b925===0x191){_0x41b925=0x190;}_0x1a995d[_0xa834('0x18')](_0x41b925)[_0xa834('0x25')](_0x42c753[_0xa834('0x2b')][_0xa834('0x62')]?{'message':_0xa834('0x63'),'statusCode':_0x2f02a6['statusCode']}:_0x2f02a6);});};