91b1f6cf86b0e87b30b7d1cfa221f0a64528d979
[motion2.git] / server / api / intFreshsalesConfiguration / intFreshsalesConfiguration.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 _0x85f7=['FreshsalesField','getSubjects','getDescriptions','getFields','eml-format','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','undefined','limit','count','offset','reject','save','update','then','destroy','end','error','stack','name','send','index','map','FreshsalesConfiguration','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','options','include','findAll','catch','show','params','includeAll','create','body','find','findOne'];(function(_0x37c348,_0x1e49cd){var _0x40c8f3=function(_0xae9041){while(--_0xae9041){_0x37c348['push'](_0x37c348['shift']());}};_0x40c8f3(++_0x1e49cd);}(_0x85f7,0xe8));var _0x785f=function(_0x34a003,_0x206d2d){_0x34a003=_0x34a003-0x0;var _0x2e7dae=_0x85f7[_0x34a003];return _0x2e7dae;};'use strict';var emlformat=require(_0x785f('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x785f('0x1'));var rp=require(_0x785f('0x2'));var moment=require(_0x785f('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x785f('0x4'));var util=require(_0x785f('0x5'));var path=require(_0x785f('0x6'));var sox=require(_0x785f('0x7'));var csv=require(_0x785f('0x8'));var ejs=require(_0x785f('0x9'));var fs=require('fs');var fs_extra=require(_0x785f('0xa'));var _=require('lodash');var squel=require(_0x785f('0xb'));var crypto=require(_0x785f('0xc'));var jsforce=require(_0x785f('0xd'));var deskjs=require(_0x785f('0xe'));var toCsv=require(_0x785f('0x8'));var querystring=require(_0x785f('0xf'));var Papa=require(_0x785f('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x785f('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x785f('0x12'))(_0x785f('0x13'));var utils=require(_0x785f('0x14'));var config=require(_0x785f('0x15'));var licenseUtil=require(_0x785f('0x16'));var db=require(_0x785f('0x17'))['db'];function respondWithStatusCode(_0x394708,_0x25b94d){_0x25b94d=_0x25b94d||0xcc;return function(_0x437bc7){if(_0x437bc7){return _0x394708['sendStatus'](_0x25b94d);}return _0x394708[_0x785f('0x18')](_0x25b94d)['end']();};}function respondWithResult(_0x3edb40,_0x976e4d){_0x976e4d=_0x976e4d||0xc8;return function(_0x5e22e1){if(_0x5e22e1){return _0x3edb40['status'](_0x976e4d)[_0x785f('0x19')](_0x5e22e1);}};}function respondWithFilteredResult(_0x251ec3,_0x4d899e){return function(_0x5f23d6){if(_0x5f23d6){var _0x1aa62f=typeof _0x4d899e['offset']===_0x785f('0x1a')&&typeof _0x4d899e[_0x785f('0x1b')]===_0x785f('0x1a');var _0x1f2664=_0x5f23d6[_0x785f('0x1c')];var _0x41edec=_0x1aa62f?0x0:_0x4d899e[_0x785f('0x1d')];var _0x476511=_0x1aa62f?_0x5f23d6[_0x785f('0x1c')]:_0x4d899e[_0x785f('0x1d')]+_0x4d899e[_0x785f('0x1b')];var _0x43097b;if(_0x476511>=_0x1f2664){_0x476511=_0x1f2664;_0x43097b=0xc8;}else{_0x43097b=0xce;}_0x251ec3[_0x785f('0x18')](_0x43097b);return _0x251ec3['set']('Content-Range',_0x41edec+'-'+_0x476511+'/'+_0x1f2664)[_0x785f('0x19')](_0x5f23d6);}return null;};}function patchUpdates(_0x33c690){return function(_0x5c7060){try{jsonpatch['apply'](_0x5c7060,_0x33c690,!![]);}catch(_0x51aab3){return BPromise[_0x785f('0x1e')](_0x51aab3);}return _0x5c7060[_0x785f('0x1f')]();};}function saveUpdates(_0x15aaf5,_0x2a1a80){return function(_0x266a11){if(_0x266a11){return _0x266a11[_0x785f('0x20')](_0x15aaf5)[_0x785f('0x21')](function(_0x274f5b){return _0x274f5b;});}return null;};}function removeEntity(_0x3462bc,_0x4bd388){return function(_0x586cac){if(_0x586cac){return _0x586cac[_0x785f('0x22')]()[_0x785f('0x21')](function(){_0x3462bc['status'](0xcc)[_0x785f('0x23')]();});}};}function handleEntityNotFound(_0x9bbde4,_0x37ea50){return function(_0x3f9d19){if(!_0x3f9d19){_0x9bbde4['sendStatus'](0x194);}return _0x3f9d19;};}function handleError(_0x4e52ec,_0xcb3d0f){_0xcb3d0f=_0xcb3d0f||0x1f4;return function(_0x4f5816){logger[_0x785f('0x24')](_0x4f5816[_0x785f('0x25')]);if(_0x4f5816[_0x785f('0x26')]){delete _0x4f5816[_0x785f('0x26')];}_0x4e52ec[_0x785f('0x18')](_0xcb3d0f)[_0x785f('0x27')](_0x4f5816);};}exports[_0x785f('0x28')]=function(_0x194980,_0x432d57){var _0x1fa103={},_0x18f75c={},_0x5e198f={'count':0x0,'rows':[]};var _0x1159c9=_[_0x785f('0x29')](db[_0x785f('0x2a')][_0x785f('0x2b')],function(_0x2fb0cb){return{'name':_0x2fb0cb[_0x785f('0x2c')],'type':_0x2fb0cb[_0x785f('0x2d')]['key']};});_0x18f75c[_0x785f('0x2e')]=_[_0x785f('0x29')](_0x1159c9,'name');_0x18f75c[_0x785f('0x2f')]=_[_0x785f('0x30')](_0x194980['query']);_0x18f75c[_0x785f('0x31')]=_[_0x785f('0x32')](_0x18f75c[_0x785f('0x2e')],_0x18f75c[_0x785f('0x2f')]);_0x1fa103['attributes']=_[_0x785f('0x32')](_0x18f75c[_0x785f('0x2e')],qs[_0x785f('0x33')](_0x194980[_0x785f('0x2f')]['fields']));_0x1fa103[_0x785f('0x34')]=_0x1fa103[_0x785f('0x34')][_0x785f('0x35')]?_0x1fa103[_0x785f('0x34')]:_0x18f75c[_0x785f('0x2e')];if(!_0x194980[_0x785f('0x2f')][_0x785f('0x36')](_0x785f('0x37'))){_0x1fa103[_0x785f('0x1b')]=qs['limit'](_0x194980[_0x785f('0x2f')][_0x785f('0x1b')]);_0x1fa103[_0x785f('0x1d')]=qs[_0x785f('0x1d')](_0x194980[_0x785f('0x2f')][_0x785f('0x1d')]);}_0x1fa103['order']=qs[_0x785f('0x38')](_0x194980[_0x785f('0x2f')][_0x785f('0x38')]);_0x1fa103[_0x785f('0x39')]=qs[_0x785f('0x31')](_[_0x785f('0x3a')](_0x194980[_0x785f('0x2f')],_0x18f75c['filters']),_0x1159c9);if(_0x194980[_0x785f('0x2f')][_0x785f('0x3b')]){_0x1fa103[_0x785f('0x39')]=_['merge'](_0x1fa103[_0x785f('0x39')],{'$or':_['map'](_0x1159c9,function(_0x530469){if(_0x530469[_0x785f('0x2d')]!=='VIRTUAL'){var _0xbf1c80={};_0xbf1c80[_0x530469[_0x785f('0x26')]]={'$like':'%'+_0x194980[_0x785f('0x2f')]['filter']+'%'};return _0xbf1c80;}})});}_0x1fa103=_[_0x785f('0x3c')]({},_0x1fa103,_0x194980[_0x785f('0x3d')]);var _0xd115ed={'where':_0x1fa103['where']};return db[_0x785f('0x2a')][_0x785f('0x1c')](_0xd115ed)[_0x785f('0x21')](function(_0x836800){_0x5e198f[_0x785f('0x1c')]=_0x836800;if(_0x194980[_0x785f('0x2f')]['includeAll']){_0x1fa103[_0x785f('0x3e')]=[{'all':!![]}];}return db[_0x785f('0x2a')][_0x785f('0x3f')](_0x1fa103);})[_0x785f('0x21')](function(_0xb92d31){_0x5e198f['rows']=_0xb92d31;return _0x5e198f;})[_0x785f('0x21')](respondWithFilteredResult(_0x432d57,_0x1fa103))[_0x785f('0x40')](handleError(_0x432d57,null));};exports[_0x785f('0x41')]=function(_0x542fb2,_0x57dd09){var _0x25c44b={'raw':![],'where':{'id':_0x542fb2[_0x785f('0x42')]['id']}},_0x19d8bd={};_0x19d8bd[_0x785f('0x2e')]=_[_0x785f('0x30')](db['FreshsalesConfiguration'][_0x785f('0x2b')]);_0x19d8bd[_0x785f('0x2f')]=_[_0x785f('0x30')](_0x542fb2['query']);_0x19d8bd[_0x785f('0x31')]=_[_0x785f('0x32')](_0x19d8bd[_0x785f('0x2e')],_0x19d8bd[_0x785f('0x2f')]);_0x25c44b['attributes']=_['intersection'](_0x19d8bd['model'],qs[_0x785f('0x33')](_0x542fb2[_0x785f('0x2f')][_0x785f('0x33')]));_0x25c44b[_0x785f('0x34')]=_0x25c44b[_0x785f('0x34')][_0x785f('0x35')]?_0x25c44b[_0x785f('0x34')]:_0x19d8bd[_0x785f('0x2e')];if(_0x542fb2['query'][_0x785f('0x43')]){_0x25c44b[_0x785f('0x3e')]=[{'all':!![]}];}_0x25c44b=_[_0x785f('0x3c')]({},_0x25c44b,_0x542fb2['options']);return db[_0x785f('0x2a')]['find'](_0x25c44b)[_0x785f('0x21')](handleEntityNotFound(_0x57dd09,null))[_0x785f('0x21')](respondWithResult(_0x57dd09,null))[_0x785f('0x40')](handleError(_0x57dd09,null));};exports[_0x785f('0x44')]=function(_0x2876f9,_0x222d77){return db[_0x785f('0x2a')][_0x785f('0x44')](_0x2876f9['body'],{})[_0x785f('0x21')](respondWithResult(_0x222d77,0xc9))[_0x785f('0x40')](handleError(_0x222d77,null));};exports[_0x785f('0x20')]=function(_0xaf9783,_0x3b4476){if(_0xaf9783[_0x785f('0x45')]['id']){delete _0xaf9783['body']['id'];}return db['FreshsalesConfiguration'][_0x785f('0x46')]({'where':{'id':_0xaf9783[_0x785f('0x42')]['id']}})[_0x785f('0x21')](handleEntityNotFound(_0x3b4476,null))['then'](saveUpdates(_0xaf9783[_0x785f('0x45')],null))[_0x785f('0x21')](respondWithResult(_0x3b4476,null))[_0x785f('0x40')](handleError(_0x3b4476,null));};exports[_0x785f('0x22')]=function(_0x215456,_0xad0b5e){return db[_0x785f('0x2a')][_0x785f('0x46')]({'where':{'id':_0x215456[_0x785f('0x42')]['id']}})[_0x785f('0x21')](handleEntityNotFound(_0xad0b5e,null))[_0x785f('0x21')](removeEntity(_0xad0b5e,null))[_0x785f('0x40')](handleError(_0xad0b5e,null));};exports['getSubjects']=function(_0xfe2d50,_0x1a7ed8,_0x61a99c){var _0x5580a7={};var _0x5a0a3d={};var _0x58c7e5;var _0x410f29;return db[_0x785f('0x2a')][_0x785f('0x47')]({'where':{'id':_0xfe2d50[_0x785f('0x42')]['id']}})['then'](handleEntityNotFound(_0x1a7ed8,null))[_0x785f('0x21')](function(_0x379317){if(_0x379317){_0x58c7e5=_0x379317;_0x5a0a3d[_0x785f('0x2e')]=_['keys'](db[_0x785f('0x48')]['rawAttributes']);_0x5a0a3d[_0x785f('0x2f')]=_['keys'](_0xfe2d50[_0x785f('0x2f')]);_0x5a0a3d[_0x785f('0x31')]=_[_0x785f('0x32')](_0x5a0a3d[_0x785f('0x2e')],_0x5a0a3d[_0x785f('0x2f')]);_0x5580a7['attributes']=_[_0x785f('0x32')](_0x5a0a3d[_0x785f('0x2e')],qs[_0x785f('0x33')](_0xfe2d50[_0x785f('0x2f')][_0x785f('0x33')]));_0x5580a7[_0x785f('0x34')]=_0x5580a7[_0x785f('0x34')][_0x785f('0x35')]?_0x5580a7[_0x785f('0x34')]:_0x5a0a3d['model'];_0x5580a7['order']=qs[_0x785f('0x38')](_0xfe2d50[_0x785f('0x2f')][_0x785f('0x38')]);_0x5580a7[_0x785f('0x39')]=qs['filters'](_[_0x785f('0x3a')](_0xfe2d50[_0x785f('0x2f')],_0x5a0a3d[_0x785f('0x31')]));if(_0xfe2d50['query'][_0x785f('0x3b')]){_0x5580a7[_0x785f('0x39')]=_[_0x785f('0x3c')](_0x5580a7[_0x785f('0x39')],{'$or':_[_0x785f('0x29')](_0x5580a7['attributes'],function(_0x4baf62){var _0x43af34={};_0x43af34[_0x4baf62]={'$like':'%'+_0xfe2d50[_0x785f('0x2f')][_0x785f('0x3b')]+'%'};return _0x43af34;})});}_0x5580a7=_[_0x785f('0x3c')]({},_0x5580a7,_0xfe2d50['options']);return _0x58c7e5['getSubjects'](_0x5580a7);}})[_0x785f('0x21')](function(_0x710d72){if(_0x710d72){_0x410f29=_0x710d72[_0x785f('0x35')];if(!_0xfe2d50['query'][_0x785f('0x36')](_0x785f('0x37'))){_0x5580a7['limit']=qs['limit'](_0xfe2d50[_0x785f('0x2f')][_0x785f('0x1b')]);_0x5580a7[_0x785f('0x1d')]=qs[_0x785f('0x1d')](_0xfe2d50['query'][_0x785f('0x1d')]);}return _0x58c7e5[_0x785f('0x49')](_0x5580a7);}})['then'](function(_0x15c602){if(_0x15c602){return _0x15c602?{'count':_0x410f29,'rows':_0x15c602}:null;}})[_0x785f('0x21')](respondWithResult(_0x1a7ed8,null))['catch'](handleError(_0x1a7ed8,null));};exports[_0x785f('0x4a')]=function(_0x17027c,_0x11bd9a,_0x36f6a2){var _0x2a937e={};var _0x1049c0={};var _0x52239d;var _0x2d59e8;return db[_0x785f('0x2a')][_0x785f('0x47')]({'where':{'id':_0x17027c[_0x785f('0x42')]['id']}})[_0x785f('0x21')](handleEntityNotFound(_0x11bd9a,null))[_0x785f('0x21')](function(_0x30d051){if(_0x30d051){_0x52239d=_0x30d051;_0x1049c0[_0x785f('0x2e')]=_['keys'](db[_0x785f('0x48')][_0x785f('0x2b')]);_0x1049c0[_0x785f('0x2f')]=_[_0x785f('0x30')](_0x17027c['query']);_0x1049c0[_0x785f('0x31')]=_[_0x785f('0x32')](_0x1049c0[_0x785f('0x2e')],_0x1049c0[_0x785f('0x2f')]);_0x2a937e['attributes']=_['intersection'](_0x1049c0['model'],qs[_0x785f('0x33')](_0x17027c[_0x785f('0x2f')][_0x785f('0x33')]));_0x2a937e[_0x785f('0x34')]=_0x2a937e['attributes'][_0x785f('0x35')]?_0x2a937e[_0x785f('0x34')]:_0x1049c0['model'];_0x2a937e['order']=qs[_0x785f('0x38')](_0x17027c[_0x785f('0x2f')][_0x785f('0x38')]);_0x2a937e[_0x785f('0x39')]=qs[_0x785f('0x31')](_[_0x785f('0x3a')](_0x17027c[_0x785f('0x2f')],_0x1049c0[_0x785f('0x31')]));if(_0x17027c[_0x785f('0x2f')]['filter']){_0x2a937e[_0x785f('0x39')]=_[_0x785f('0x3c')](_0x2a937e[_0x785f('0x39')],{'$or':_['map'](_0x2a937e[_0x785f('0x34')],function(_0x27d9e0){var _0x22737a={};_0x22737a[_0x27d9e0]={'$like':'%'+_0x17027c[_0x785f('0x2f')][_0x785f('0x3b')]+'%'};return _0x22737a;})});}_0x2a937e=_[_0x785f('0x3c')]({},_0x2a937e,_0x17027c[_0x785f('0x3d')]);return _0x52239d[_0x785f('0x4a')](_0x2a937e);}})[_0x785f('0x21')](function(_0x39bce9){if(_0x39bce9){_0x2d59e8=_0x39bce9['length'];if(!_0x17027c[_0x785f('0x2f')]['hasOwnProperty']('nolimit')){_0x2a937e[_0x785f('0x1b')]=qs[_0x785f('0x1b')](_0x17027c[_0x785f('0x2f')]['limit']);_0x2a937e[_0x785f('0x1d')]=qs[_0x785f('0x1d')](_0x17027c[_0x785f('0x2f')][_0x785f('0x1d')]);}return _0x52239d[_0x785f('0x4a')](_0x2a937e);}})[_0x785f('0x21')](function(_0x2e0212){if(_0x2e0212){return _0x2e0212?{'count':_0x2d59e8,'rows':_0x2e0212}:null;}})[_0x785f('0x21')](respondWithResult(_0x11bd9a,null))['catch'](handleError(_0x11bd9a,null));};exports[_0x785f('0x4b')]=function(_0x34c339,_0x8929d7,_0x2d4f4a){var _0x5c153c={};var _0x59af62={};var _0x2013cd;var _0x2d0703;return db['FreshsalesConfiguration'][_0x785f('0x47')]({'where':{'id':_0x34c339[_0x785f('0x42')]['id']}})[_0x785f('0x21')](handleEntityNotFound(_0x8929d7,null))[_0x785f('0x21')](function(_0x579978){if(_0x579978){_0x2013cd=_0x579978;_0x59af62['model']=_[_0x785f('0x30')](db[_0x785f('0x48')]['rawAttributes']);_0x59af62[_0x785f('0x2f')]=_['keys'](_0x34c339[_0x785f('0x2f')]);_0x59af62[_0x785f('0x31')]=_[_0x785f('0x32')](_0x59af62[_0x785f('0x2e')],_0x59af62[_0x785f('0x2f')]);_0x5c153c[_0x785f('0x34')]=_[_0x785f('0x32')](_0x59af62[_0x785f('0x2e')],qs[_0x785f('0x33')](_0x34c339[_0x785f('0x2f')][_0x785f('0x33')]));_0x5c153c[_0x785f('0x34')]=_0x5c153c[_0x785f('0x34')][_0x785f('0x35')]?_0x5c153c['attributes']:_0x59af62[_0x785f('0x2e')];_0x5c153c['order']=qs[_0x785f('0x38')](_0x34c339[_0x785f('0x2f')]['sort']);_0x5c153c[_0x785f('0x39')]=qs[_0x785f('0x31')](_['pick'](_0x34c339[_0x785f('0x2f')],_0x59af62[_0x785f('0x31')]));if(_0x34c339[_0x785f('0x2f')][_0x785f('0x3b')]){_0x5c153c[_0x785f('0x39')]=_[_0x785f('0x3c')](_0x5c153c[_0x785f('0x39')],{'$or':_['map'](_0x5c153c[_0x785f('0x34')],function(_0x29300d){var _0x564205={};_0x564205[_0x29300d]={'$like':'%'+_0x34c339['query'][_0x785f('0x3b')]+'%'};return _0x564205;})});}_0x5c153c=_[_0x785f('0x3c')]({},_0x5c153c,_0x34c339[_0x785f('0x3d')]);return _0x2013cd['getFields'](_0x5c153c);}})['then'](function(_0xb8f6f0){if(_0xb8f6f0){_0x2d0703=_0xb8f6f0['length'];if(!_0x34c339['query'][_0x785f('0x36')](_0x785f('0x37'))){_0x5c153c['limit']=qs['limit'](_0x34c339[_0x785f('0x2f')][_0x785f('0x1b')]);_0x5c153c['offset']=qs['offset'](_0x34c339['query'][_0x785f('0x1d')]);}return _0x2013cd[_0x785f('0x4b')](_0x5c153c);}})[_0x785f('0x21')](function(_0x2fe3ac){if(_0x2fe3ac){return _0x2fe3ac?{'count':_0x2d0703,'rows':_0x2fe3ac}:null;}})[_0x785f('0x21')](respondWithResult(_0x8929d7,null))[_0x785f('0x40')](handleError(_0x8929d7,null));};