da6c27e638ea77505a41ebec7a6b68b212b8ad41
[motion2.git] / server / api / intZohoConfiguration / intZohoConfiguration.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 _0x02f5=['save','then','destroy','stack','name','send','index','map','ZohoConfiguration','rawAttributes','key','model','query','keys','filters','fields','attributes','length','hasOwnProperty','sort','where','pick','filter','merge','options','includeAll','findAll','rows','catch','show','params','intersection','find','create','body','update','getFields','findOne','ZohoField','order','nolimit','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','set','reject'];(function(_0x4f06d3,_0x445507){var _0x322e62=function(_0x59a7c6){while(--_0x59a7c6){_0x4f06d3['push'](_0x4f06d3['shift']());}};_0x322e62(++_0x445507);}(_0x02f5,0xc7));var _0x502f=function(_0x36eaaa,_0x326732){_0x36eaaa=_0x36eaaa-0x0;var _0x461349=_0x02f5[_0x36eaaa];return _0x461349;};'use strict';var emlformat=require(_0x502f('0x0'));var rimraf=require(_0x502f('0x1'));var zipdir=require(_0x502f('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x502f('0x3'));var moment=require(_0x502f('0x4'));var BPromise=require(_0x502f('0x5'));var Mustache=require(_0x502f('0x6'));var util=require(_0x502f('0x7'));var path=require(_0x502f('0x8'));var sox=require(_0x502f('0x9'));var csv=require(_0x502f('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x502f('0xb'));var _=require(_0x502f('0xc'));var squel=require(_0x502f('0xd'));var crypto=require(_0x502f('0xe'));var jsforce=require(_0x502f('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x502f('0xa'));var querystring=require(_0x502f('0x10'));var Papa=require(_0x502f('0x11'));var Redis=require(_0x502f('0x12'));var authService=require(_0x502f('0x13'));var qs=require(_0x502f('0x14'));var as=require(_0x502f('0x15'));var hardwareService=require(_0x502f('0x16'));var logger=require('../../config/logger')(_0x502f('0x17'));var utils=require('../../config/utils');var config=require(_0x502f('0x18'));var licenseUtil=require(_0x502f('0x19'));var db=require(_0x502f('0x1a'))['db'];function respondWithStatusCode(_0x294fb2,_0x130837){_0x130837=_0x130837||0xcc;return function(_0x163256){if(_0x163256){return _0x294fb2[_0x502f('0x1b')](_0x130837);}return _0x294fb2[_0x502f('0x1c')](_0x130837)['end']();};}function respondWithResult(_0x55a89b,_0x2b12be){_0x2b12be=_0x2b12be||0xc8;return function(_0x2bdc0f){if(_0x2bdc0f){return _0x55a89b[_0x502f('0x1c')](_0x2b12be)['json'](_0x2bdc0f);}};}function respondWithFilteredResult(_0x562219,_0x4b7f69){return function(_0x42d39c){if(_0x42d39c){var _0x5de7e4=typeof _0x4b7f69[_0x502f('0x1d')]===_0x502f('0x1e')&&typeof _0x4b7f69[_0x502f('0x1f')]==='undefined';var _0x47826e=_0x42d39c[_0x502f('0x20')];var _0x5c75ca=_0x5de7e4?0x0:_0x4b7f69[_0x502f('0x1d')];var _0x5f5934=_0x5de7e4?_0x42d39c[_0x502f('0x20')]:_0x4b7f69['offset']+_0x4b7f69[_0x502f('0x1f')];var _0x7c62d3;if(_0x5f5934>=_0x47826e){_0x5f5934=_0x47826e;_0x7c62d3=0xc8;}else{_0x7c62d3=0xce;}_0x562219[_0x502f('0x1c')](_0x7c62d3);return _0x562219[_0x502f('0x21')]('Content-Range',_0x5c75ca+'-'+_0x5f5934+'/'+_0x47826e)['json'](_0x42d39c);}return null;};}function patchUpdates(_0x5137b7){return function(_0xbc5cab){try{jsonpatch['apply'](_0xbc5cab,_0x5137b7,!![]);}catch(_0x334985){return BPromise[_0x502f('0x22')](_0x334985);}return _0xbc5cab[_0x502f('0x23')]();};}function saveUpdates(_0x4d30df,_0x190cf9){return function(_0x176055){if(_0x176055){return _0x176055['update'](_0x4d30df)[_0x502f('0x24')](function(_0xef7a4b){return _0xef7a4b;});}return null;};}function removeEntity(_0x3b540c,_0x94c91c){return function(_0xb6cfea){if(_0xb6cfea){return _0xb6cfea[_0x502f('0x25')]()['then'](function(){_0x3b540c['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x45bac6,_0x423a8d){return function(_0x4a9b32){if(!_0x4a9b32){_0x45bac6[_0x502f('0x1b')](0x194);}return _0x4a9b32;};}function handleError(_0x585389,_0x25a97e){_0x25a97e=_0x25a97e||0x1f4;return function(_0x10d637){logger['error'](_0x10d637[_0x502f('0x26')]);if(_0x10d637[_0x502f('0x27')]){delete _0x10d637[_0x502f('0x27')];}_0x585389['status'](_0x25a97e)[_0x502f('0x28')](_0x10d637);};}exports[_0x502f('0x29')]=function(_0x45badd,_0x3518a6){var _0x3036bc={},_0x60a1e8={},_0x54fa5b={'count':0x0,'rows':[]};var _0xa28cd=_[_0x502f('0x2a')](db[_0x502f('0x2b')][_0x502f('0x2c')],function(_0x9b6404){return{'name':_0x9b6404['fieldName'],'type':_0x9b6404['type'][_0x502f('0x2d')]};});_0x60a1e8[_0x502f('0x2e')]=_[_0x502f('0x2a')](_0xa28cd,_0x502f('0x27'));_0x60a1e8[_0x502f('0x2f')]=_[_0x502f('0x30')](_0x45badd[_0x502f('0x2f')]);_0x60a1e8[_0x502f('0x31')]=_['intersection'](_0x60a1e8[_0x502f('0x2e')],_0x60a1e8[_0x502f('0x2f')]);_0x3036bc['attributes']=_['intersection'](_0x60a1e8[_0x502f('0x2e')],qs[_0x502f('0x32')](_0x45badd[_0x502f('0x2f')][_0x502f('0x32')]));_0x3036bc[_0x502f('0x33')]=_0x3036bc[_0x502f('0x33')][_0x502f('0x34')]?_0x3036bc[_0x502f('0x33')]:_0x60a1e8[_0x502f('0x2e')];if(!_0x45badd['query'][_0x502f('0x35')]('nolimit')){_0x3036bc['limit']=qs[_0x502f('0x1f')](_0x45badd[_0x502f('0x2f')]['limit']);_0x3036bc[_0x502f('0x1d')]=qs[_0x502f('0x1d')](_0x45badd[_0x502f('0x2f')][_0x502f('0x1d')]);}_0x3036bc['order']=qs[_0x502f('0x36')](_0x45badd[_0x502f('0x2f')]['sort']);_0x3036bc[_0x502f('0x37')]=qs[_0x502f('0x31')](_[_0x502f('0x38')](_0x45badd[_0x502f('0x2f')],_0x60a1e8['filters']),_0xa28cd);if(_0x45badd[_0x502f('0x2f')][_0x502f('0x39')]){_0x3036bc['where']=_[_0x502f('0x3a')](_0x3036bc[_0x502f('0x37')],{'$or':_[_0x502f('0x2a')](_0xa28cd,function(_0x72e9cb){if(_0x72e9cb['type']!=='VIRTUAL'){var _0x58c443={};_0x58c443[_0x72e9cb[_0x502f('0x27')]]={'$like':'%'+_0x45badd[_0x502f('0x2f')]['filter']+'%'};return _0x58c443;}})});}_0x3036bc=_[_0x502f('0x3a')]({},_0x3036bc,_0x45badd[_0x502f('0x3b')]);var _0x1d58b6={'where':_0x3036bc[_0x502f('0x37')]};return db[_0x502f('0x2b')][_0x502f('0x20')](_0x1d58b6)[_0x502f('0x24')](function(_0x134539){_0x54fa5b['count']=_0x134539;if(_0x45badd['query'][_0x502f('0x3c')]){_0x3036bc['include']=[{'all':!![]}];}return db[_0x502f('0x2b')][_0x502f('0x3d')](_0x3036bc);})[_0x502f('0x24')](function(_0x429e50){_0x54fa5b[_0x502f('0x3e')]=_0x429e50;return _0x54fa5b;})[_0x502f('0x24')](respondWithFilteredResult(_0x3518a6,_0x3036bc))[_0x502f('0x3f')](handleError(_0x3518a6,null));};exports[_0x502f('0x40')]=function(_0x3e61cf,_0x48da5a){var _0x33706f={'raw':![],'where':{'id':_0x3e61cf[_0x502f('0x41')]['id']}},_0x219ff7={};_0x219ff7[_0x502f('0x2e')]=_['keys'](db[_0x502f('0x2b')][_0x502f('0x2c')]);_0x219ff7[_0x502f('0x2f')]=_[_0x502f('0x30')](_0x3e61cf[_0x502f('0x2f')]);_0x219ff7[_0x502f('0x31')]=_[_0x502f('0x42')](_0x219ff7['model'],_0x219ff7[_0x502f('0x2f')]);_0x33706f[_0x502f('0x33')]=_['intersection'](_0x219ff7['model'],qs[_0x502f('0x32')](_0x3e61cf['query'][_0x502f('0x32')]));_0x33706f[_0x502f('0x33')]=_0x33706f[_0x502f('0x33')][_0x502f('0x34')]?_0x33706f['attributes']:_0x219ff7['model'];if(_0x3e61cf[_0x502f('0x2f')][_0x502f('0x3c')]){_0x33706f['include']=[{'all':!![]}];}_0x33706f=_['merge']({},_0x33706f,_0x3e61cf[_0x502f('0x3b')]);return db['ZohoConfiguration'][_0x502f('0x43')](_0x33706f)[_0x502f('0x24')](handleEntityNotFound(_0x48da5a,null))[_0x502f('0x24')](respondWithResult(_0x48da5a,null))[_0x502f('0x3f')](handleError(_0x48da5a,null));};exports[_0x502f('0x44')]=function(_0x52efcc,_0x94e36){return db['ZohoConfiguration'][_0x502f('0x44')](_0x52efcc[_0x502f('0x45')],{})[_0x502f('0x24')](respondWithResult(_0x94e36,0xc9))[_0x502f('0x3f')](handleError(_0x94e36,null));};exports[_0x502f('0x46')]=function(_0x4733b0,_0x415628){if(_0x4733b0['body']['id']){delete _0x4733b0[_0x502f('0x45')]['id'];}return db['ZohoConfiguration'][_0x502f('0x43')]({'where':{'id':_0x4733b0['params']['id']}})[_0x502f('0x24')](handleEntityNotFound(_0x415628,null))[_0x502f('0x24')](saveUpdates(_0x4733b0[_0x502f('0x45')],null))[_0x502f('0x24')](respondWithResult(_0x415628,null))[_0x502f('0x3f')](handleError(_0x415628,null));};exports[_0x502f('0x25')]=function(_0x508ac1,_0x175516){return db['ZohoConfiguration'][_0x502f('0x43')]({'where':{'id':_0x508ac1['params']['id']}})[_0x502f('0x24')](handleEntityNotFound(_0x175516,null))[_0x502f('0x24')](removeEntity(_0x175516,null))[_0x502f('0x3f')](handleError(_0x175516,null));};exports[_0x502f('0x47')]=function(_0x2a74cf,_0x3b249a,_0x5f1001){var _0x5a2b6a={};var _0x3df9de={};var _0xa167bd;var _0x1dbbc4;return db[_0x502f('0x2b')][_0x502f('0x48')]({'where':{'id':_0x2a74cf['params']['id']}})[_0x502f('0x24')](handleEntityNotFound(_0x3b249a,null))[_0x502f('0x24')](function(_0x204fee){if(_0x204fee){_0xa167bd=_0x204fee;_0x3df9de[_0x502f('0x2e')]=_[_0x502f('0x30')](db[_0x502f('0x49')]['rawAttributes']);_0x3df9de[_0x502f('0x2f')]=_[_0x502f('0x30')](_0x2a74cf[_0x502f('0x2f')]);_0x3df9de[_0x502f('0x31')]=_['intersection'](_0x3df9de[_0x502f('0x2e')],_0x3df9de[_0x502f('0x2f')]);_0x5a2b6a['attributes']=_[_0x502f('0x42')](_0x3df9de['model'],qs[_0x502f('0x32')](_0x2a74cf['query'][_0x502f('0x32')]));_0x5a2b6a['attributes']=_0x5a2b6a['attributes']['length']?_0x5a2b6a[_0x502f('0x33')]:_0x3df9de[_0x502f('0x2e')];_0x5a2b6a[_0x502f('0x4a')]=qs[_0x502f('0x36')](_0x2a74cf['query'][_0x502f('0x36')]);_0x5a2b6a['where']=qs[_0x502f('0x31')](_[_0x502f('0x38')](_0x2a74cf['query'],_0x3df9de[_0x502f('0x31')]));if(_0x2a74cf[_0x502f('0x2f')][_0x502f('0x39')]){_0x5a2b6a[_0x502f('0x37')]=_[_0x502f('0x3a')](_0x5a2b6a[_0x502f('0x37')],{'$or':_[_0x502f('0x2a')](_0x5a2b6a[_0x502f('0x33')],function(_0x332add){var _0x4e4d0b={};_0x4e4d0b[_0x332add]={'$like':'%'+_0x2a74cf[_0x502f('0x2f')]['filter']+'%'};return _0x4e4d0b;})});}_0x5a2b6a=_[_0x502f('0x3a')]({},_0x5a2b6a,_0x2a74cf[_0x502f('0x3b')]);return _0xa167bd[_0x502f('0x47')](_0x5a2b6a);}})['then'](function(_0x468a06){if(_0x468a06){_0x1dbbc4=_0x468a06[_0x502f('0x34')];if(!_0x2a74cf['query'][_0x502f('0x35')](_0x502f('0x4b'))){_0x5a2b6a['limit']=qs['limit'](_0x2a74cf[_0x502f('0x2f')][_0x502f('0x1f')]);_0x5a2b6a[_0x502f('0x1d')]=qs[_0x502f('0x1d')](_0x2a74cf[_0x502f('0x2f')]['offset']);}return _0xa167bd['getFields'](_0x5a2b6a);}})[_0x502f('0x24')](function(_0x176737){if(_0x176737){return _0x176737?{'count':_0x1dbbc4,'rows':_0x176737}:null;}})[_0x502f('0x24')](respondWithResult(_0x3b249a,null))[_0x502f('0x3f')](handleError(_0x3b249a,null));};exports[_0x502f('0x4c')]=function(_0x2a66ae,_0x15f17f,_0xf28153){var _0x308929={};var _0x17ee21={};var _0x10940c;var _0x1e5ee5;return db[_0x502f('0x2b')][_0x502f('0x48')]({'where':{'id':_0x2a66ae[_0x502f('0x41')]['id']}})['then'](handleEntityNotFound(_0x15f17f,null))[_0x502f('0x24')](function(_0x2196dd){if(_0x2196dd){_0x10940c=_0x2196dd;_0x17ee21[_0x502f('0x2e')]=_['keys'](db[_0x502f('0x49')]['rawAttributes']);_0x17ee21[_0x502f('0x2f')]=_[_0x502f('0x30')](_0x2a66ae[_0x502f('0x2f')]);_0x17ee21[_0x502f('0x31')]=_['intersection'](_0x17ee21[_0x502f('0x2e')],_0x17ee21[_0x502f('0x2f')]);_0x308929[_0x502f('0x33')]=_[_0x502f('0x42')](_0x17ee21[_0x502f('0x2e')],qs['fields'](_0x2a66ae[_0x502f('0x2f')][_0x502f('0x32')]));_0x308929[_0x502f('0x33')]=_0x308929[_0x502f('0x33')][_0x502f('0x34')]?_0x308929['attributes']:_0x17ee21[_0x502f('0x2e')];_0x308929['order']=qs[_0x502f('0x36')](_0x2a66ae[_0x502f('0x2f')][_0x502f('0x36')]);_0x308929['where']=qs[_0x502f('0x31')](_[_0x502f('0x38')](_0x2a66ae['query'],_0x17ee21['filters']));if(_0x2a66ae[_0x502f('0x2f')][_0x502f('0x39')]){_0x308929[_0x502f('0x37')]=_[_0x502f('0x3a')](_0x308929[_0x502f('0x37')],{'$or':_[_0x502f('0x2a')](_0x308929[_0x502f('0x33')],function(_0x53d776){var _0x31e407={};_0x31e407[_0x53d776]={'$like':'%'+_0x2a66ae['query'][_0x502f('0x39')]+'%'};return _0x31e407;})});}_0x308929=_[_0x502f('0x3a')]({},_0x308929,_0x2a66ae[_0x502f('0x3b')]);return _0x10940c[_0x502f('0x4c')](_0x308929);}})[_0x502f('0x24')](function(_0x496f7f){if(_0x496f7f){_0x1e5ee5=_0x496f7f[_0x502f('0x34')];if(!_0x2a66ae[_0x502f('0x2f')]['hasOwnProperty'](_0x502f('0x4b'))){_0x308929[_0x502f('0x1f')]=qs[_0x502f('0x1f')](_0x2a66ae[_0x502f('0x2f')]['limit']);_0x308929[_0x502f('0x1d')]=qs[_0x502f('0x1d')](_0x2a66ae[_0x502f('0x2f')][_0x502f('0x1d')]);}return _0x10940c['getSubjects'](_0x308929);}})[_0x502f('0x24')](function(_0x314ccc){if(_0x314ccc){return _0x314ccc?{'count':_0x1e5ee5,'rows':_0x314ccc}:null;}})[_0x502f('0x24')](respondWithResult(_0x15f17f,null))[_0x502f('0x3f')](handleError(_0x15f17f,null));};exports[_0x502f('0x4d')]=function(_0xabed49,_0x3536b9,_0x18f0f4){var _0x3e20dd={};var _0x4a6525={};var _0x2492c1;var _0x3ce344;return db[_0x502f('0x2b')]['findOne']({'where':{'id':_0xabed49['params']['id']}})['then'](handleEntityNotFound(_0x3536b9,null))[_0x502f('0x24')](function(_0x15e8b9){if(_0x15e8b9){_0x2492c1=_0x15e8b9;_0x4a6525[_0x502f('0x2e')]=_[_0x502f('0x30')](db[_0x502f('0x49')][_0x502f('0x2c')]);_0x4a6525[_0x502f('0x2f')]=_[_0x502f('0x30')](_0xabed49['query']);_0x4a6525[_0x502f('0x31')]=_[_0x502f('0x42')](_0x4a6525[_0x502f('0x2e')],_0x4a6525[_0x502f('0x2f')]);_0x3e20dd[_0x502f('0x33')]=_[_0x502f('0x42')](_0x4a6525[_0x502f('0x2e')],qs[_0x502f('0x32')](_0xabed49['query'][_0x502f('0x32')]));_0x3e20dd[_0x502f('0x33')]=_0x3e20dd[_0x502f('0x33')][_0x502f('0x34')]?_0x3e20dd[_0x502f('0x33')]:_0x4a6525[_0x502f('0x2e')];_0x3e20dd[_0x502f('0x4a')]=qs[_0x502f('0x36')](_0xabed49[_0x502f('0x2f')][_0x502f('0x36')]);_0x3e20dd[_0x502f('0x37')]=qs[_0x502f('0x31')](_[_0x502f('0x38')](_0xabed49[_0x502f('0x2f')],_0x4a6525[_0x502f('0x31')]));if(_0xabed49[_0x502f('0x2f')][_0x502f('0x39')]){_0x3e20dd[_0x502f('0x37')]=_['merge'](_0x3e20dd['where'],{'$or':_[_0x502f('0x2a')](_0x3e20dd[_0x502f('0x33')],function(_0x3e0794){var _0x36bef6={};_0x36bef6[_0x3e0794]={'$like':'%'+_0xabed49['query']['filter']+'%'};return _0x36bef6;})});}_0x3e20dd=_[_0x502f('0x3a')]({},_0x3e20dd,_0xabed49[_0x502f('0x3b')]);return _0x2492c1[_0x502f('0x4d')](_0x3e20dd);}})[_0x502f('0x24')](function(_0x37fb44){if(_0x37fb44){_0x3ce344=_0x37fb44[_0x502f('0x34')];if(!_0xabed49[_0x502f('0x2f')][_0x502f('0x35')](_0x502f('0x4b'))){_0x3e20dd[_0x502f('0x1f')]=qs['limit'](_0xabed49['query']['limit']);_0x3e20dd[_0x502f('0x1d')]=qs['offset'](_0xabed49[_0x502f('0x2f')][_0x502f('0x1d')]);}return _0x2492c1[_0x502f('0x4d')](_0x3e20dd);}})[_0x502f('0x24')](function(_0x471e7a){if(_0x471e7a){return _0x471e7a?{'count':_0x3ce344,'rows':_0x471e7a}:null;}})['then'](respondWithResult(_0x3536b9,null))[_0x502f('0x3f')](handleError(_0x3536b9,null));};