Built motion from commit d5e4af8c.|2.6.23
[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 _0xae6d=['query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','include','findAll','rows','catch','show','rawAttributes','length','includeAll','find','create','body','params','findOne','ZohoField','getFields','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../mysqldb','end','status','offset','limit','undefined','count','set','json','apply','reject','save','update','then','destroy','sendStatus','stack','name','send','ZohoConfiguration','fieldName','key','model','map'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xae6d,0x11b));var _0xdae6=function(_0x1a8ff0,_0x20788d){_0x1a8ff0=_0x1a8ff0-0x0;var _0x3588bf=_0xae6d[_0x1a8ff0];return _0x3588bf;};'use strict';var emlformat=require(_0xdae6('0x0'));var rimraf=require(_0xdae6('0x1'));var zipdir=require(_0xdae6('0x2'));var jsonpatch=require(_0xdae6('0x3'));var rp=require(_0xdae6('0x4'));var moment=require(_0xdae6('0x5'));var BPromise=require(_0xdae6('0x6'));var Mustache=require(_0xdae6('0x7'));var util=require(_0xdae6('0x8'));var path=require(_0xdae6('0x9'));var sox=require(_0xdae6('0xa'));var csv=require(_0xdae6('0xb'));var ejs=require(_0xdae6('0xc'));var fs=require('fs');var fs_extra=require(_0xdae6('0xd'));var _=require(_0xdae6('0xe'));var squel=require(_0xdae6('0xf'));var crypto=require('crypto');var jsforce=require(_0xdae6('0x10'));var deskjs=require(_0xdae6('0x11'));var toCsv=require(_0xdae6('0xb'));var querystring=require(_0xdae6('0x12'));var Papa=require(_0xdae6('0x13'));var Redis=require('ioredis');var authService=require(_0xdae6('0x14'));var qs=require(_0xdae6('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xdae6('0x16'));var logger=require(_0xdae6('0x17'))(_0xdae6('0x18'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xdae6('0x19'))['db'];function respondWithStatusCode(_0x1c32bb,_0x2b214c){_0x2b214c=_0x2b214c||0xcc;return function(_0x46cf35){if(_0x46cf35){return _0x1c32bb['sendStatus'](_0x2b214c);}return _0x1c32bb['status'](_0x2b214c)[_0xdae6('0x1a')]();};}function respondWithResult(_0x227cbb,_0x3c21c1){_0x3c21c1=_0x3c21c1||0xc8;return function(_0x4086a4){if(_0x4086a4){return _0x227cbb[_0xdae6('0x1b')](_0x3c21c1)['json'](_0x4086a4);}};}function respondWithFilteredResult(_0x308494,_0x4e9d54){return function(_0x41badb){if(_0x41badb){var _0x1e1522=typeof _0x4e9d54[_0xdae6('0x1c')]==='undefined'&&typeof _0x4e9d54[_0xdae6('0x1d')]===_0xdae6('0x1e');var _0x42063f=_0x41badb[_0xdae6('0x1f')];var _0x39f77d=_0x1e1522?0x0:_0x4e9d54[_0xdae6('0x1c')];var _0x62315c=_0x1e1522?_0x41badb[_0xdae6('0x1f')]:_0x4e9d54[_0xdae6('0x1c')]+_0x4e9d54[_0xdae6('0x1d')];var _0x4d895a;if(_0x62315c>=_0x42063f){_0x62315c=_0x42063f;_0x4d895a=0xc8;}else{_0x4d895a=0xce;}_0x308494[_0xdae6('0x1b')](_0x4d895a);return _0x308494[_0xdae6('0x20')]('Content-Range',_0x39f77d+'-'+_0x62315c+'/'+_0x42063f)[_0xdae6('0x21')](_0x41badb);}return null;};}function patchUpdates(_0x155a48){return function(_0x405cd4){try{jsonpatch[_0xdae6('0x22')](_0x405cd4,_0x155a48,!![]);}catch(_0x1af408){return BPromise[_0xdae6('0x23')](_0x1af408);}return _0x405cd4[_0xdae6('0x24')]();};}function saveUpdates(_0x4c236d,_0x490fdb){return function(_0x2c3e99){if(_0x2c3e99){return _0x2c3e99[_0xdae6('0x25')](_0x4c236d)[_0xdae6('0x26')](function(_0x1ff037){return _0x1ff037;});}return null;};}function removeEntity(_0x21dfc4,_0x52f57d){return function(_0x53049b){if(_0x53049b){return _0x53049b[_0xdae6('0x27')]()[_0xdae6('0x26')](function(){_0x21dfc4['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x34e71e,_0x4e1e5f){return function(_0x32d4bc){if(!_0x32d4bc){_0x34e71e[_0xdae6('0x28')](0x194);}return _0x32d4bc;};}function handleError(_0x3d1a09,_0x2c8a96){_0x2c8a96=_0x2c8a96||0x1f4;return function(_0x1fee12){logger['error'](_0x1fee12[_0xdae6('0x29')]);if(_0x1fee12[_0xdae6('0x2a')]){delete _0x1fee12[_0xdae6('0x2a')];}_0x3d1a09[_0xdae6('0x1b')](_0x2c8a96)[_0xdae6('0x2b')](_0x1fee12);};}exports['index']=function(_0xae5b6e,_0x2a3c73){var _0x54cac9={},_0x3c5d3e={},_0x27fd26={'count':0x0,'rows':[]};var _0x503ade=_['map'](db[_0xdae6('0x2c')]['rawAttributes'],function(_0x4ed1ac){return{'name':_0x4ed1ac[_0xdae6('0x2d')],'type':_0x4ed1ac['type'][_0xdae6('0x2e')]};});_0x3c5d3e[_0xdae6('0x2f')]=_[_0xdae6('0x30')](_0x503ade,_0xdae6('0x2a'));_0x3c5d3e[_0xdae6('0x31')]=_[_0xdae6('0x32')](_0xae5b6e[_0xdae6('0x31')]);_0x3c5d3e[_0xdae6('0x33')]=_[_0xdae6('0x34')](_0x3c5d3e[_0xdae6('0x2f')],_0x3c5d3e[_0xdae6('0x31')]);_0x54cac9[_0xdae6('0x35')]=_['intersection'](_0x3c5d3e['model'],qs['fields'](_0xae5b6e[_0xdae6('0x31')][_0xdae6('0x36')]));_0x54cac9[_0xdae6('0x35')]=_0x54cac9[_0xdae6('0x35')]['length']?_0x54cac9['attributes']:_0x3c5d3e[_0xdae6('0x2f')];if(!_0xae5b6e['query'][_0xdae6('0x37')](_0xdae6('0x38'))){_0x54cac9['limit']=qs['limit'](_0xae5b6e['query'][_0xdae6('0x1d')]);_0x54cac9[_0xdae6('0x1c')]=qs[_0xdae6('0x1c')](_0xae5b6e[_0xdae6('0x31')][_0xdae6('0x1c')]);}_0x54cac9[_0xdae6('0x39')]=qs[_0xdae6('0x3a')](_0xae5b6e[_0xdae6('0x31')][_0xdae6('0x3a')]);_0x54cac9[_0xdae6('0x3b')]=qs[_0xdae6('0x33')](_[_0xdae6('0x3c')](_0xae5b6e[_0xdae6('0x31')],_0x3c5d3e['filters']),_0x503ade);if(_0xae5b6e[_0xdae6('0x31')][_0xdae6('0x3d')]){_0x54cac9[_0xdae6('0x3b')]=_[_0xdae6('0x3e')](_0x54cac9[_0xdae6('0x3b')],{'$or':_['map'](_0x503ade,function(_0x56221c){if(_0x56221c[_0xdae6('0x3f')]!==_0xdae6('0x40')){var _0x4d2d93={};_0x4d2d93[_0x56221c['name']]={'$like':'%'+_0xae5b6e[_0xdae6('0x31')][_0xdae6('0x3d')]+'%'};return _0x4d2d93;}})});}_0x54cac9=_[_0xdae6('0x3e')]({},_0x54cac9,_0xae5b6e[_0xdae6('0x41')]);var _0x1fa103={'where':_0x54cac9[_0xdae6('0x3b')]};return db['ZohoConfiguration'][_0xdae6('0x1f')](_0x1fa103)[_0xdae6('0x26')](function(_0x482ce4){_0x27fd26[_0xdae6('0x1f')]=_0x482ce4;if(_0xae5b6e[_0xdae6('0x31')]['includeAll']){_0x54cac9[_0xdae6('0x42')]=[{'all':!![]}];}return db[_0xdae6('0x2c')][_0xdae6('0x43')](_0x54cac9);})[_0xdae6('0x26')](function(_0x436f53){_0x27fd26[_0xdae6('0x44')]=_0x436f53;return _0x27fd26;})[_0xdae6('0x26')](respondWithFilteredResult(_0x2a3c73,_0x54cac9))[_0xdae6('0x45')](handleError(_0x2a3c73,null));};exports[_0xdae6('0x46')]=function(_0xe88e54,_0x2754ac){var _0x2e845f={'raw':![],'where':{'id':_0xe88e54['params']['id']}},_0x9f4b80={};_0x9f4b80[_0xdae6('0x2f')]=_['keys'](db['ZohoConfiguration'][_0xdae6('0x47')]);_0x9f4b80['query']=_[_0xdae6('0x32')](_0xe88e54[_0xdae6('0x31')]);_0x9f4b80[_0xdae6('0x33')]=_['intersection'](_0x9f4b80['model'],_0x9f4b80[_0xdae6('0x31')]);_0x2e845f[_0xdae6('0x35')]=_['intersection'](_0x9f4b80[_0xdae6('0x2f')],qs[_0xdae6('0x36')](_0xe88e54['query']['fields']));_0x2e845f[_0xdae6('0x35')]=_0x2e845f[_0xdae6('0x35')][_0xdae6('0x48')]?_0x2e845f['attributes']:_0x9f4b80['model'];if(_0xe88e54[_0xdae6('0x31')][_0xdae6('0x49')]){_0x2e845f[_0xdae6('0x42')]=[{'all':!![]}];}_0x2e845f=_[_0xdae6('0x3e')]({},_0x2e845f,_0xe88e54[_0xdae6('0x41')]);return db[_0xdae6('0x2c')][_0xdae6('0x4a')](_0x2e845f)['then'](handleEntityNotFound(_0x2754ac,null))[_0xdae6('0x26')](respondWithResult(_0x2754ac,null))[_0xdae6('0x45')](handleError(_0x2754ac,null));};exports[_0xdae6('0x4b')]=function(_0x2bf5c4,_0x32e31d){return db[_0xdae6('0x2c')][_0xdae6('0x4b')](_0x2bf5c4[_0xdae6('0x4c')],{})['then'](respondWithResult(_0x32e31d,0xc9))[_0xdae6('0x45')](handleError(_0x32e31d,null));};exports[_0xdae6('0x25')]=function(_0x3e9bc6,_0x541da7){if(_0x3e9bc6[_0xdae6('0x4c')]['id']){delete _0x3e9bc6[_0xdae6('0x4c')]['id'];}return db['ZohoConfiguration']['find']({'where':{'id':_0x3e9bc6['params']['id']}})['then'](handleEntityNotFound(_0x541da7,null))[_0xdae6('0x26')](saveUpdates(_0x3e9bc6[_0xdae6('0x4c')],null))[_0xdae6('0x26')](respondWithResult(_0x541da7,null))[_0xdae6('0x45')](handleError(_0x541da7,null));};exports[_0xdae6('0x27')]=function(_0x11696d,_0x191ac9){return db[_0xdae6('0x2c')][_0xdae6('0x4a')]({'where':{'id':_0x11696d[_0xdae6('0x4d')]['id']}})[_0xdae6('0x26')](handleEntityNotFound(_0x191ac9,null))[_0xdae6('0x26')](removeEntity(_0x191ac9,null))[_0xdae6('0x45')](handleError(_0x191ac9,null));};exports['getFields']=function(_0x47354b,_0x51f5d3,_0x512273){var _0x91c18f={};var _0x8e4dbc={};var _0x35f344;var _0xc15d0;return db[_0xdae6('0x2c')][_0xdae6('0x4e')]({'where':{'id':_0x47354b[_0xdae6('0x4d')]['id']}})[_0xdae6('0x26')](handleEntityNotFound(_0x51f5d3,null))['then'](function(_0xca9435){if(_0xca9435){_0x35f344=_0xca9435;_0x8e4dbc[_0xdae6('0x2f')]=_[_0xdae6('0x32')](db[_0xdae6('0x4f')][_0xdae6('0x47')]);_0x8e4dbc[_0xdae6('0x31')]=_[_0xdae6('0x32')](_0x47354b['query']);_0x8e4dbc['filters']=_[_0xdae6('0x34')](_0x8e4dbc[_0xdae6('0x2f')],_0x8e4dbc[_0xdae6('0x31')]);_0x91c18f[_0xdae6('0x35')]=_[_0xdae6('0x34')](_0x8e4dbc[_0xdae6('0x2f')],qs[_0xdae6('0x36')](_0x47354b[_0xdae6('0x31')][_0xdae6('0x36')]));_0x91c18f[_0xdae6('0x35')]=_0x91c18f['attributes']['length']?_0x91c18f['attributes']:_0x8e4dbc[_0xdae6('0x2f')];_0x91c18f['order']=qs['sort'](_0x47354b[_0xdae6('0x31')][_0xdae6('0x3a')]);_0x91c18f[_0xdae6('0x3b')]=qs[_0xdae6('0x33')](_['pick'](_0x47354b[_0xdae6('0x31')],_0x8e4dbc[_0xdae6('0x33')]));if(_0x47354b[_0xdae6('0x31')][_0xdae6('0x3d')]){_0x91c18f[_0xdae6('0x3b')]=_[_0xdae6('0x3e')](_0x91c18f[_0xdae6('0x3b')],{'$or':_[_0xdae6('0x30')](_0x91c18f[_0xdae6('0x35')],function(_0x47303b){var _0x556716={};_0x556716[_0x47303b]={'$like':'%'+_0x47354b[_0xdae6('0x31')][_0xdae6('0x3d')]+'%'};return _0x556716;})});}_0x91c18f=_[_0xdae6('0x3e')]({},_0x91c18f,_0x47354b['options']);return _0x35f344[_0xdae6('0x50')](_0x91c18f);}})[_0xdae6('0x26')](function(_0x271864){if(_0x271864){_0xc15d0=_0x271864['length'];if(!_0x47354b[_0xdae6('0x31')][_0xdae6('0x37')](_0xdae6('0x38'))){_0x91c18f[_0xdae6('0x1d')]=qs[_0xdae6('0x1d')](_0x47354b[_0xdae6('0x31')][_0xdae6('0x1d')]);_0x91c18f[_0xdae6('0x1c')]=qs[_0xdae6('0x1c')](_0x47354b[_0xdae6('0x31')][_0xdae6('0x1c')]);}return _0x35f344[_0xdae6('0x50')](_0x91c18f);}})[_0xdae6('0x26')](function(_0x2637cb){if(_0x2637cb){return _0x2637cb?{'count':_0xc15d0,'rows':_0x2637cb}:null;}})[_0xdae6('0x26')](respondWithResult(_0x51f5d3,null))[_0xdae6('0x45')](handleError(_0x51f5d3,null));};exports['getSubjects']=function(_0x4b4b7b,_0x3bc1e3,_0x2e95d9){var _0x1461b9={};var _0xb874e={};var _0xd2c85e;var _0x41efbd;return db[_0xdae6('0x2c')][_0xdae6('0x4e')]({'where':{'id':_0x4b4b7b['params']['id']}})[_0xdae6('0x26')](handleEntityNotFound(_0x3bc1e3,null))['then'](function(_0x3f9533){if(_0x3f9533){_0xd2c85e=_0x3f9533;_0xb874e[_0xdae6('0x2f')]=_['keys'](db[_0xdae6('0x4f')][_0xdae6('0x47')]);_0xb874e[_0xdae6('0x31')]=_['keys'](_0x4b4b7b['query']);_0xb874e[_0xdae6('0x33')]=_[_0xdae6('0x34')](_0xb874e[_0xdae6('0x2f')],_0xb874e[_0xdae6('0x31')]);_0x1461b9[_0xdae6('0x35')]=_[_0xdae6('0x34')](_0xb874e[_0xdae6('0x2f')],qs['fields'](_0x4b4b7b['query'][_0xdae6('0x36')]));_0x1461b9[_0xdae6('0x35')]=_0x1461b9[_0xdae6('0x35')][_0xdae6('0x48')]?_0x1461b9[_0xdae6('0x35')]:_0xb874e[_0xdae6('0x2f')];_0x1461b9[_0xdae6('0x39')]=qs[_0xdae6('0x3a')](_0x4b4b7b[_0xdae6('0x31')][_0xdae6('0x3a')]);_0x1461b9[_0xdae6('0x3b')]=qs['filters'](_[_0xdae6('0x3c')](_0x4b4b7b['query'],_0xb874e[_0xdae6('0x33')]));if(_0x4b4b7b[_0xdae6('0x31')][_0xdae6('0x3d')]){_0x1461b9[_0xdae6('0x3b')]=_[_0xdae6('0x3e')](_0x1461b9[_0xdae6('0x3b')],{'$or':_[_0xdae6('0x30')](_0x1461b9['attributes'],function(_0x366298){var _0x49a38a={};_0x49a38a[_0x366298]={'$like':'%'+_0x4b4b7b[_0xdae6('0x31')][_0xdae6('0x3d')]+'%'};return _0x49a38a;})});}_0x1461b9=_[_0xdae6('0x3e')]({},_0x1461b9,_0x4b4b7b[_0xdae6('0x41')]);return _0xd2c85e[_0xdae6('0x51')](_0x1461b9);}})['then'](function(_0x2798f1){if(_0x2798f1){_0x41efbd=_0x2798f1['length'];if(!_0x4b4b7b[_0xdae6('0x31')][_0xdae6('0x37')](_0xdae6('0x38'))){_0x1461b9[_0xdae6('0x1d')]=qs[_0xdae6('0x1d')](_0x4b4b7b['query'][_0xdae6('0x1d')]);_0x1461b9['offset']=qs[_0xdae6('0x1c')](_0x4b4b7b['query']['offset']);}return _0xd2c85e['getSubjects'](_0x1461b9);}})[_0xdae6('0x26')](function(_0x295b6b){if(_0x295b6b){return _0x295b6b?{'count':_0x41efbd,'rows':_0x295b6b}:null;}})[_0xdae6('0x26')](respondWithResult(_0x3bc1e3,null))[_0xdae6('0x45')](handleError(_0x3bc1e3,null));};exports['getDescriptions']=function(_0x513b15,_0x29b8bf,_0x38a90b){var _0x56b2df={};var _0x37db39={};var _0x205cf1;var _0x97ad10;return db[_0xdae6('0x2c')][_0xdae6('0x4e')]({'where':{'id':_0x513b15['params']['id']}})[_0xdae6('0x26')](handleEntityNotFound(_0x29b8bf,null))[_0xdae6('0x26')](function(_0x378b9f){if(_0x378b9f){_0x205cf1=_0x378b9f;_0x37db39[_0xdae6('0x2f')]=_[_0xdae6('0x32')](db[_0xdae6('0x4f')]['rawAttributes']);_0x37db39[_0xdae6('0x31')]=_[_0xdae6('0x32')](_0x513b15[_0xdae6('0x31')]);_0x37db39[_0xdae6('0x33')]=_[_0xdae6('0x34')](_0x37db39[_0xdae6('0x2f')],_0x37db39['query']);_0x56b2df[_0xdae6('0x35')]=_[_0xdae6('0x34')](_0x37db39[_0xdae6('0x2f')],qs['fields'](_0x513b15[_0xdae6('0x31')][_0xdae6('0x36')]));_0x56b2df[_0xdae6('0x35')]=_0x56b2df['attributes'][_0xdae6('0x48')]?_0x56b2df[_0xdae6('0x35')]:_0x37db39['model'];_0x56b2df[_0xdae6('0x39')]=qs['sort'](_0x513b15[_0xdae6('0x31')][_0xdae6('0x3a')]);_0x56b2df[_0xdae6('0x3b')]=qs[_0xdae6('0x33')](_[_0xdae6('0x3c')](_0x513b15['query'],_0x37db39[_0xdae6('0x33')]));if(_0x513b15[_0xdae6('0x31')][_0xdae6('0x3d')]){_0x56b2df[_0xdae6('0x3b')]=_[_0xdae6('0x3e')](_0x56b2df[_0xdae6('0x3b')],{'$or':_['map'](_0x56b2df[_0xdae6('0x35')],function(_0x30c127){var _0x1a6314={};_0x1a6314[_0x30c127]={'$like':'%'+_0x513b15['query'][_0xdae6('0x3d')]+'%'};return _0x1a6314;})});}_0x56b2df=_[_0xdae6('0x3e')]({},_0x56b2df,_0x513b15['options']);return _0x205cf1[_0xdae6('0x52')](_0x56b2df);}})[_0xdae6('0x26')](function(_0xc86f62){if(_0xc86f62){_0x97ad10=_0xc86f62[_0xdae6('0x48')];if(!_0x513b15[_0xdae6('0x31')][_0xdae6('0x37')]('nolimit')){_0x56b2df[_0xdae6('0x1d')]=qs[_0xdae6('0x1d')](_0x513b15[_0xdae6('0x31')][_0xdae6('0x1d')]);_0x56b2df[_0xdae6('0x1c')]=qs[_0xdae6('0x1c')](_0x513b15[_0xdae6('0x31')][_0xdae6('0x1c')]);}return _0x205cf1[_0xdae6('0x52')](_0x56b2df);}})['then'](function(_0x550500){if(_0x550500){return _0x550500?{'count':_0x97ad10,'rows':_0x550500}:null;}})[_0xdae6('0x26')](respondWithResult(_0x29b8bf,null))[_0xdae6('0x45')](handleError(_0x29b8bf,null));};