16308e6c51f37011a26f698fe5c7eb00d30fa5c8
[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 _0x994c=['include','rows','catch','show','params','find','create','body','findOne','ZohoField','order','filter','hasOwnProperty','getFields','pick','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','index','map','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','sort','where','merge','VIRTUAL','options','ZohoConfiguration','includeAll'];(function(_0x53e7f4,_0x7709ce){var _0x17b660=function(_0x1d9352){while(--_0x1d9352){_0x53e7f4['push'](_0x53e7f4['shift']());}};_0x17b660(++_0x7709ce);}(_0x994c,0xfe));var _0xc994=function(_0x5d9465,_0x257fdd){_0x5d9465=_0x5d9465-0x0;var _0xeda10e=_0x994c[_0x5d9465];return _0xeda10e;};'use strict';var emlformat=require(_0xc994('0x0'));var rimraf=require(_0xc994('0x1'));var zipdir=require(_0xc994('0x2'));var jsonpatch=require(_0xc994('0x3'));var rp=require(_0xc994('0x4'));var moment=require(_0xc994('0x5'));var BPromise=require(_0xc994('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0xc994('0x7'));var sox=require(_0xc994('0x8'));var csv=require(_0xc994('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc994('0xa'));var _=require(_0xc994('0xb'));var squel=require('squel');var crypto=require(_0xc994('0xc'));var jsforce=require(_0xc994('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xc994('0x9'));var querystring=require(_0xc994('0xe'));var Papa=require(_0xc994('0xf'));var Redis=require('ioredis');var authService=require(_0xc994('0x10'));var qs=require(_0xc994('0x11'));var as=require(_0xc994('0x12'));var hardwareService=require(_0xc994('0x13'));var logger=require(_0xc994('0x14'))('api');var utils=require('../../config/utils');var config=require(_0xc994('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xc994('0x16'))['db'];function respondWithStatusCode(_0x398b3f,_0x414a){_0x414a=_0x414a||0xcc;return function(_0x3dffc9){if(_0x3dffc9){return _0x398b3f[_0xc994('0x17')](_0x414a);}return _0x398b3f['status'](_0x414a)[_0xc994('0x18')]();};}function respondWithResult(_0x100e9e,_0x1d53cd){_0x1d53cd=_0x1d53cd||0xc8;return function(_0x28e8f2){if(_0x28e8f2){return _0x100e9e[_0xc994('0x19')](_0x1d53cd)[_0xc994('0x1a')](_0x28e8f2);}};}function respondWithFilteredResult(_0x5091a9,_0x6e1407){return function(_0x16945b){if(_0x16945b){var _0x3c052d=typeof _0x6e1407[_0xc994('0x1b')]===_0xc994('0x1c')&&typeof _0x6e1407[_0xc994('0x1d')]==='undefined';var _0x26adc5=_0x16945b[_0xc994('0x1e')];var _0x197ebb=_0x3c052d?0x0:_0x6e1407[_0xc994('0x1b')];var _0x421a5b=_0x3c052d?_0x16945b['count']:_0x6e1407['offset']+_0x6e1407['limit'];var _0x2ceb16;if(_0x421a5b>=_0x26adc5){_0x421a5b=_0x26adc5;_0x2ceb16=0xc8;}else{_0x2ceb16=0xce;}_0x5091a9[_0xc994('0x19')](_0x2ceb16);return _0x5091a9[_0xc994('0x1f')](_0xc994('0x20'),_0x197ebb+'-'+_0x421a5b+'/'+_0x26adc5)[_0xc994('0x1a')](_0x16945b);}return null;};}function patchUpdates(_0x1167c8){return function(_0x2710b0){try{jsonpatch[_0xc994('0x21')](_0x2710b0,_0x1167c8,!![]);}catch(_0x1fc294){return BPromise[_0xc994('0x22')](_0x1fc294);}return _0x2710b0['save']();};}function saveUpdates(_0x26a13a,_0x4f1090){return function(_0x27785b){if(_0x27785b){return _0x27785b[_0xc994('0x23')](_0x26a13a)[_0xc994('0x24')](function(_0x50adae){return _0x50adae;});}return null;};}function removeEntity(_0x38094e,_0x1213ce){return function(_0x184051){if(_0x184051){return _0x184051[_0xc994('0x25')]()[_0xc994('0x24')](function(){_0x38094e[_0xc994('0x19')](0xcc)[_0xc994('0x18')]();});}};}function handleEntityNotFound(_0x25e675,_0x2d6336){return function(_0x2c7666){if(!_0x2c7666){_0x25e675['sendStatus'](0x194);}return _0x2c7666;};}function handleError(_0x1a4720,_0x201d5e){_0x201d5e=_0x201d5e||0x1f4;return function(_0x495bd8){logger[_0xc994('0x26')](_0x495bd8[_0xc994('0x27')]);if(_0x495bd8[_0xc994('0x28')]){delete _0x495bd8['name'];}_0x1a4720[_0xc994('0x19')](_0x201d5e)['send'](_0x495bd8);};}exports[_0xc994('0x29')]=function(_0x217563,_0x4188f5){var _0x33aafa={},_0x2484fc={},_0x27ee8a={'count':0x0,'rows':[]};var _0x26ae70=_[_0xc994('0x2a')](db['ZohoConfiguration'][_0xc994('0x2b')],function(_0x29d34f){return{'name':_0x29d34f[_0xc994('0x2c')],'type':_0x29d34f[_0xc994('0x2d')]['key']};});_0x2484fc[_0xc994('0x2e')]=_['map'](_0x26ae70,'name');_0x2484fc[_0xc994('0x2f')]=_[_0xc994('0x30')](_0x217563[_0xc994('0x2f')]);_0x2484fc[_0xc994('0x31')]=_[_0xc994('0x32')](_0x2484fc[_0xc994('0x2e')],_0x2484fc[_0xc994('0x2f')]);_0x33aafa[_0xc994('0x33')]=_[_0xc994('0x32')](_0x2484fc[_0xc994('0x2e')],qs[_0xc994('0x34')](_0x217563[_0xc994('0x2f')][_0xc994('0x34')]));_0x33aafa[_0xc994('0x33')]=_0x33aafa[_0xc994('0x33')][_0xc994('0x35')]?_0x33aafa[_0xc994('0x33')]:_0x2484fc['model'];if(!_0x217563[_0xc994('0x2f')]['hasOwnProperty'](_0xc994('0x36'))){_0x33aafa[_0xc994('0x1d')]=qs['limit'](_0x217563[_0xc994('0x2f')][_0xc994('0x1d')]);_0x33aafa['offset']=qs[_0xc994('0x1b')](_0x217563[_0xc994('0x2f')][_0xc994('0x1b')]);}_0x33aafa['order']=qs[_0xc994('0x37')](_0x217563['query'][_0xc994('0x37')]);_0x33aafa['where']=qs['filters'](_['pick'](_0x217563[_0xc994('0x2f')],_0x2484fc[_0xc994('0x31')]),_0x26ae70);if(_0x217563[_0xc994('0x2f')]['filter']){_0x33aafa[_0xc994('0x38')]=_[_0xc994('0x39')](_0x33aafa['where'],{'$or':_['map'](_0x26ae70,function(_0x46210d){if(_0x46210d['type']!==_0xc994('0x3a')){var _0x191438={};_0x191438[_0x46210d[_0xc994('0x28')]]={'$like':'%'+_0x217563['query']['filter']+'%'};return _0x191438;}})});}_0x33aafa=_[_0xc994('0x39')]({},_0x33aafa,_0x217563[_0xc994('0x3b')]);var _0x1985b8={'where':_0x33aafa[_0xc994('0x38')]};return db[_0xc994('0x3c')][_0xc994('0x1e')](_0x1985b8)['then'](function(_0x2fa14b){_0x27ee8a[_0xc994('0x1e')]=_0x2fa14b;if(_0x217563[_0xc994('0x2f')][_0xc994('0x3d')]){_0x33aafa[_0xc994('0x3e')]=[{'all':!![]}];}return db[_0xc994('0x3c')]['findAll'](_0x33aafa);})['then'](function(_0x222eb2){_0x27ee8a[_0xc994('0x3f')]=_0x222eb2;return _0x27ee8a;})[_0xc994('0x24')](respondWithFilteredResult(_0x4188f5,_0x33aafa))[_0xc994('0x40')](handleError(_0x4188f5,null));};exports[_0xc994('0x41')]=function(_0x3132e5,_0x259efb){var _0xdf9398={'raw':![],'where':{'id':_0x3132e5[_0xc994('0x42')]['id']}},_0x2b45e3={};_0x2b45e3[_0xc994('0x2e')]=_[_0xc994('0x30')](db[_0xc994('0x3c')][_0xc994('0x2b')]);_0x2b45e3[_0xc994('0x2f')]=_['keys'](_0x3132e5[_0xc994('0x2f')]);_0x2b45e3[_0xc994('0x31')]=_[_0xc994('0x32')](_0x2b45e3['model'],_0x2b45e3[_0xc994('0x2f')]);_0xdf9398['attributes']=_[_0xc994('0x32')](_0x2b45e3[_0xc994('0x2e')],qs[_0xc994('0x34')](_0x3132e5[_0xc994('0x2f')][_0xc994('0x34')]));_0xdf9398[_0xc994('0x33')]=_0xdf9398[_0xc994('0x33')][_0xc994('0x35')]?_0xdf9398['attributes']:_0x2b45e3['model'];if(_0x3132e5[_0xc994('0x2f')][_0xc994('0x3d')]){_0xdf9398[_0xc994('0x3e')]=[{'all':!![]}];}_0xdf9398=_[_0xc994('0x39')]({},_0xdf9398,_0x3132e5[_0xc994('0x3b')]);return db['ZohoConfiguration'][_0xc994('0x43')](_0xdf9398)['then'](handleEntityNotFound(_0x259efb,null))[_0xc994('0x24')](respondWithResult(_0x259efb,null))['catch'](handleError(_0x259efb,null));};exports['create']=function(_0x409697,_0x19dacf){return db[_0xc994('0x3c')][_0xc994('0x44')](_0x409697[_0xc994('0x45')],{})['then'](respondWithResult(_0x19dacf,0xc9))[_0xc994('0x40')](handleError(_0x19dacf,null));};exports['update']=function(_0x38450a,_0x3af92d){if(_0x38450a[_0xc994('0x45')]['id']){delete _0x38450a[_0xc994('0x45')]['id'];}return db[_0xc994('0x3c')]['find']({'where':{'id':_0x38450a[_0xc994('0x42')]['id']}})[_0xc994('0x24')](handleEntityNotFound(_0x3af92d,null))[_0xc994('0x24')](saveUpdates(_0x38450a['body'],null))[_0xc994('0x24')](respondWithResult(_0x3af92d,null))[_0xc994('0x40')](handleError(_0x3af92d,null));};exports[_0xc994('0x25')]=function(_0x250572,_0x46a9a8){return db[_0xc994('0x3c')][_0xc994('0x43')]({'where':{'id':_0x250572[_0xc994('0x42')]['id']}})['then'](handleEntityNotFound(_0x46a9a8,null))['then'](removeEntity(_0x46a9a8,null))[_0xc994('0x40')](handleError(_0x46a9a8,null));};exports['getFields']=function(_0x3ebb79,_0x5a094d,_0x28b0c6){var _0x3bea0e={};var _0x3fe513={};var _0x14942a;var _0x3fb3af;return db[_0xc994('0x3c')][_0xc994('0x46')]({'where':{'id':_0x3ebb79[_0xc994('0x42')]['id']}})['then'](handleEntityNotFound(_0x5a094d,null))[_0xc994('0x24')](function(_0x3da412){if(_0x3da412){_0x14942a=_0x3da412;_0x3fe513[_0xc994('0x2e')]=_[_0xc994('0x30')](db[_0xc994('0x47')][_0xc994('0x2b')]);_0x3fe513[_0xc994('0x2f')]=_[_0xc994('0x30')](_0x3ebb79[_0xc994('0x2f')]);_0x3fe513[_0xc994('0x31')]=_[_0xc994('0x32')](_0x3fe513[_0xc994('0x2e')],_0x3fe513[_0xc994('0x2f')]);_0x3bea0e[_0xc994('0x33')]=_['intersection'](_0x3fe513[_0xc994('0x2e')],qs[_0xc994('0x34')](_0x3ebb79[_0xc994('0x2f')]['fields']));_0x3bea0e['attributes']=_0x3bea0e[_0xc994('0x33')][_0xc994('0x35')]?_0x3bea0e[_0xc994('0x33')]:_0x3fe513[_0xc994('0x2e')];_0x3bea0e[_0xc994('0x48')]=qs[_0xc994('0x37')](_0x3ebb79[_0xc994('0x2f')][_0xc994('0x37')]);_0x3bea0e['where']=qs[_0xc994('0x31')](_['pick'](_0x3ebb79[_0xc994('0x2f')],_0x3fe513[_0xc994('0x31')]));if(_0x3ebb79[_0xc994('0x2f')][_0xc994('0x49')]){_0x3bea0e[_0xc994('0x38')]=_[_0xc994('0x39')](_0x3bea0e[_0xc994('0x38')],{'$or':_[_0xc994('0x2a')](_0x3bea0e[_0xc994('0x33')],function(_0x322899){var _0x4c2400={};_0x4c2400[_0x322899]={'$like':'%'+_0x3ebb79[_0xc994('0x2f')][_0xc994('0x49')]+'%'};return _0x4c2400;})});}_0x3bea0e=_[_0xc994('0x39')]({},_0x3bea0e,_0x3ebb79[_0xc994('0x3b')]);return _0x14942a['getFields'](_0x3bea0e);}})['then'](function(_0x54a500){if(_0x54a500){_0x3fb3af=_0x54a500[_0xc994('0x35')];if(!_0x3ebb79[_0xc994('0x2f')][_0xc994('0x4a')]('nolimit')){_0x3bea0e[_0xc994('0x1d')]=qs[_0xc994('0x1d')](_0x3ebb79[_0xc994('0x2f')]['limit']);_0x3bea0e[_0xc994('0x1b')]=qs['offset'](_0x3ebb79['query']['offset']);}return _0x14942a[_0xc994('0x4b')](_0x3bea0e);}})[_0xc994('0x24')](function(_0x58298e){if(_0x58298e){return _0x58298e?{'count':_0x3fb3af,'rows':_0x58298e}:null;}})['then'](respondWithResult(_0x5a094d,null))[_0xc994('0x40')](handleError(_0x5a094d,null));};exports['getSubjects']=function(_0x4af8a0,_0x51f5d1,_0x56e3e4){var _0x4a9e86={};var _0x143559={};var _0x13e2da;var _0x5bccfd;return db[_0xc994('0x3c')][_0xc994('0x46')]({'where':{'id':_0x4af8a0[_0xc994('0x42')]['id']}})['then'](handleEntityNotFound(_0x51f5d1,null))['then'](function(_0x24fe57){if(_0x24fe57){_0x13e2da=_0x24fe57;_0x143559['model']=_[_0xc994('0x30')](db[_0xc994('0x47')][_0xc994('0x2b')]);_0x143559[_0xc994('0x2f')]=_['keys'](_0x4af8a0[_0xc994('0x2f')]);_0x143559['filters']=_[_0xc994('0x32')](_0x143559['model'],_0x143559[_0xc994('0x2f')]);_0x4a9e86['attributes']=_['intersection'](_0x143559[_0xc994('0x2e')],qs[_0xc994('0x34')](_0x4af8a0['query'][_0xc994('0x34')]));_0x4a9e86[_0xc994('0x33')]=_0x4a9e86[_0xc994('0x33')][_0xc994('0x35')]?_0x4a9e86[_0xc994('0x33')]:_0x143559[_0xc994('0x2e')];_0x4a9e86[_0xc994('0x48')]=qs[_0xc994('0x37')](_0x4af8a0['query']['sort']);_0x4a9e86[_0xc994('0x38')]=qs[_0xc994('0x31')](_[_0xc994('0x4c')](_0x4af8a0[_0xc994('0x2f')],_0x143559[_0xc994('0x31')]));if(_0x4af8a0[_0xc994('0x2f')][_0xc994('0x49')]){_0x4a9e86['where']=_['merge'](_0x4a9e86['where'],{'$or':_[_0xc994('0x2a')](_0x4a9e86[_0xc994('0x33')],function(_0x515d45){var _0x5b8f12={};_0x5b8f12[_0x515d45]={'$like':'%'+_0x4af8a0[_0xc994('0x2f')][_0xc994('0x49')]+'%'};return _0x5b8f12;})});}_0x4a9e86=_[_0xc994('0x39')]({},_0x4a9e86,_0x4af8a0[_0xc994('0x3b')]);return _0x13e2da[_0xc994('0x4d')](_0x4a9e86);}})['then'](function(_0x104669){if(_0x104669){_0x5bccfd=_0x104669['length'];if(!_0x4af8a0['query']['hasOwnProperty'](_0xc994('0x36'))){_0x4a9e86['limit']=qs[_0xc994('0x1d')](_0x4af8a0['query'][_0xc994('0x1d')]);_0x4a9e86['offset']=qs[_0xc994('0x1b')](_0x4af8a0['query'][_0xc994('0x1b')]);}return _0x13e2da['getSubjects'](_0x4a9e86);}})[_0xc994('0x24')](function(_0xff6a55){if(_0xff6a55){return _0xff6a55?{'count':_0x5bccfd,'rows':_0xff6a55}:null;}})[_0xc994('0x24')](respondWithResult(_0x51f5d1,null))[_0xc994('0x40')](handleError(_0x51f5d1,null));};exports[_0xc994('0x4e')]=function(_0x18b8fc,_0x15a858,_0x491e35){var _0x7baafc={};var _0x2d38ca={};var _0x305e7a;var _0x3faef5;return db[_0xc994('0x3c')]['findOne']({'where':{'id':_0x18b8fc['params']['id']}})[_0xc994('0x24')](handleEntityNotFound(_0x15a858,null))[_0xc994('0x24')](function(_0x413546){if(_0x413546){_0x305e7a=_0x413546;_0x2d38ca['model']=_[_0xc994('0x30')](db[_0xc994('0x47')]['rawAttributes']);_0x2d38ca[_0xc994('0x2f')]=_[_0xc994('0x30')](_0x18b8fc[_0xc994('0x2f')]);_0x2d38ca[_0xc994('0x31')]=_[_0xc994('0x32')](_0x2d38ca[_0xc994('0x2e')],_0x2d38ca[_0xc994('0x2f')]);_0x7baafc[_0xc994('0x33')]=_[_0xc994('0x32')](_0x2d38ca['model'],qs[_0xc994('0x34')](_0x18b8fc[_0xc994('0x2f')][_0xc994('0x34')]));_0x7baafc[_0xc994('0x33')]=_0x7baafc[_0xc994('0x33')][_0xc994('0x35')]?_0x7baafc[_0xc994('0x33')]:_0x2d38ca[_0xc994('0x2e')];_0x7baafc[_0xc994('0x48')]=qs[_0xc994('0x37')](_0x18b8fc[_0xc994('0x2f')]['sort']);_0x7baafc[_0xc994('0x38')]=qs['filters'](_[_0xc994('0x4c')](_0x18b8fc[_0xc994('0x2f')],_0x2d38ca['filters']));if(_0x18b8fc[_0xc994('0x2f')][_0xc994('0x49')]){_0x7baafc['where']=_[_0xc994('0x39')](_0x7baafc[_0xc994('0x38')],{'$or':_[_0xc994('0x2a')](_0x7baafc[_0xc994('0x33')],function(_0x3364ce){var _0x4b5309={};_0x4b5309[_0x3364ce]={'$like':'%'+_0x18b8fc[_0xc994('0x2f')][_0xc994('0x49')]+'%'};return _0x4b5309;})});}_0x7baafc=_[_0xc994('0x39')]({},_0x7baafc,_0x18b8fc[_0xc994('0x3b')]);return _0x305e7a['getDescriptions'](_0x7baafc);}})['then'](function(_0xc6d0ee){if(_0xc6d0ee){_0x3faef5=_0xc6d0ee[_0xc994('0x35')];if(!_0x18b8fc[_0xc994('0x2f')][_0xc994('0x4a')](_0xc994('0x36'))){_0x7baafc[_0xc994('0x1d')]=qs[_0xc994('0x1d')](_0x18b8fc[_0xc994('0x2f')][_0xc994('0x1d')]);_0x7baafc[_0xc994('0x1b')]=qs[_0xc994('0x1b')](_0x18b8fc[_0xc994('0x2f')][_0xc994('0x1b')]);}return _0x305e7a[_0xc994('0x4e')](_0x7baafc);}})['then'](function(_0x3073d2){if(_0x3073d2){return _0x3073d2?{'count':_0x3faef5,'rows':_0x3073d2}:null;}})[_0xc994('0x24')](respondWithResult(_0x15a858,null))[_0xc994('0x40')](handleError(_0x15a858,null));};