8ff97d1fb99827a9e6bb12151908841ca0e01a19
[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 _0x8adc=['lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','offset','undefined','Content-Range','json','apply','reject','save','update','destroy','then','sendStatus','error','name','send','index','map','ZohoConfiguration','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','count','findAll','catch','params','rawAttributes','include','find','create','body','findOne','ZohoField','getFields','hasOwnProperty','getSubjects','getDescriptions','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','fs-extra'];(function(_0x8a969d,_0x339d9f){var _0x1d8dc7=function(_0x283ec0){while(--_0x283ec0){_0x8a969d['push'](_0x8a969d['shift']());}};_0x1d8dc7(++_0x339d9f);}(_0x8adc,0x137));var _0xc8ad=function(_0x160c73,_0x2ee678){_0x160c73=_0x160c73-0x0;var _0xd9302=_0x8adc[_0x160c73];return _0xd9302;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xc8ad('0x0'));var jsonpatch=require(_0xc8ad('0x1'));var rp=require(_0xc8ad('0x2'));var moment=require('moment');var BPromise=require(_0xc8ad('0x3'));var Mustache=require(_0xc8ad('0x4'));var util=require(_0xc8ad('0x5'));var path=require('path');var sox=require(_0xc8ad('0x6'));var csv=require(_0xc8ad('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc8ad('0x8'));var _=require(_0xc8ad('0x9'));var squel=require(_0xc8ad('0xa'));var crypto=require(_0xc8ad('0xb'));var jsforce=require(_0xc8ad('0xc'));var deskjs=require(_0xc8ad('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xc8ad('0xe'));var Redis=require(_0xc8ad('0xf'));var authService=require(_0xc8ad('0x10'));var qs=require(_0xc8ad('0x11'));var as=require(_0xc8ad('0x12'));var hardwareService=require(_0xc8ad('0x13'));var logger=require(_0xc8ad('0x14'))(_0xc8ad('0x15'));var utils=require(_0xc8ad('0x16'));var config=require(_0xc8ad('0x17'));var licenseUtil=require(_0xc8ad('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1d5d77,_0x58a0b5){_0x58a0b5=_0x58a0b5||0xcc;return function(_0x14f80b){if(_0x14f80b){return _0x1d5d77['sendStatus'](_0x58a0b5);}return _0x1d5d77[_0xc8ad('0x19')](_0x58a0b5)[_0xc8ad('0x1a')]();};}function respondWithResult(_0x19009c,_0x5c5414){_0x5c5414=_0x5c5414||0xc8;return function(_0x1ccddd){if(_0x1ccddd){return _0x19009c[_0xc8ad('0x19')](_0x5c5414)['json'](_0x1ccddd);}};}function respondWithFilteredResult(_0x3f6500,_0x163bea){return function(_0x43eb12){if(_0x43eb12){var _0x276578=typeof _0x163bea[_0xc8ad('0x1b')]===_0xc8ad('0x1c')&&typeof _0x163bea['limit']==='undefined';var _0x442b49=_0x43eb12['count'];var _0x2ba72c=_0x276578?0x0:_0x163bea[_0xc8ad('0x1b')];var _0x4cee40=_0x276578?_0x43eb12['count']:_0x163bea[_0xc8ad('0x1b')]+_0x163bea['limit'];var _0x286581;if(_0x4cee40>=_0x442b49){_0x4cee40=_0x442b49;_0x286581=0xc8;}else{_0x286581=0xce;}_0x3f6500[_0xc8ad('0x19')](_0x286581);return _0x3f6500['set'](_0xc8ad('0x1d'),_0x2ba72c+'-'+_0x4cee40+'/'+_0x442b49)[_0xc8ad('0x1e')](_0x43eb12);}return null;};}function patchUpdates(_0x4b1a36){return function(_0x3b6d97){try{jsonpatch[_0xc8ad('0x1f')](_0x3b6d97,_0x4b1a36,!![]);}catch(_0x9e6796){return BPromise[_0xc8ad('0x20')](_0x9e6796);}return _0x3b6d97[_0xc8ad('0x21')]();};}function saveUpdates(_0x9e69b3,_0x594b5f){return function(_0x227294){if(_0x227294){return _0x227294[_0xc8ad('0x22')](_0x9e69b3)['then'](function(_0x332ce7){return _0x332ce7;});}return null;};}function removeEntity(_0x58a4fa,_0x1230ae){return function(_0x4d90a1){if(_0x4d90a1){return _0x4d90a1[_0xc8ad('0x23')]()[_0xc8ad('0x24')](function(){_0x58a4fa[_0xc8ad('0x19')](0xcc)[_0xc8ad('0x1a')]();});}};}function handleEntityNotFound(_0x3f1bae,_0x217263){return function(_0x281bbf){if(!_0x281bbf){_0x3f1bae[_0xc8ad('0x25')](0x194);}return _0x281bbf;};}function handleError(_0x32716f,_0xc89c89){_0xc89c89=_0xc89c89||0x1f4;return function(_0xca24a5){logger[_0xc8ad('0x26')](_0xca24a5['stack']);if(_0xca24a5['name']){delete _0xca24a5[_0xc8ad('0x27')];}_0x32716f[_0xc8ad('0x19')](_0xc89c89)[_0xc8ad('0x28')](_0xca24a5);};}exports[_0xc8ad('0x29')]=function(_0x11bde7,_0x4f529f){var _0x3268a8={},_0x2c303a={},_0x8d4085={'count':0x0,'rows':[]};var _0x18f911=_[_0xc8ad('0x2a')](db[_0xc8ad('0x2b')]['rawAttributes'],function(_0x27bdfc){return{'name':_0x27bdfc[_0xc8ad('0x2c')],'type':_0x27bdfc[_0xc8ad('0x2d')][_0xc8ad('0x2e')]};});_0x2c303a['model']=_['map'](_0x18f911,_0xc8ad('0x27'));_0x2c303a[_0xc8ad('0x2f')]=_[_0xc8ad('0x30')](_0x11bde7['query']);_0x2c303a[_0xc8ad('0x31')]=_[_0xc8ad('0x32')](_0x2c303a[_0xc8ad('0x33')],_0x2c303a['query']);_0x3268a8[_0xc8ad('0x34')]=_['intersection'](_0x2c303a[_0xc8ad('0x33')],qs[_0xc8ad('0x35')](_0x11bde7[_0xc8ad('0x2f')][_0xc8ad('0x35')]));_0x3268a8[_0xc8ad('0x34')]=_0x3268a8['attributes'][_0xc8ad('0x36')]?_0x3268a8[_0xc8ad('0x34')]:_0x2c303a[_0xc8ad('0x33')];if(!_0x11bde7[_0xc8ad('0x2f')]['hasOwnProperty'](_0xc8ad('0x37'))){_0x3268a8[_0xc8ad('0x38')]=qs['limit'](_0x11bde7[_0xc8ad('0x2f')][_0xc8ad('0x38')]);_0x3268a8[_0xc8ad('0x1b')]=qs[_0xc8ad('0x1b')](_0x11bde7[_0xc8ad('0x2f')][_0xc8ad('0x1b')]);}_0x3268a8[_0xc8ad('0x39')]=qs[_0xc8ad('0x3a')](_0x11bde7[_0xc8ad('0x2f')][_0xc8ad('0x3a')]);_0x3268a8[_0xc8ad('0x3b')]=qs[_0xc8ad('0x31')](_[_0xc8ad('0x3c')](_0x11bde7['query'],_0x2c303a[_0xc8ad('0x31')]),_0x18f911);if(_0x11bde7[_0xc8ad('0x2f')][_0xc8ad('0x3d')]){_0x3268a8[_0xc8ad('0x3b')]=_[_0xc8ad('0x3e')](_0x3268a8['where'],{'$or':_[_0xc8ad('0x2a')](_0x18f911,function(_0x427b9c){if(_0x427b9c[_0xc8ad('0x2d')]!==_0xc8ad('0x3f')){var _0x4fc2ac={};_0x4fc2ac[_0x427b9c[_0xc8ad('0x27')]]={'$like':'%'+_0x11bde7['query'][_0xc8ad('0x3d')]+'%'};return _0x4fc2ac;}})});}_0x3268a8=_[_0xc8ad('0x3e')]({},_0x3268a8,_0x11bde7[_0xc8ad('0x40')]);var _0x164975={'where':_0x3268a8[_0xc8ad('0x3b')]};return db[_0xc8ad('0x2b')]['count'](_0x164975)['then'](function(_0xbae210){_0x8d4085[_0xc8ad('0x41')]=_0xbae210;if(_0x11bde7[_0xc8ad('0x2f')]['includeAll']){_0x3268a8['include']=[{'all':!![]}];}return db[_0xc8ad('0x2b')][_0xc8ad('0x42')](_0x3268a8);})[_0xc8ad('0x24')](function(_0x3353b8){_0x8d4085['rows']=_0x3353b8;return _0x8d4085;})['then'](respondWithFilteredResult(_0x4f529f,_0x3268a8))[_0xc8ad('0x43')](handleError(_0x4f529f,null));};exports['show']=function(_0x2c11e7,_0x1191f5){var _0x3b7023={'raw':![],'where':{'id':_0x2c11e7[_0xc8ad('0x44')]['id']}},_0x5bb800={};_0x5bb800[_0xc8ad('0x33')]=_['keys'](db[_0xc8ad('0x2b')][_0xc8ad('0x45')]);_0x5bb800[_0xc8ad('0x2f')]=_[_0xc8ad('0x30')](_0x2c11e7[_0xc8ad('0x2f')]);_0x5bb800['filters']=_[_0xc8ad('0x32')](_0x5bb800['model'],_0x5bb800['query']);_0x3b7023[_0xc8ad('0x34')]=_['intersection'](_0x5bb800[_0xc8ad('0x33')],qs['fields'](_0x2c11e7[_0xc8ad('0x2f')][_0xc8ad('0x35')]));_0x3b7023[_0xc8ad('0x34')]=_0x3b7023[_0xc8ad('0x34')][_0xc8ad('0x36')]?_0x3b7023[_0xc8ad('0x34')]:_0x5bb800[_0xc8ad('0x33')];if(_0x2c11e7['query']['includeAll']){_0x3b7023[_0xc8ad('0x46')]=[{'all':!![]}];}_0x3b7023=_[_0xc8ad('0x3e')]({},_0x3b7023,_0x2c11e7[_0xc8ad('0x40')]);return db['ZohoConfiguration'][_0xc8ad('0x47')](_0x3b7023)['then'](handleEntityNotFound(_0x1191f5,null))['then'](respondWithResult(_0x1191f5,null))[_0xc8ad('0x43')](handleError(_0x1191f5,null));};exports[_0xc8ad('0x48')]=function(_0x13ae67,_0x53d0a8){return db['ZohoConfiguration'][_0xc8ad('0x48')](_0x13ae67[_0xc8ad('0x49')],{})[_0xc8ad('0x24')](respondWithResult(_0x53d0a8,0xc9))['catch'](handleError(_0x53d0a8,null));};exports[_0xc8ad('0x22')]=function(_0x480b22,_0x1543a3){if(_0x480b22[_0xc8ad('0x49')]['id']){delete _0x480b22[_0xc8ad('0x49')]['id'];}return db[_0xc8ad('0x2b')][_0xc8ad('0x47')]({'where':{'id':_0x480b22[_0xc8ad('0x44')]['id']}})[_0xc8ad('0x24')](handleEntityNotFound(_0x1543a3,null))[_0xc8ad('0x24')](saveUpdates(_0x480b22['body'],null))['then'](respondWithResult(_0x1543a3,null))[_0xc8ad('0x43')](handleError(_0x1543a3,null));};exports[_0xc8ad('0x23')]=function(_0x43864e,_0x222e67){return db[_0xc8ad('0x2b')]['find']({'where':{'id':_0x43864e[_0xc8ad('0x44')]['id']}})['then'](handleEntityNotFound(_0x222e67,null))['then'](removeEntity(_0x222e67,null))[_0xc8ad('0x43')](handleError(_0x222e67,null));};exports['getFields']=function(_0x561c9d,_0x385de8,_0x50753f){var _0x3369f2={};var _0x4c263a={};var _0x5d5c76;var _0x4841a1;return db[_0xc8ad('0x2b')][_0xc8ad('0x4a')]({'where':{'id':_0x561c9d[_0xc8ad('0x44')]['id']}})[_0xc8ad('0x24')](handleEntityNotFound(_0x385de8,null))[_0xc8ad('0x24')](function(_0x4029da){if(_0x4029da){_0x5d5c76=_0x4029da;_0x4c263a[_0xc8ad('0x33')]=_['keys'](db[_0xc8ad('0x4b')][_0xc8ad('0x45')]);_0x4c263a[_0xc8ad('0x2f')]=_['keys'](_0x561c9d['query']);_0x4c263a['filters']=_[_0xc8ad('0x32')](_0x4c263a[_0xc8ad('0x33')],_0x4c263a['query']);_0x3369f2[_0xc8ad('0x34')]=_[_0xc8ad('0x32')](_0x4c263a['model'],qs[_0xc8ad('0x35')](_0x561c9d[_0xc8ad('0x2f')][_0xc8ad('0x35')]));_0x3369f2[_0xc8ad('0x34')]=_0x3369f2[_0xc8ad('0x34')]['length']?_0x3369f2[_0xc8ad('0x34')]:_0x4c263a['model'];_0x3369f2[_0xc8ad('0x39')]=qs[_0xc8ad('0x3a')](_0x561c9d[_0xc8ad('0x2f')][_0xc8ad('0x3a')]);_0x3369f2[_0xc8ad('0x3b')]=qs['filters'](_[_0xc8ad('0x3c')](_0x561c9d[_0xc8ad('0x2f')],_0x4c263a[_0xc8ad('0x31')]));if(_0x561c9d[_0xc8ad('0x2f')][_0xc8ad('0x3d')]){_0x3369f2[_0xc8ad('0x3b')]=_[_0xc8ad('0x3e')](_0x3369f2[_0xc8ad('0x3b')],{'$or':_[_0xc8ad('0x2a')](_0x3369f2[_0xc8ad('0x34')],function(_0x5574c3){var _0xf93ebe={};_0xf93ebe[_0x5574c3]={'$like':'%'+_0x561c9d[_0xc8ad('0x2f')]['filter']+'%'};return _0xf93ebe;})});}_0x3369f2=_[_0xc8ad('0x3e')]({},_0x3369f2,_0x561c9d['options']);return _0x5d5c76[_0xc8ad('0x4c')](_0x3369f2);}})[_0xc8ad('0x24')](function(_0x33c9f5){if(_0x33c9f5){_0x4841a1=_0x33c9f5['length'];if(!_0x561c9d[_0xc8ad('0x2f')][_0xc8ad('0x4d')]('nolimit')){_0x3369f2[_0xc8ad('0x38')]=qs[_0xc8ad('0x38')](_0x561c9d[_0xc8ad('0x2f')][_0xc8ad('0x38')]);_0x3369f2[_0xc8ad('0x1b')]=qs[_0xc8ad('0x1b')](_0x561c9d[_0xc8ad('0x2f')][_0xc8ad('0x1b')]);}return _0x5d5c76['getFields'](_0x3369f2);}})[_0xc8ad('0x24')](function(_0x41a0f3){if(_0x41a0f3){return _0x41a0f3?{'count':_0x4841a1,'rows':_0x41a0f3}:null;}})[_0xc8ad('0x24')](respondWithResult(_0x385de8,null))['catch'](handleError(_0x385de8,null));};exports[_0xc8ad('0x4e')]=function(_0x4fcfa0,_0x44a2e7,_0x1a0a6c){var _0x306f1d={};var _0x5add83={};var _0x23fdc6;var _0x176bb2;return db['ZohoConfiguration']['findOne']({'where':{'id':_0x4fcfa0['params']['id']}})['then'](handleEntityNotFound(_0x44a2e7,null))['then'](function(_0x3209ad){if(_0x3209ad){_0x23fdc6=_0x3209ad;_0x5add83[_0xc8ad('0x33')]=_[_0xc8ad('0x30')](db['ZohoField'][_0xc8ad('0x45')]);_0x5add83['query']=_[_0xc8ad('0x30')](_0x4fcfa0[_0xc8ad('0x2f')]);_0x5add83[_0xc8ad('0x31')]=_['intersection'](_0x5add83[_0xc8ad('0x33')],_0x5add83['query']);_0x306f1d[_0xc8ad('0x34')]=_[_0xc8ad('0x32')](_0x5add83[_0xc8ad('0x33')],qs['fields'](_0x4fcfa0['query'][_0xc8ad('0x35')]));_0x306f1d[_0xc8ad('0x34')]=_0x306f1d[_0xc8ad('0x34')]['length']?_0x306f1d[_0xc8ad('0x34')]:_0x5add83[_0xc8ad('0x33')];_0x306f1d[_0xc8ad('0x39')]=qs[_0xc8ad('0x3a')](_0x4fcfa0[_0xc8ad('0x2f')][_0xc8ad('0x3a')]);_0x306f1d[_0xc8ad('0x3b')]=qs['filters'](_[_0xc8ad('0x3c')](_0x4fcfa0[_0xc8ad('0x2f')],_0x5add83['filters']));if(_0x4fcfa0['query'][_0xc8ad('0x3d')]){_0x306f1d[_0xc8ad('0x3b')]=_[_0xc8ad('0x3e')](_0x306f1d[_0xc8ad('0x3b')],{'$or':_[_0xc8ad('0x2a')](_0x306f1d[_0xc8ad('0x34')],function(_0x2e284a){var _0x405e1c={};_0x405e1c[_0x2e284a]={'$like':'%'+_0x4fcfa0[_0xc8ad('0x2f')]['filter']+'%'};return _0x405e1c;})});}_0x306f1d=_[_0xc8ad('0x3e')]({},_0x306f1d,_0x4fcfa0[_0xc8ad('0x40')]);return _0x23fdc6['getSubjects'](_0x306f1d);}})['then'](function(_0x3af3bf){if(_0x3af3bf){_0x176bb2=_0x3af3bf[_0xc8ad('0x36')];if(!_0x4fcfa0[_0xc8ad('0x2f')][_0xc8ad('0x4d')](_0xc8ad('0x37'))){_0x306f1d['limit']=qs[_0xc8ad('0x38')](_0x4fcfa0['query']['limit']);_0x306f1d[_0xc8ad('0x1b')]=qs['offset'](_0x4fcfa0[_0xc8ad('0x2f')][_0xc8ad('0x1b')]);}return _0x23fdc6[_0xc8ad('0x4e')](_0x306f1d);}})[_0xc8ad('0x24')](function(_0x480d2f){if(_0x480d2f){return _0x480d2f?{'count':_0x176bb2,'rows':_0x480d2f}:null;}})['then'](respondWithResult(_0x44a2e7,null))[_0xc8ad('0x43')](handleError(_0x44a2e7,null));};exports[_0xc8ad('0x4f')]=function(_0x332d0b,_0x34d25d,_0x33e2ad){var _0x3d4e9d={};var _0x52f3f4={};var _0x38a39b;var _0x2888ae;return db[_0xc8ad('0x2b')][_0xc8ad('0x4a')]({'where':{'id':_0x332d0b[_0xc8ad('0x44')]['id']}})[_0xc8ad('0x24')](handleEntityNotFound(_0x34d25d,null))[_0xc8ad('0x24')](function(_0x5b8bf0){if(_0x5b8bf0){_0x38a39b=_0x5b8bf0;_0x52f3f4[_0xc8ad('0x33')]=_[_0xc8ad('0x30')](db['ZohoField'][_0xc8ad('0x45')]);_0x52f3f4['query']=_['keys'](_0x332d0b[_0xc8ad('0x2f')]);_0x52f3f4[_0xc8ad('0x31')]=_[_0xc8ad('0x32')](_0x52f3f4[_0xc8ad('0x33')],_0x52f3f4[_0xc8ad('0x2f')]);_0x3d4e9d['attributes']=_[_0xc8ad('0x32')](_0x52f3f4[_0xc8ad('0x33')],qs[_0xc8ad('0x35')](_0x332d0b['query']['fields']));_0x3d4e9d[_0xc8ad('0x34')]=_0x3d4e9d['attributes'][_0xc8ad('0x36')]?_0x3d4e9d['attributes']:_0x52f3f4[_0xc8ad('0x33')];_0x3d4e9d['order']=qs['sort'](_0x332d0b[_0xc8ad('0x2f')][_0xc8ad('0x3a')]);_0x3d4e9d['where']=qs[_0xc8ad('0x31')](_['pick'](_0x332d0b['query'],_0x52f3f4['filters']));if(_0x332d0b[_0xc8ad('0x2f')][_0xc8ad('0x3d')]){_0x3d4e9d[_0xc8ad('0x3b')]=_['merge'](_0x3d4e9d['where'],{'$or':_[_0xc8ad('0x2a')](_0x3d4e9d[_0xc8ad('0x34')],function(_0x1f2f87){var _0x157f2a={};_0x157f2a[_0x1f2f87]={'$like':'%'+_0x332d0b['query']['filter']+'%'};return _0x157f2a;})});}_0x3d4e9d=_[_0xc8ad('0x3e')]({},_0x3d4e9d,_0x332d0b['options']);return _0x38a39b['getDescriptions'](_0x3d4e9d);}})[_0xc8ad('0x24')](function(_0x42e06c){if(_0x42e06c){_0x2888ae=_0x42e06c[_0xc8ad('0x36')];if(!_0x332d0b[_0xc8ad('0x2f')][_0xc8ad('0x4d')]('nolimit')){_0x3d4e9d['limit']=qs[_0xc8ad('0x38')](_0x332d0b[_0xc8ad('0x2f')][_0xc8ad('0x38')]);_0x3d4e9d[_0xc8ad('0x1b')]=qs[_0xc8ad('0x1b')](_0x332d0b['query']['offset']);}return _0x38a39b[_0xc8ad('0x4f')](_0x3d4e9d);}})[_0xc8ad('0x24')](function(_0x5cfa1c){if(_0x5cfa1c){return _0x5cfa1c?{'count':_0x2888ae,'rows':_0x5cfa1c}:null;}})[_0xc8ad('0x24')](respondWithResult(_0x34d25d,null))[_0xc8ad('0x43')](handleError(_0x34d25d,null));};