732170b4aec2dbcfef7666ba7b077e03c72f347d
[motion2.git] / server / api / intVtigerConfiguration / intVtigerConfiguration.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 _0x4134=['map','VtigerConfiguration','rawAttributes','fieldName','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','where','pick','filter','merge','type','VIRTUAL','includeAll','findAll','rows','catch','show','params','keys','length','options','create','body','find','destroy','findOne','VtigerField','sort','getFields','getSubjects','order','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','undefined','limit','count','offset','Content-Range','apply','update','then','error','name','index'];(function(_0x43f6d2,_0x11b4e9){var _0xaef57=function(_0x14f35f){while(--_0x14f35f){_0x43f6d2['push'](_0x43f6d2['shift']());}};_0xaef57(++_0x11b4e9);}(_0x4134,0x1ac));var _0x4413=function(_0x2828bd,_0x3f793b){_0x2828bd=_0x2828bd-0x0;var _0x4cd7c2=_0x4134[_0x2828bd];return _0x4cd7c2;};'use strict';var emlformat=require(_0x4413('0x0'));var rimraf=require(_0x4413('0x1'));var zipdir=require(_0x4413('0x2'));var jsonpatch=require(_0x4413('0x3'));var rp=require('request-promise');var moment=require(_0x4413('0x4'));var BPromise=require(_0x4413('0x5'));var Mustache=require(_0x4413('0x6'));var util=require('util');var path=require(_0x4413('0x7'));var sox=require(_0x4413('0x8'));var csv=require(_0x4413('0x9'));var ejs=require(_0x4413('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4413('0xb'));var squel=require(_0x4413('0xc'));var crypto=require(_0x4413('0xd'));var jsforce=require(_0x4413('0xe'));var deskjs=require(_0x4413('0xf'));var toCsv=require(_0x4413('0x9'));var querystring=require(_0x4413('0x10'));var Papa=require(_0x4413('0x11'));var Redis=require('ioredis');var authService=require(_0x4413('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x4413('0x13'));var hardwareService=require(_0x4413('0x14'));var logger=require(_0x4413('0x15'))(_0x4413('0x16'));var utils=require(_0x4413('0x17'));var config=require(_0x4413('0x18'));var licenseUtil=require(_0x4413('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x39fa2e,_0x3b9a1b){_0x3b9a1b=_0x3b9a1b||0xcc;return function(_0x17aefd){if(_0x17aefd){return _0x39fa2e[_0x4413('0x1a')](_0x3b9a1b);}return _0x39fa2e[_0x4413('0x1b')](_0x3b9a1b)['end']();};}function respondWithResult(_0x278e65,_0x1364cb){_0x1364cb=_0x1364cb||0xc8;return function(_0x4d6ae2){if(_0x4d6ae2){return _0x278e65['status'](_0x1364cb)[_0x4413('0x1c')](_0x4d6ae2);}};}function respondWithFilteredResult(_0x3e3ace,_0x579025){return function(_0x2f6e90){if(_0x2f6e90){var _0x49a697=typeof _0x579025['offset']===_0x4413('0x1d')&&typeof _0x579025[_0x4413('0x1e')]===_0x4413('0x1d');var _0x28f869=_0x2f6e90[_0x4413('0x1f')];var _0x537334=_0x49a697?0x0:_0x579025[_0x4413('0x20')];var _0x31b0b0=_0x49a697?_0x2f6e90[_0x4413('0x1f')]:_0x579025[_0x4413('0x20')]+_0x579025['limit'];var _0x1c13b1;if(_0x31b0b0>=_0x28f869){_0x31b0b0=_0x28f869;_0x1c13b1=0xc8;}else{_0x1c13b1=0xce;}_0x3e3ace['status'](_0x1c13b1);return _0x3e3ace['set'](_0x4413('0x21'),_0x537334+'-'+_0x31b0b0+'/'+_0x28f869)[_0x4413('0x1c')](_0x2f6e90);}return null;};}function patchUpdates(_0x17fad3){return function(_0x2c40b0){try{jsonpatch[_0x4413('0x22')](_0x2c40b0,_0x17fad3,!![]);}catch(_0x596aae){return BPromise['reject'](_0x596aae);}return _0x2c40b0['save']();};}function saveUpdates(_0x23d4cd,_0x448d1d){return function(_0xa3a122){if(_0xa3a122){return _0xa3a122[_0x4413('0x23')](_0x23d4cd)[_0x4413('0x24')](function(_0x48a008){return _0x48a008;});}return null;};}function removeEntity(_0x4ca63b,_0x31b221){return function(_0x39e9a4){if(_0x39e9a4){return _0x39e9a4['destroy']()[_0x4413('0x24')](function(){_0x4ca63b['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3d304f,_0xc95a5e){return function(_0x547157){if(!_0x547157){_0x3d304f[_0x4413('0x1a')](0x194);}return _0x547157;};}function handleError(_0x54aa5e,_0xd487b0){_0xd487b0=_0xd487b0||0x1f4;return function(_0x3f4799){logger[_0x4413('0x25')](_0x3f4799['stack']);if(_0x3f4799[_0x4413('0x26')]){delete _0x3f4799[_0x4413('0x26')];}_0x54aa5e[_0x4413('0x1b')](_0xd487b0)['send'](_0x3f4799);};}exports[_0x4413('0x27')]=function(_0x3be7b1,_0x5eb34e){var _0x1092ea={},_0x4a314e={},_0x3a456d={'count':0x0,'rows':[]};var _0x1de24a=_[_0x4413('0x28')](db[_0x4413('0x29')][_0x4413('0x2a')],function(_0x5affd4){return{'name':_0x5affd4[_0x4413('0x2b')],'type':_0x5affd4['type']['key']};});_0x4a314e[_0x4413('0x2c')]=_['map'](_0x1de24a,'name');_0x4a314e[_0x4413('0x2d')]=_['keys'](_0x3be7b1[_0x4413('0x2d')]);_0x4a314e[_0x4413('0x2e')]=_[_0x4413('0x2f')](_0x4a314e[_0x4413('0x2c')],_0x4a314e[_0x4413('0x2d')]);_0x1092ea[_0x4413('0x30')]=_[_0x4413('0x2f')](_0x4a314e['model'],qs[_0x4413('0x31')](_0x3be7b1[_0x4413('0x2d')][_0x4413('0x31')]));_0x1092ea[_0x4413('0x30')]=_0x1092ea[_0x4413('0x30')]['length']?_0x1092ea['attributes']:_0x4a314e[_0x4413('0x2c')];if(!_0x3be7b1['query'][_0x4413('0x32')](_0x4413('0x33'))){_0x1092ea['limit']=qs[_0x4413('0x1e')](_0x3be7b1[_0x4413('0x2d')][_0x4413('0x1e')]);_0x1092ea['offset']=qs[_0x4413('0x20')](_0x3be7b1[_0x4413('0x2d')]['offset']);}_0x1092ea['order']=qs['sort'](_0x3be7b1[_0x4413('0x2d')]['sort']);_0x1092ea[_0x4413('0x34')]=qs[_0x4413('0x2e')](_[_0x4413('0x35')](_0x3be7b1['query'],_0x4a314e[_0x4413('0x2e')]),_0x1de24a);if(_0x3be7b1[_0x4413('0x2d')][_0x4413('0x36')]){_0x1092ea[_0x4413('0x34')]=_[_0x4413('0x37')](_0x1092ea[_0x4413('0x34')],{'$or':_[_0x4413('0x28')](_0x1de24a,function(_0x26cc9b){if(_0x26cc9b[_0x4413('0x38')]!==_0x4413('0x39')){var _0x9e791a={};_0x9e791a[_0x26cc9b[_0x4413('0x26')]]={'$like':'%'+_0x3be7b1['query'][_0x4413('0x36')]+'%'};return _0x9e791a;}})});}_0x1092ea=_['merge']({},_0x1092ea,_0x3be7b1['options']);var _0x4242e1={'where':_0x1092ea[_0x4413('0x34')]};return db['VtigerConfiguration'][_0x4413('0x1f')](_0x4242e1)[_0x4413('0x24')](function(_0x4e267f){_0x3a456d[_0x4413('0x1f')]=_0x4e267f;if(_0x3be7b1['query'][_0x4413('0x3a')]){_0x1092ea['include']=[{'all':!![]}];}return db[_0x4413('0x29')][_0x4413('0x3b')](_0x1092ea);})[_0x4413('0x24')](function(_0x271052){_0x3a456d[_0x4413('0x3c')]=_0x271052;return _0x3a456d;})[_0x4413('0x24')](respondWithFilteredResult(_0x5eb34e,_0x1092ea))[_0x4413('0x3d')](handleError(_0x5eb34e,null));};exports[_0x4413('0x3e')]=function(_0x41917a,_0x3b029b){var _0x53781c={'raw':![],'where':{'id':_0x41917a[_0x4413('0x3f')]['id']}},_0x4943f5={};_0x4943f5[_0x4413('0x2c')]=_['keys'](db[_0x4413('0x29')][_0x4413('0x2a')]);_0x4943f5[_0x4413('0x2d')]=_[_0x4413('0x40')](_0x41917a[_0x4413('0x2d')]);_0x4943f5[_0x4413('0x2e')]=_[_0x4413('0x2f')](_0x4943f5[_0x4413('0x2c')],_0x4943f5[_0x4413('0x2d')]);_0x53781c[_0x4413('0x30')]=_[_0x4413('0x2f')](_0x4943f5['model'],qs[_0x4413('0x31')](_0x41917a['query']['fields']));_0x53781c[_0x4413('0x30')]=_0x53781c['attributes'][_0x4413('0x41')]?_0x53781c[_0x4413('0x30')]:_0x4943f5[_0x4413('0x2c')];if(_0x41917a[_0x4413('0x2d')][_0x4413('0x3a')]){_0x53781c['include']=[{'all':!![]}];}_0x53781c=_[_0x4413('0x37')]({},_0x53781c,_0x41917a[_0x4413('0x42')]);return db['VtigerConfiguration']['find'](_0x53781c)['then'](handleEntityNotFound(_0x3b029b,null))[_0x4413('0x24')](respondWithResult(_0x3b029b,null))[_0x4413('0x3d')](handleError(_0x3b029b,null));};exports[_0x4413('0x43')]=function(_0x2ceffc,_0x5211ee){return db['VtigerConfiguration'][_0x4413('0x43')](_0x2ceffc['body'],{})[_0x4413('0x24')](respondWithResult(_0x5211ee,0xc9))[_0x4413('0x3d')](handleError(_0x5211ee,null));};exports[_0x4413('0x23')]=function(_0x21bdd1,_0x4c6059){if(_0x21bdd1['body']['id']){delete _0x21bdd1[_0x4413('0x44')]['id'];}return db[_0x4413('0x29')][_0x4413('0x45')]({'where':{'id':_0x21bdd1[_0x4413('0x3f')]['id']}})[_0x4413('0x24')](handleEntityNotFound(_0x4c6059,null))[_0x4413('0x24')](saveUpdates(_0x21bdd1['body'],null))[_0x4413('0x24')](respondWithResult(_0x4c6059,null))[_0x4413('0x3d')](handleError(_0x4c6059,null));};exports[_0x4413('0x46')]=function(_0x541b7c,_0x1e474e){return db['VtigerConfiguration']['find']({'where':{'id':_0x541b7c['params']['id']}})[_0x4413('0x24')](handleEntityNotFound(_0x1e474e,null))[_0x4413('0x24')](removeEntity(_0x1e474e,null))[_0x4413('0x3d')](handleError(_0x1e474e,null));};exports['getFields']=function(_0x43aa9e,_0x421465,_0x19aea1){var _0x404516={};var _0x38a58a={};var _0x34624a;var _0x273c08;return db[_0x4413('0x29')][_0x4413('0x47')]({'where':{'id':_0x43aa9e[_0x4413('0x3f')]['id']}})[_0x4413('0x24')](handleEntityNotFound(_0x421465,null))['then'](function(_0x2e7385){if(_0x2e7385){_0x34624a=_0x2e7385;_0x38a58a[_0x4413('0x2c')]=_[_0x4413('0x40')](db[_0x4413('0x48')][_0x4413('0x2a')]);_0x38a58a[_0x4413('0x2d')]=_[_0x4413('0x40')](_0x43aa9e[_0x4413('0x2d')]);_0x38a58a['filters']=_['intersection'](_0x38a58a[_0x4413('0x2c')],_0x38a58a[_0x4413('0x2d')]);_0x404516['attributes']=_['intersection'](_0x38a58a[_0x4413('0x2c')],qs['fields'](_0x43aa9e[_0x4413('0x2d')][_0x4413('0x31')]));_0x404516['attributes']=_0x404516[_0x4413('0x30')][_0x4413('0x41')]?_0x404516[_0x4413('0x30')]:_0x38a58a[_0x4413('0x2c')];_0x404516['order']=qs['sort'](_0x43aa9e[_0x4413('0x2d')][_0x4413('0x49')]);_0x404516[_0x4413('0x34')]=qs[_0x4413('0x2e')](_[_0x4413('0x35')](_0x43aa9e[_0x4413('0x2d')],_0x38a58a['filters']));if(_0x43aa9e[_0x4413('0x2d')][_0x4413('0x36')]){_0x404516[_0x4413('0x34')]=_[_0x4413('0x37')](_0x404516[_0x4413('0x34')],{'$or':_[_0x4413('0x28')](_0x404516['attributes'],function(_0x3b3ab9){var _0x3d4df6={};_0x3d4df6[_0x3b3ab9]={'$like':'%'+_0x43aa9e['query'][_0x4413('0x36')]+'%'};return _0x3d4df6;})});}_0x404516=_[_0x4413('0x37')]({},_0x404516,_0x43aa9e[_0x4413('0x42')]);return _0x34624a[_0x4413('0x4a')](_0x404516);}})[_0x4413('0x24')](function(_0x36372a){if(_0x36372a){_0x273c08=_0x36372a[_0x4413('0x41')];if(!_0x43aa9e['query'][_0x4413('0x32')](_0x4413('0x33'))){_0x404516[_0x4413('0x1e')]=qs[_0x4413('0x1e')](_0x43aa9e['query'][_0x4413('0x1e')]);_0x404516[_0x4413('0x20')]=qs['offset'](_0x43aa9e[_0x4413('0x2d')][_0x4413('0x20')]);}return _0x34624a[_0x4413('0x4a')](_0x404516);}})['then'](function(_0x4df3f2){if(_0x4df3f2){return _0x4df3f2?{'count':_0x273c08,'rows':_0x4df3f2}:null;}})['then'](respondWithResult(_0x421465,null))[_0x4413('0x3d')](handleError(_0x421465,null));};exports[_0x4413('0x4b')]=function(_0x13dd4b,_0x487375,_0x407be3){var _0x14e8ff={};var _0x1d9887={};var _0x3b833a;var _0x3fb719;return db[_0x4413('0x29')]['findOne']({'where':{'id':_0x13dd4b[_0x4413('0x3f')]['id']}})[_0x4413('0x24')](handleEntityNotFound(_0x487375,null))[_0x4413('0x24')](function(_0x24e642){if(_0x24e642){_0x3b833a=_0x24e642;_0x1d9887[_0x4413('0x2c')]=_[_0x4413('0x40')](db[_0x4413('0x48')]['rawAttributes']);_0x1d9887[_0x4413('0x2d')]=_[_0x4413('0x40')](_0x13dd4b[_0x4413('0x2d')]);_0x1d9887['filters']=_[_0x4413('0x2f')](_0x1d9887[_0x4413('0x2c')],_0x1d9887[_0x4413('0x2d')]);_0x14e8ff[_0x4413('0x30')]=_[_0x4413('0x2f')](_0x1d9887[_0x4413('0x2c')],qs[_0x4413('0x31')](_0x13dd4b[_0x4413('0x2d')]['fields']));_0x14e8ff['attributes']=_0x14e8ff['attributes']['length']?_0x14e8ff['attributes']:_0x1d9887[_0x4413('0x2c')];_0x14e8ff[_0x4413('0x4c')]=qs['sort'](_0x13dd4b[_0x4413('0x2d')]['sort']);_0x14e8ff[_0x4413('0x34')]=qs['filters'](_['pick'](_0x13dd4b[_0x4413('0x2d')],_0x1d9887[_0x4413('0x2e')]));if(_0x13dd4b['query'][_0x4413('0x36')]){_0x14e8ff[_0x4413('0x34')]=_[_0x4413('0x37')](_0x14e8ff[_0x4413('0x34')],{'$or':_[_0x4413('0x28')](_0x14e8ff['attributes'],function(_0x5124e2){var _0x2c6753={};_0x2c6753[_0x5124e2]={'$like':'%'+_0x13dd4b[_0x4413('0x2d')][_0x4413('0x36')]+'%'};return _0x2c6753;})});}_0x14e8ff=_[_0x4413('0x37')]({},_0x14e8ff,_0x13dd4b[_0x4413('0x42')]);return _0x3b833a['getSubjects'](_0x14e8ff);}})[_0x4413('0x24')](function(_0x29f111){if(_0x29f111){_0x3fb719=_0x29f111[_0x4413('0x41')];if(!_0x13dd4b['query']['hasOwnProperty'](_0x4413('0x33'))){_0x14e8ff[_0x4413('0x1e')]=qs[_0x4413('0x1e')](_0x13dd4b[_0x4413('0x2d')][_0x4413('0x1e')]);_0x14e8ff[_0x4413('0x20')]=qs[_0x4413('0x20')](_0x13dd4b[_0x4413('0x2d')][_0x4413('0x20')]);}return _0x3b833a['getSubjects'](_0x14e8ff);}})['then'](function(_0x397979){if(_0x397979){return _0x397979?{'count':_0x3fb719,'rows':_0x397979}:null;}})['then'](respondWithResult(_0x487375,null))[_0x4413('0x3d')](handleError(_0x487375,null));};exports[_0x4413('0x4d')]=function(_0x4fed3a,_0x2472fa,_0x47328d){var _0x1b8c03={};var _0x163805={};var _0x928bc8;var _0x37ed08;return db['VtigerConfiguration'][_0x4413('0x47')]({'where':{'id':_0x4fed3a[_0x4413('0x3f')]['id']}})[_0x4413('0x24')](handleEntityNotFound(_0x2472fa,null))[_0x4413('0x24')](function(_0x4742d4){if(_0x4742d4){_0x928bc8=_0x4742d4;_0x163805['model']=_[_0x4413('0x40')](db['VtigerField'][_0x4413('0x2a')]);_0x163805[_0x4413('0x2d')]=_[_0x4413('0x40')](_0x4fed3a['query']);_0x163805[_0x4413('0x2e')]=_[_0x4413('0x2f')](_0x163805[_0x4413('0x2c')],_0x163805[_0x4413('0x2d')]);_0x1b8c03[_0x4413('0x30')]=_[_0x4413('0x2f')](_0x163805[_0x4413('0x2c')],qs[_0x4413('0x31')](_0x4fed3a[_0x4413('0x2d')]['fields']));_0x1b8c03[_0x4413('0x30')]=_0x1b8c03[_0x4413('0x30')][_0x4413('0x41')]?_0x1b8c03[_0x4413('0x30')]:_0x163805[_0x4413('0x2c')];_0x1b8c03[_0x4413('0x4c')]=qs[_0x4413('0x49')](_0x4fed3a[_0x4413('0x2d')][_0x4413('0x49')]);_0x1b8c03[_0x4413('0x34')]=qs[_0x4413('0x2e')](_['pick'](_0x4fed3a[_0x4413('0x2d')],_0x163805['filters']));if(_0x4fed3a[_0x4413('0x2d')][_0x4413('0x36')]){_0x1b8c03[_0x4413('0x34')]=_[_0x4413('0x37')](_0x1b8c03[_0x4413('0x34')],{'$or':_['map'](_0x1b8c03['attributes'],function(_0x443b2c){var _0x46349b={};_0x46349b[_0x443b2c]={'$like':'%'+_0x4fed3a[_0x4413('0x2d')][_0x4413('0x36')]+'%'};return _0x46349b;})});}_0x1b8c03=_[_0x4413('0x37')]({},_0x1b8c03,_0x4fed3a[_0x4413('0x42')]);return _0x928bc8['getDescriptions'](_0x1b8c03);}})[_0x4413('0x24')](function(_0x55bbfb){if(_0x55bbfb){_0x37ed08=_0x55bbfb['length'];if(!_0x4fed3a[_0x4413('0x2d')][_0x4413('0x32')](_0x4413('0x33'))){_0x1b8c03[_0x4413('0x1e')]=qs[_0x4413('0x1e')](_0x4fed3a[_0x4413('0x2d')][_0x4413('0x1e')]);_0x1b8c03[_0x4413('0x20')]=qs[_0x4413('0x20')](_0x4fed3a['query']['offset']);}return _0x928bc8[_0x4413('0x4d')](_0x1b8c03);}})[_0x4413('0x24')](function(_0x1b726b){if(_0x1b726b){return _0x1b726b?{'count':_0x37ed08,'rows':_0x1b726b}:null;}})['then'](respondWithResult(_0x2472fa,null))['catch'](handleError(_0x2472fa,null));};