3d9961281fdb7404794f92d6567e1d63dff41fdd
[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 _0xd69e=['then','destroy','end','sendStatus','stack','name','send','map','FreshsalesConfiguration','rawAttributes','type','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','options','includeAll','include','findAll','rows','catch','show','params','length','merge','find','create','body','getSubjects','findOne','FreshsalesField','getDescriptions','getFields','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','jayson/promise','client','http','info','request\x20sent','debug','stringify','error','code','FreshsalesConfiguration,\x20%s,\x20%s','message','status','count','offset','limit','Content-Range','json','apply','reject','update'];(function(_0x1cfcc9,_0x26d912){var _0x5ab846=function(_0xd45a4e){while(--_0xd45a4e){_0x1cfcc9['push'](_0x1cfcc9['shift']());}};_0x5ab846(++_0x26d912);}(_0xd69e,0x13d));var _0xed69=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0xd69e[_0x4565bf];return _0x5610ba;};'use strict';var emlformat=require(_0xed69('0x0'));var rimraf=require(_0xed69('0x1'));var zipdir=require(_0xed69('0x2'));var jsonpatch=require(_0xed69('0x3'));var rp=require('request-promise');var moment=require(_0xed69('0x4'));var BPromise=require(_0xed69('0x5'));var Mustache=require(_0xed69('0x6'));var util=require('util');var path=require(_0xed69('0x7'));var sox=require(_0xed69('0x8'));var csv=require(_0xed69('0x9'));var ejs=require(_0xed69('0xa'));var fs=require('fs');var fs_extra=require(_0xed69('0xb'));var _=require(_0xed69('0xc'));var squel=require(_0xed69('0xd'));var crypto=require(_0xed69('0xe'));var jsforce=require(_0xed69('0xf'));var deskjs=require(_0xed69('0x10'));var toCsv=require(_0xed69('0x9'));var querystring=require(_0xed69('0x11'));var Papa=require('papaparse');var Redis=require(_0xed69('0x12'));var authService=require(_0xed69('0x13'));var qs=require(_0xed69('0x14'));var as=require(_0xed69('0x15'));var hardwareService=require(_0xed69('0x16'));var logger=require(_0xed69('0x17'))(_0xed69('0x18'));var utils=require(_0xed69('0x19'));var config=require(_0xed69('0x1a'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var jayson=require(_0xed69('0x1b'));var client=jayson[_0xed69('0x1c')][_0xed69('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x2e113b,_0x1f2beb,_0x4bb695,_0x1c7b09){return new BPromise(function(_0x20b3d8,_0x46dfd0){var _0x24cfa1=_0x1c7b09||client;return _0x24cfa1['request'](_0x2e113b,_0x4bb695)['then'](function(_0x3b92a4){logger[_0xed69('0x1e')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x1f2beb,_0xed69('0x1f'));logger[_0xed69('0x20')]('FreshsalesConfiguration,\x20%s,\x20%s,\x20%s',_0x1f2beb,_0xed69('0x1f'),JSON[_0xed69('0x21')](_0x3b92a4));if(_0x3b92a4[_0xed69('0x22')]){if(_0x3b92a4[_0xed69('0x22')][_0xed69('0x23')]===0x1f4){logger[_0xed69('0x22')](_0xed69('0x24'),_0x1f2beb,_0x3b92a4[_0xed69('0x22')][_0xed69('0x25')]);return _0x46dfd0(_0x3b92a4[_0xed69('0x22')][_0xed69('0x25')]);}logger['error'](_0xed69('0x24'),_0x1f2beb,_0x3b92a4['error']['message']);return _0x20b3d8(_0x3b92a4[_0xed69('0x22')]['message']);}else{logger[_0xed69('0x1e')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x1f2beb,_0xed69('0x1f'));_0x20b3d8(_0x3b92a4['result'][_0xed69('0x25')]);}})['catch'](function(_0x54d521){logger['error'](_0xed69('0x24'),_0x1f2beb,_0x54d521);_0x46dfd0(_0x54d521);});});}function respondWithStatusCode(_0x5ad0b0,_0x179535){_0x179535=_0x179535||0xcc;return function(_0x5f0f00){if(_0x5f0f00){return _0x5ad0b0['sendStatus'](_0x179535);}return _0x5ad0b0['status'](_0x179535)['end']();};}function respondWithResult(_0x39b836,_0x1b68a7){_0x1b68a7=_0x1b68a7||0xc8;return function(_0x175ebe){if(_0x175ebe){return _0x39b836[_0xed69('0x26')](_0x1b68a7)['json'](_0x175ebe);}};}function respondWithFilteredResult(_0xcb69f6,_0x50bad2){return function(_0x360e64){if(_0x360e64){var _0x16f8e0=_0x360e64[_0xed69('0x27')],_0xd00abb=_0x50bad2[_0xed69('0x28')],_0x54311e=_0x50bad2[_0xed69('0x28')]+_0x50bad2[_0xed69('0x29')],_0x264045;if(_0x54311e>=_0x16f8e0){_0x54311e=_0x16f8e0;_0x264045=0xc8;}else{_0x264045=0xce;}_0xcb69f6[_0xed69('0x26')](_0x264045);return _0xcb69f6['set'](_0xed69('0x2a'),_0xd00abb+'-'+_0x54311e+'/'+_0x16f8e0)[_0xed69('0x2b')](_0x360e64);}return null;};}function patchUpdates(_0x2e058d){return function(_0x19921a){try{jsonpatch[_0xed69('0x2c')](_0x19921a,_0x2e058d,!![]);}catch(_0x62bfaa){return BPromise[_0xed69('0x2d')](_0x62bfaa);}return _0x19921a['save']();};}function saveUpdates(_0x4c500a,_0x102426){return function(_0xcf0620){if(_0xcf0620){return _0xcf0620[_0xed69('0x2e')](_0x4c500a)[_0xed69('0x2f')](function(_0x13c04f){return _0x13c04f;});}return null;};}function removeEntity(_0x30fd9d,_0x5758aa){return function(_0x34d8b1){if(_0x34d8b1){return _0x34d8b1[_0xed69('0x30')]()[_0xed69('0x2f')](function(){_0x30fd9d[_0xed69('0x26')](0xcc)[_0xed69('0x31')]();});}};}function handleEntityNotFound(_0x44f325,_0x81a6ca){return function(_0x327e5f){if(!_0x327e5f){_0x44f325[_0xed69('0x32')](0x194);}return _0x327e5f;};}function handleError(_0x59b38c,_0x4ad093){_0x4ad093=_0x4ad093||0x1f4;return function(_0x41a1a7){logger['error'](_0x41a1a7[_0xed69('0x33')]);if(_0x41a1a7[_0xed69('0x34')]){delete _0x41a1a7['name'];}_0x59b38c[_0xed69('0x26')](_0x4ad093)[_0xed69('0x35')](_0x41a1a7);};}exports['index']=function(_0x38ae52,_0x2b7e9e){var _0x5a38ac={},_0x3d80da={},_0x315a2b={'count':0x0,'rows':[]};var _0x5bd6b1=_[_0xed69('0x36')](db[_0xed69('0x37')][_0xed69('0x38')],function(_0x39eb16){return{'name':_0x39eb16['fieldName'],'type':_0x39eb16[_0xed69('0x39')][_0xed69('0x3a')]};});_0x3d80da[_0xed69('0x3b')]=_['map'](_0x5bd6b1,_0xed69('0x34'));_0x3d80da[_0xed69('0x3c')]=_[_0xed69('0x3d')](_0x38ae52[_0xed69('0x3c')]);_0x3d80da['filters']=_[_0xed69('0x3e')](_0x3d80da['model'],_0x3d80da['query']);_0x5a38ac['attributes']=_[_0xed69('0x3e')](_0x3d80da['model'],qs[_0xed69('0x3f')](_0x38ae52[_0xed69('0x3c')]['fields']));_0x5a38ac[_0xed69('0x40')]=_0x5a38ac['attributes']['length']?_0x5a38ac[_0xed69('0x40')]:_0x3d80da[_0xed69('0x3b')];if(!_0x38ae52[_0xed69('0x3c')][_0xed69('0x41')](_0xed69('0x42'))){_0x5a38ac[_0xed69('0x29')]=qs[_0xed69('0x29')](_0x38ae52[_0xed69('0x3c')][_0xed69('0x29')]);_0x5a38ac['offset']=qs[_0xed69('0x28')](_0x38ae52[_0xed69('0x3c')][_0xed69('0x28')]);}_0x5a38ac[_0xed69('0x43')]=qs['sort'](_0x38ae52['query'][_0xed69('0x44')]);_0x5a38ac[_0xed69('0x45')]=qs[_0xed69('0x46')](_[_0xed69('0x47')](_0x38ae52[_0xed69('0x3c')],_0x3d80da[_0xed69('0x46')]),_0x5bd6b1);if(_0x38ae52[_0xed69('0x3c')][_0xed69('0x48')]){_0x5a38ac[_0xed69('0x45')]=_['merge'](_0x5a38ac['where'],{'$or':_[_0xed69('0x36')](_0x5bd6b1,function(_0x28e194){if(_0x28e194[_0xed69('0x39')]!=='VIRTUAL'){var _0x55b57d={};_0x55b57d[_0x28e194[_0xed69('0x34')]]={'$like':'%'+_0x38ae52[_0xed69('0x3c')][_0xed69('0x48')]+'%'};return _0x55b57d;}})});}_0x5a38ac=_['merge']({},_0x5a38ac,_0x38ae52[_0xed69('0x49')]);var _0x2ab1a7={'where':_0x5a38ac[_0xed69('0x45')]};return db['FreshsalesConfiguration'][_0xed69('0x27')](_0x2ab1a7)['then'](function(_0x92d4f5){_0x315a2b[_0xed69('0x27')]=_0x92d4f5;if(_0x38ae52[_0xed69('0x3c')][_0xed69('0x4a')]){_0x5a38ac[_0xed69('0x4b')]=[{'all':!![]}];}return db['FreshsalesConfiguration'][_0xed69('0x4c')](_0x5a38ac);})[_0xed69('0x2f')](function(_0x4d1877){_0x315a2b[_0xed69('0x4d')]=_0x4d1877;return _0x315a2b;})['then'](respondWithFilteredResult(_0x2b7e9e,_0x5a38ac))[_0xed69('0x4e')](handleError(_0x2b7e9e,null));};exports[_0xed69('0x4f')]=function(_0x1e3a24,_0x127f67){var _0x1f6810={'raw':![],'where':{'id':_0x1e3a24[_0xed69('0x50')]['id']}},_0x30e7ab={};_0x30e7ab[_0xed69('0x3b')]=_[_0xed69('0x3d')](db['FreshsalesConfiguration'][_0xed69('0x38')]);_0x30e7ab[_0xed69('0x3c')]=_[_0xed69('0x3d')](_0x1e3a24[_0xed69('0x3c')]);_0x30e7ab['filters']=_[_0xed69('0x3e')](_0x30e7ab[_0xed69('0x3b')],_0x30e7ab[_0xed69('0x3c')]);_0x1f6810[_0xed69('0x40')]=_['intersection'](_0x30e7ab[_0xed69('0x3b')],qs[_0xed69('0x3f')](_0x1e3a24[_0xed69('0x3c')]['fields']));_0x1f6810[_0xed69('0x40')]=_0x1f6810['attributes'][_0xed69('0x51')]?_0x1f6810[_0xed69('0x40')]:_0x30e7ab[_0xed69('0x3b')];if(_0x1e3a24['query']['includeAll']){_0x1f6810[_0xed69('0x4b')]=[{'all':!![]}];}_0x1f6810=_[_0xed69('0x52')]({},_0x1f6810,_0x1e3a24[_0xed69('0x49')]);return db[_0xed69('0x37')][_0xed69('0x53')](_0x1f6810)[_0xed69('0x2f')](handleEntityNotFound(_0x127f67,null))[_0xed69('0x2f')](respondWithResult(_0x127f67,null))[_0xed69('0x4e')](handleError(_0x127f67,null));};exports[_0xed69('0x54')]=function(_0x3dbbeb,_0x385b96){return db[_0xed69('0x37')][_0xed69('0x54')](_0x3dbbeb[_0xed69('0x55')],{})[_0xed69('0x2f')](respondWithResult(_0x385b96,0xc9))['catch'](handleError(_0x385b96,null));};exports['update']=function(_0x1c866a,_0x2ddf38){if(_0x1c866a['body']['id']){delete _0x1c866a['body']['id'];}return db[_0xed69('0x37')][_0xed69('0x53')]({'where':{'id':_0x1c866a[_0xed69('0x50')]['id']}})[_0xed69('0x2f')](handleEntityNotFound(_0x2ddf38,null))[_0xed69('0x2f')](saveUpdates(_0x1c866a[_0xed69('0x55')],null))[_0xed69('0x2f')](respondWithResult(_0x2ddf38,null))[_0xed69('0x4e')](handleError(_0x2ddf38,null));};exports[_0xed69('0x30')]=function(_0x265e97,_0x3afb0c){return db[_0xed69('0x37')]['find']({'where':{'id':_0x265e97[_0xed69('0x50')]['id']}})[_0xed69('0x2f')](handleEntityNotFound(_0x3afb0c,null))['then'](removeEntity(_0x3afb0c,null))[_0xed69('0x4e')](handleError(_0x3afb0c,null));};exports[_0xed69('0x56')]=function(_0x5bf3d6,_0x3a1d83,_0x127f9f){var _0x1d8c2a={};var _0x1173b5={};var _0x30407d;var _0x5912d0;return db[_0xed69('0x37')][_0xed69('0x57')]({'where':{'id':_0x5bf3d6[_0xed69('0x50')]['id']}})[_0xed69('0x2f')](handleEntityNotFound(_0x3a1d83,null))['then'](function(_0x1ca183){if(_0x1ca183){_0x30407d=_0x1ca183;_0x1173b5[_0xed69('0x3b')]=_[_0xed69('0x3d')](db[_0xed69('0x58')][_0xed69('0x38')]);_0x1173b5['query']=_[_0xed69('0x3d')](_0x5bf3d6[_0xed69('0x3c')]);_0x1173b5['filters']=_[_0xed69('0x3e')](_0x1173b5['model'],_0x1173b5['query']);_0x1d8c2a[_0xed69('0x40')]=_[_0xed69('0x3e')](_0x1173b5[_0xed69('0x3b')],qs[_0xed69('0x3f')](_0x5bf3d6[_0xed69('0x3c')][_0xed69('0x3f')]));_0x1d8c2a[_0xed69('0x40')]=_0x1d8c2a[_0xed69('0x40')]['length']?_0x1d8c2a[_0xed69('0x40')]:_0x1173b5[_0xed69('0x3b')];_0x1d8c2a[_0xed69('0x43')]=qs['sort'](_0x5bf3d6[_0xed69('0x3c')]['sort']);_0x1d8c2a[_0xed69('0x45')]=qs[_0xed69('0x46')](_[_0xed69('0x47')](_0x5bf3d6[_0xed69('0x3c')],_0x1173b5[_0xed69('0x46')]));if(_0x5bf3d6['query']['filter']){_0x1d8c2a[_0xed69('0x45')]=_['merge'](_0x1d8c2a[_0xed69('0x45')],{'$or':_['map'](_0x1d8c2a[_0xed69('0x40')],function(_0x3eb77a){var _0x5b7715={};_0x5b7715[_0x3eb77a]={'$like':'%'+_0x5bf3d6['query'][_0xed69('0x48')]+'%'};return _0x5b7715;})});}_0x1d8c2a=_[_0xed69('0x52')]({},_0x1d8c2a,_0x5bf3d6[_0xed69('0x49')]);return _0x30407d[_0xed69('0x56')](_0x1d8c2a);}})[_0xed69('0x2f')](function(_0x1a0379){if(_0x1a0379){_0x5912d0=_0x1a0379['length'];if(!_0x5bf3d6[_0xed69('0x3c')][_0xed69('0x41')](_0xed69('0x42'))){_0x1d8c2a['limit']=qs['limit'](_0x5bf3d6[_0xed69('0x3c')][_0xed69('0x29')]);_0x1d8c2a['offset']=qs[_0xed69('0x28')](_0x5bf3d6[_0xed69('0x3c')][_0xed69('0x28')]);}return _0x30407d[_0xed69('0x56')](_0x1d8c2a);}})['then'](function(_0xa18d8a){if(_0xa18d8a){return _0xa18d8a?{'count':_0x5912d0,'rows':_0xa18d8a}:null;}})[_0xed69('0x2f')](respondWithResult(_0x3a1d83,null))[_0xed69('0x4e')](handleError(_0x3a1d83,null));};exports['getDescriptions']=function(_0x57065c,_0x23c7c3,_0x104077){var _0x4e4f69={};var _0x3b73f3={};var _0x4f052c;var _0x2204f2;return db[_0xed69('0x37')][_0xed69('0x57')]({'where':{'id':_0x57065c[_0xed69('0x50')]['id']}})[_0xed69('0x2f')](handleEntityNotFound(_0x23c7c3,null))[_0xed69('0x2f')](function(_0x365181){if(_0x365181){_0x4f052c=_0x365181;_0x3b73f3[_0xed69('0x3b')]=_[_0xed69('0x3d')](db['FreshsalesField'][_0xed69('0x38')]);_0x3b73f3[_0xed69('0x3c')]=_[_0xed69('0x3d')](_0x57065c[_0xed69('0x3c')]);_0x3b73f3[_0xed69('0x46')]=_[_0xed69('0x3e')](_0x3b73f3[_0xed69('0x3b')],_0x3b73f3[_0xed69('0x3c')]);_0x4e4f69['attributes']=_[_0xed69('0x3e')](_0x3b73f3[_0xed69('0x3b')],qs[_0xed69('0x3f')](_0x57065c[_0xed69('0x3c')]['fields']));_0x4e4f69[_0xed69('0x40')]=_0x4e4f69[_0xed69('0x40')][_0xed69('0x51')]?_0x4e4f69[_0xed69('0x40')]:_0x3b73f3[_0xed69('0x3b')];_0x4e4f69[_0xed69('0x43')]=qs[_0xed69('0x44')](_0x57065c[_0xed69('0x3c')]['sort']);_0x4e4f69[_0xed69('0x45')]=qs[_0xed69('0x46')](_[_0xed69('0x47')](_0x57065c[_0xed69('0x3c')],_0x3b73f3[_0xed69('0x46')]));if(_0x57065c[_0xed69('0x3c')][_0xed69('0x48')]){_0x4e4f69[_0xed69('0x45')]=_[_0xed69('0x52')](_0x4e4f69[_0xed69('0x45')],{'$or':_[_0xed69('0x36')](_0x4e4f69[_0xed69('0x40')],function(_0x118c58){var _0x8480bb={};_0x8480bb[_0x118c58]={'$like':'%'+_0x57065c[_0xed69('0x3c')]['filter']+'%'};return _0x8480bb;})});}_0x4e4f69=_['merge']({},_0x4e4f69,_0x57065c['options']);return _0x4f052c[_0xed69('0x59')](_0x4e4f69);}})[_0xed69('0x2f')](function(_0x53cf32){if(_0x53cf32){_0x2204f2=_0x53cf32[_0xed69('0x51')];if(!_0x57065c[_0xed69('0x3c')]['hasOwnProperty'](_0xed69('0x42'))){_0x4e4f69[_0xed69('0x29')]=qs[_0xed69('0x29')](_0x57065c[_0xed69('0x3c')][_0xed69('0x29')]);_0x4e4f69[_0xed69('0x28')]=qs[_0xed69('0x28')](_0x57065c[_0xed69('0x3c')][_0xed69('0x28')]);}return _0x4f052c['getDescriptions'](_0x4e4f69);}})[_0xed69('0x2f')](function(_0x51e189){if(_0x51e189){return _0x51e189?{'count':_0x2204f2,'rows':_0x51e189}:null;}})[_0xed69('0x2f')](respondWithResult(_0x23c7c3,null))[_0xed69('0x4e')](handleError(_0x23c7c3,null));};exports[_0xed69('0x5a')]=function(_0x543251,_0x21fe7,_0x33363b){var _0x2f39c5={};var _0x5d9144={};var _0x42a3c9;var _0x3156f1;return db[_0xed69('0x37')][_0xed69('0x57')]({'where':{'id':_0x543251[_0xed69('0x50')]['id']}})[_0xed69('0x2f')](handleEntityNotFound(_0x21fe7,null))[_0xed69('0x2f')](function(_0x1da59c){if(_0x1da59c){_0x42a3c9=_0x1da59c;_0x5d9144[_0xed69('0x3b')]=_[_0xed69('0x3d')](db[_0xed69('0x58')][_0xed69('0x38')]);_0x5d9144['query']=_[_0xed69('0x3d')](_0x543251[_0xed69('0x3c')]);_0x5d9144['filters']=_[_0xed69('0x3e')](_0x5d9144[_0xed69('0x3b')],_0x5d9144[_0xed69('0x3c')]);_0x2f39c5[_0xed69('0x40')]=_[_0xed69('0x3e')](_0x5d9144['model'],qs['fields'](_0x543251[_0xed69('0x3c')][_0xed69('0x3f')]));_0x2f39c5[_0xed69('0x40')]=_0x2f39c5[_0xed69('0x40')][_0xed69('0x51')]?_0x2f39c5['attributes']:_0x5d9144['model'];_0x2f39c5[_0xed69('0x43')]=qs['sort'](_0x543251['query'][_0xed69('0x44')]);_0x2f39c5['where']=qs['filters'](_['pick'](_0x543251[_0xed69('0x3c')],_0x5d9144[_0xed69('0x46')]));if(_0x543251[_0xed69('0x3c')][_0xed69('0x48')]){_0x2f39c5['where']=_[_0xed69('0x52')](_0x2f39c5[_0xed69('0x45')],{'$or':_[_0xed69('0x36')](_0x2f39c5[_0xed69('0x40')],function(_0x425236){var _0x22917e={};_0x22917e[_0x425236]={'$like':'%'+_0x543251[_0xed69('0x3c')][_0xed69('0x48')]+'%'};return _0x22917e;})});}_0x2f39c5=_[_0xed69('0x52')]({},_0x2f39c5,_0x543251[_0xed69('0x49')]);return _0x42a3c9[_0xed69('0x5a')](_0x2f39c5);}})[_0xed69('0x2f')](function(_0x137450){if(_0x137450){_0x3156f1=_0x137450[_0xed69('0x51')];if(!_0x543251[_0xed69('0x3c')][_0xed69('0x41')]('nolimit')){_0x2f39c5[_0xed69('0x29')]=qs[_0xed69('0x29')](_0x543251[_0xed69('0x3c')][_0xed69('0x29')]);_0x2f39c5[_0xed69('0x28')]=qs['offset'](_0x543251['query'][_0xed69('0x28')]);}return _0x42a3c9[_0xed69('0x5a')](_0x2f39c5);}})[_0xed69('0x2f')](function(_0x494bb1){if(_0x494bb1){return _0x494bb1?{'count':_0x3156f1,'rows':_0x494bb1}:null;}})[_0xed69('0x2f')](respondWithResult(_0x21fe7,null))[_0xed69('0x4e')](handleError(_0x21fe7,null));};