54fd48976f28827d3ce35ca9ea3d2c25db97ca3f
[motion2.git] / server / api / intServicenowConfiguration / intServicenowConfiguration.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 _0x1ec6=['rows','catch','show','params','keys','length','options','find','create','body','update','getFields','findOne','ServicenowField','pick','getSubjects','getDescriptions','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','reject','save','destroy','then','end','error','stack','name','send','index','ServicenowConfiguration','rawAttributes','fieldName','type','model','map','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','includeAll','include','findAll'];(function(_0x5295f4,_0xf2024d){var _0x236fc1=function(_0x4ed2a0){while(--_0x4ed2a0){_0x5295f4['push'](_0x5295f4['shift']());}};_0x236fc1(++_0xf2024d);}(_0x1ec6,0x64));var _0x61ec=function(_0x2b6ec7,_0x514fd5){_0x2b6ec7=_0x2b6ec7-0x0;var _0x41063d=_0x1ec6[_0x2b6ec7];return _0x41063d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x61ec('0x0'));var zipdir=require(_0x61ec('0x1'));var jsonpatch=require(_0x61ec('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x61ec('0x3'));var Mustache=require(_0x61ec('0x4'));var util=require(_0x61ec('0x5'));var path=require(_0x61ec('0x6'));var sox=require(_0x61ec('0x7'));var csv=require(_0x61ec('0x8'));var ejs=require(_0x61ec('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x61ec('0xa'));var squel=require(_0x61ec('0xb'));var crypto=require(_0x61ec('0xc'));var jsforce=require(_0x61ec('0xd'));var deskjs=require(_0x61ec('0xe'));var toCsv=require(_0x61ec('0x8'));var querystring=require(_0x61ec('0xf'));var Papa=require(_0x61ec('0x10'));var Redis=require(_0x61ec('0x11'));var authService=require(_0x61ec('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x61ec('0x13'));var hardwareService=require(_0x61ec('0x14'));var logger=require(_0x61ec('0x15'))('api');var utils=require('../../config/utils');var config=require(_0x61ec('0x16'));var licenseUtil=require(_0x61ec('0x17'));var db=require(_0x61ec('0x18'))['db'];function respondWithStatusCode(_0xf21ed3,_0xdbad9d){_0xdbad9d=_0xdbad9d||0xcc;return function(_0xcb31d1){if(_0xcb31d1){return _0xf21ed3[_0x61ec('0x19')](_0xdbad9d);}return _0xf21ed3['status'](_0xdbad9d)['end']();};}function respondWithResult(_0xb8208c,_0x1a3363){_0x1a3363=_0x1a3363||0xc8;return function(_0x396675){if(_0x396675){return _0xb8208c[_0x61ec('0x1a')](_0x1a3363)['json'](_0x396675);}};}function respondWithFilteredResult(_0x511da7,_0x3a0c09){return function(_0x31cd3a){if(_0x31cd3a){var _0x536ca9=typeof _0x3a0c09[_0x61ec('0x1b')]===_0x61ec('0x1c')&&typeof _0x3a0c09[_0x61ec('0x1d')]===_0x61ec('0x1c');var _0x55411b=_0x31cd3a['count'];var _0x19a120=_0x536ca9?0x0:_0x3a0c09['offset'];var _0x372f2d=_0x536ca9?_0x31cd3a[_0x61ec('0x1e')]:_0x3a0c09[_0x61ec('0x1b')]+_0x3a0c09[_0x61ec('0x1d')];var _0x3b4bf4;if(_0x372f2d>=_0x55411b){_0x372f2d=_0x55411b;_0x3b4bf4=0xc8;}else{_0x3b4bf4=0xce;}_0x511da7['status'](_0x3b4bf4);return _0x511da7[_0x61ec('0x1f')](_0x61ec('0x20'),_0x19a120+'-'+_0x372f2d+'/'+_0x55411b)[_0x61ec('0x21')](_0x31cd3a);}return null;};}function patchUpdates(_0x30bac2){return function(_0x4c3881){try{jsonpatch['apply'](_0x4c3881,_0x30bac2,!![]);}catch(_0x563d94){return BPromise[_0x61ec('0x22')](_0x563d94);}return _0x4c3881[_0x61ec('0x23')]();};}function saveUpdates(_0x3dfd51,_0x2f2c1c){return function(_0x40b566){if(_0x40b566){return _0x40b566['update'](_0x3dfd51)['then'](function(_0x5df828){return _0x5df828;});}return null;};}function removeEntity(_0x67da7a,_0x4b1836){return function(_0x58914a){if(_0x58914a){return _0x58914a[_0x61ec('0x24')]()[_0x61ec('0x25')](function(){_0x67da7a[_0x61ec('0x1a')](0xcc)[_0x61ec('0x26')]();});}};}function handleEntityNotFound(_0x26a488,_0x53b1d3){return function(_0x945845){if(!_0x945845){_0x26a488['sendStatus'](0x194);}return _0x945845;};}function handleError(_0x58b12d,_0x5511a2){_0x5511a2=_0x5511a2||0x1f4;return function(_0x1e8e47){logger[_0x61ec('0x27')](_0x1e8e47[_0x61ec('0x28')]);if(_0x1e8e47['name']){delete _0x1e8e47[_0x61ec('0x29')];}_0x58b12d[_0x61ec('0x1a')](_0x5511a2)[_0x61ec('0x2a')](_0x1e8e47);};}exports[_0x61ec('0x2b')]=function(_0x4bed98,_0x434e20){var _0x5b8403={},_0x155cf6={},_0x5d2992={'count':0x0,'rows':[]};var _0x12440a=_['map'](db[_0x61ec('0x2c')][_0x61ec('0x2d')],function(_0x328e43){return{'name':_0x328e43[_0x61ec('0x2e')],'type':_0x328e43[_0x61ec('0x2f')]['key']};});_0x155cf6[_0x61ec('0x30')]=_[_0x61ec('0x31')](_0x12440a,_0x61ec('0x29'));_0x155cf6[_0x61ec('0x32')]=_['keys'](_0x4bed98[_0x61ec('0x32')]);_0x155cf6[_0x61ec('0x33')]=_[_0x61ec('0x34')](_0x155cf6[_0x61ec('0x30')],_0x155cf6['query']);_0x5b8403['attributes']=_[_0x61ec('0x34')](_0x155cf6[_0x61ec('0x30')],qs[_0x61ec('0x35')](_0x4bed98[_0x61ec('0x32')][_0x61ec('0x35')]));_0x5b8403[_0x61ec('0x36')]=_0x5b8403[_0x61ec('0x36')]['length']?_0x5b8403[_0x61ec('0x36')]:_0x155cf6[_0x61ec('0x30')];if(!_0x4bed98[_0x61ec('0x32')][_0x61ec('0x37')](_0x61ec('0x38'))){_0x5b8403[_0x61ec('0x1d')]=qs['limit'](_0x4bed98[_0x61ec('0x32')][_0x61ec('0x1d')]);_0x5b8403[_0x61ec('0x1b')]=qs['offset'](_0x4bed98[_0x61ec('0x32')][_0x61ec('0x1b')]);}_0x5b8403[_0x61ec('0x39')]=qs[_0x61ec('0x3a')](_0x4bed98['query'][_0x61ec('0x3a')]);_0x5b8403[_0x61ec('0x3b')]=qs[_0x61ec('0x33')](_['pick'](_0x4bed98[_0x61ec('0x32')],_0x155cf6[_0x61ec('0x33')]),_0x12440a);if(_0x4bed98[_0x61ec('0x32')][_0x61ec('0x3c')]){_0x5b8403[_0x61ec('0x3b')]=_[_0x61ec('0x3d')](_0x5b8403['where'],{'$or':_[_0x61ec('0x31')](_0x12440a,function(_0x3580ac){if(_0x3580ac['type']!==_0x61ec('0x3e')){var _0x2b6a2e={};_0x2b6a2e[_0x3580ac[_0x61ec('0x29')]]={'$like':'%'+_0x4bed98[_0x61ec('0x32')]['filter']+'%'};return _0x2b6a2e;}})});}_0x5b8403=_[_0x61ec('0x3d')]({},_0x5b8403,_0x4bed98['options']);var _0x1db028={'where':_0x5b8403[_0x61ec('0x3b')]};return db['ServicenowConfiguration'][_0x61ec('0x1e')](_0x1db028)[_0x61ec('0x25')](function(_0x28c1ba){_0x5d2992['count']=_0x28c1ba;if(_0x4bed98['query'][_0x61ec('0x3f')]){_0x5b8403[_0x61ec('0x40')]=[{'all':!![]}];}return db[_0x61ec('0x2c')][_0x61ec('0x41')](_0x5b8403);})[_0x61ec('0x25')](function(_0x1f4773){_0x5d2992[_0x61ec('0x42')]=_0x1f4773;return _0x5d2992;})[_0x61ec('0x25')](respondWithFilteredResult(_0x434e20,_0x5b8403))[_0x61ec('0x43')](handleError(_0x434e20,null));};exports[_0x61ec('0x44')]=function(_0x3de0b3,_0xb901b4){var _0x2c0738={'raw':![],'where':{'id':_0x3de0b3[_0x61ec('0x45')]['id']}},_0x1dc52c={};_0x1dc52c[_0x61ec('0x30')]=_['keys'](db[_0x61ec('0x2c')][_0x61ec('0x2d')]);_0x1dc52c[_0x61ec('0x32')]=_[_0x61ec('0x46')](_0x3de0b3[_0x61ec('0x32')]);_0x1dc52c[_0x61ec('0x33')]=_[_0x61ec('0x34')](_0x1dc52c[_0x61ec('0x30')],_0x1dc52c['query']);_0x2c0738[_0x61ec('0x36')]=_[_0x61ec('0x34')](_0x1dc52c[_0x61ec('0x30')],qs[_0x61ec('0x35')](_0x3de0b3[_0x61ec('0x32')][_0x61ec('0x35')]));_0x2c0738[_0x61ec('0x36')]=_0x2c0738[_0x61ec('0x36')][_0x61ec('0x47')]?_0x2c0738[_0x61ec('0x36')]:_0x1dc52c[_0x61ec('0x30')];if(_0x3de0b3[_0x61ec('0x32')][_0x61ec('0x3f')]){_0x2c0738['include']=[{'all':!![]}];}_0x2c0738=_[_0x61ec('0x3d')]({},_0x2c0738,_0x3de0b3[_0x61ec('0x48')]);return db['ServicenowConfiguration'][_0x61ec('0x49')](_0x2c0738)[_0x61ec('0x25')](handleEntityNotFound(_0xb901b4,null))[_0x61ec('0x25')](respondWithResult(_0xb901b4,null))[_0x61ec('0x43')](handleError(_0xb901b4,null));};exports[_0x61ec('0x4a')]=function(_0x5a82f7,_0x37e4d3){return db[_0x61ec('0x2c')][_0x61ec('0x4a')](_0x5a82f7[_0x61ec('0x4b')],{})[_0x61ec('0x25')](respondWithResult(_0x37e4d3,0xc9))['catch'](handleError(_0x37e4d3,null));};exports[_0x61ec('0x4c')]=function(_0x48dc4b,_0x4a7bd9){if(_0x48dc4b[_0x61ec('0x4b')]['id']){delete _0x48dc4b[_0x61ec('0x4b')]['id'];}return db[_0x61ec('0x2c')][_0x61ec('0x49')]({'where':{'id':_0x48dc4b[_0x61ec('0x45')]['id']}})[_0x61ec('0x25')](handleEntityNotFound(_0x4a7bd9,null))[_0x61ec('0x25')](saveUpdates(_0x48dc4b[_0x61ec('0x4b')],null))['then'](respondWithResult(_0x4a7bd9,null))[_0x61ec('0x43')](handleError(_0x4a7bd9,null));};exports[_0x61ec('0x24')]=function(_0x1b5a87,_0x561785){return db[_0x61ec('0x2c')][_0x61ec('0x49')]({'where':{'id':_0x1b5a87['params']['id']}})[_0x61ec('0x25')](handleEntityNotFound(_0x561785,null))[_0x61ec('0x25')](removeEntity(_0x561785,null))['catch'](handleError(_0x561785,null));};exports[_0x61ec('0x4d')]=function(_0x5cd9aa,_0x4e95cd,_0x46e9e9){var _0x28d372={};var _0x63187={};var _0x350c78;var _0x4c7fda;return db['ServicenowConfiguration'][_0x61ec('0x4e')]({'where':{'id':_0x5cd9aa[_0x61ec('0x45')]['id']}})[_0x61ec('0x25')](handleEntityNotFound(_0x4e95cd,null))['then'](function(_0x2f0495){if(_0x2f0495){_0x350c78=_0x2f0495;_0x63187[_0x61ec('0x30')]=_['keys'](db[_0x61ec('0x4f')]['rawAttributes']);_0x63187[_0x61ec('0x32')]=_['keys'](_0x5cd9aa[_0x61ec('0x32')]);_0x63187[_0x61ec('0x33')]=_[_0x61ec('0x34')](_0x63187['model'],_0x63187[_0x61ec('0x32')]);_0x28d372['attributes']=_[_0x61ec('0x34')](_0x63187[_0x61ec('0x30')],qs['fields'](_0x5cd9aa['query'][_0x61ec('0x35')]));_0x28d372['attributes']=_0x28d372[_0x61ec('0x36')][_0x61ec('0x47')]?_0x28d372[_0x61ec('0x36')]:_0x63187[_0x61ec('0x30')];_0x28d372[_0x61ec('0x39')]=qs[_0x61ec('0x3a')](_0x5cd9aa[_0x61ec('0x32')][_0x61ec('0x3a')]);_0x28d372['where']=qs['filters'](_[_0x61ec('0x50')](_0x5cd9aa['query'],_0x63187['filters']));if(_0x5cd9aa[_0x61ec('0x32')]['filter']){_0x28d372[_0x61ec('0x3b')]=_[_0x61ec('0x3d')](_0x28d372[_0x61ec('0x3b')],{'$or':_['map'](_0x28d372[_0x61ec('0x36')],function(_0x49abb5){var _0x25f58a={};_0x25f58a[_0x49abb5]={'$like':'%'+_0x5cd9aa[_0x61ec('0x32')][_0x61ec('0x3c')]+'%'};return _0x25f58a;})});}_0x28d372=_[_0x61ec('0x3d')]({},_0x28d372,_0x5cd9aa[_0x61ec('0x48')]);return _0x350c78['getFields'](_0x28d372);}})[_0x61ec('0x25')](function(_0x15b016){if(_0x15b016){_0x4c7fda=_0x15b016[_0x61ec('0x47')];if(!_0x5cd9aa[_0x61ec('0x32')]['hasOwnProperty'](_0x61ec('0x38'))){_0x28d372[_0x61ec('0x1d')]=qs[_0x61ec('0x1d')](_0x5cd9aa[_0x61ec('0x32')][_0x61ec('0x1d')]);_0x28d372[_0x61ec('0x1b')]=qs['offset'](_0x5cd9aa[_0x61ec('0x32')][_0x61ec('0x1b')]);}return _0x350c78[_0x61ec('0x4d')](_0x28d372);}})['then'](function(_0x3849b){if(_0x3849b){return _0x3849b?{'count':_0x4c7fda,'rows':_0x3849b}:null;}})['then'](respondWithResult(_0x4e95cd,null))['catch'](handleError(_0x4e95cd,null));};exports['getSubjects']=function(_0x1769a9,_0x23379d,_0x5c074d){var _0x38df04={};var _0x7b04ab={};var _0x397940;var _0x2179b6;return db['ServicenowConfiguration'][_0x61ec('0x4e')]({'where':{'id':_0x1769a9[_0x61ec('0x45')]['id']}})[_0x61ec('0x25')](handleEntityNotFound(_0x23379d,null))[_0x61ec('0x25')](function(_0x507d25){if(_0x507d25){_0x397940=_0x507d25;_0x7b04ab[_0x61ec('0x30')]=_[_0x61ec('0x46')](db[_0x61ec('0x4f')][_0x61ec('0x2d')]);_0x7b04ab[_0x61ec('0x32')]=_[_0x61ec('0x46')](_0x1769a9[_0x61ec('0x32')]);_0x7b04ab['filters']=_['intersection'](_0x7b04ab['model'],_0x7b04ab[_0x61ec('0x32')]);_0x38df04[_0x61ec('0x36')]=_[_0x61ec('0x34')](_0x7b04ab['model'],qs[_0x61ec('0x35')](_0x1769a9[_0x61ec('0x32')][_0x61ec('0x35')]));_0x38df04[_0x61ec('0x36')]=_0x38df04[_0x61ec('0x36')][_0x61ec('0x47')]?_0x38df04[_0x61ec('0x36')]:_0x7b04ab[_0x61ec('0x30')];_0x38df04[_0x61ec('0x39')]=qs[_0x61ec('0x3a')](_0x1769a9[_0x61ec('0x32')]['sort']);_0x38df04[_0x61ec('0x3b')]=qs[_0x61ec('0x33')](_[_0x61ec('0x50')](_0x1769a9[_0x61ec('0x32')],_0x7b04ab[_0x61ec('0x33')]));if(_0x1769a9[_0x61ec('0x32')]['filter']){_0x38df04[_0x61ec('0x3b')]=_['merge'](_0x38df04['where'],{'$or':_[_0x61ec('0x31')](_0x38df04['attributes'],function(_0x2d425c){var _0x478d32={};_0x478d32[_0x2d425c]={'$like':'%'+_0x1769a9[_0x61ec('0x32')][_0x61ec('0x3c')]+'%'};return _0x478d32;})});}_0x38df04=_[_0x61ec('0x3d')]({},_0x38df04,_0x1769a9['options']);return _0x397940[_0x61ec('0x51')](_0x38df04);}})[_0x61ec('0x25')](function(_0x389fce){if(_0x389fce){_0x2179b6=_0x389fce[_0x61ec('0x47')];if(!_0x1769a9['query'][_0x61ec('0x37')](_0x61ec('0x38'))){_0x38df04[_0x61ec('0x1d')]=qs[_0x61ec('0x1d')](_0x1769a9['query'][_0x61ec('0x1d')]);_0x38df04[_0x61ec('0x1b')]=qs[_0x61ec('0x1b')](_0x1769a9[_0x61ec('0x32')]['offset']);}return _0x397940['getSubjects'](_0x38df04);}})[_0x61ec('0x25')](function(_0x22d51b){if(_0x22d51b){return _0x22d51b?{'count':_0x2179b6,'rows':_0x22d51b}:null;}})['then'](respondWithResult(_0x23379d,null))[_0x61ec('0x43')](handleError(_0x23379d,null));};exports['getDescriptions']=function(_0x37cf98,_0x5c83cb,_0x567478){var _0x15bb61={};var _0x554695={};var _0x5ada2e;var _0x544784;return db[_0x61ec('0x2c')][_0x61ec('0x4e')]({'where':{'id':_0x37cf98[_0x61ec('0x45')]['id']}})[_0x61ec('0x25')](handleEntityNotFound(_0x5c83cb,null))[_0x61ec('0x25')](function(_0x492a64){if(_0x492a64){_0x5ada2e=_0x492a64;_0x554695[_0x61ec('0x30')]=_['keys'](db[_0x61ec('0x4f')]['rawAttributes']);_0x554695[_0x61ec('0x32')]=_[_0x61ec('0x46')](_0x37cf98[_0x61ec('0x32')]);_0x554695[_0x61ec('0x33')]=_[_0x61ec('0x34')](_0x554695[_0x61ec('0x30')],_0x554695['query']);_0x15bb61['attributes']=_[_0x61ec('0x34')](_0x554695[_0x61ec('0x30')],qs[_0x61ec('0x35')](_0x37cf98[_0x61ec('0x32')][_0x61ec('0x35')]));_0x15bb61[_0x61ec('0x36')]=_0x15bb61[_0x61ec('0x36')][_0x61ec('0x47')]?_0x15bb61['attributes']:_0x554695['model'];_0x15bb61[_0x61ec('0x39')]=qs[_0x61ec('0x3a')](_0x37cf98[_0x61ec('0x32')]['sort']);_0x15bb61[_0x61ec('0x3b')]=qs[_0x61ec('0x33')](_[_0x61ec('0x50')](_0x37cf98['query'],_0x554695[_0x61ec('0x33')]));if(_0x37cf98[_0x61ec('0x32')][_0x61ec('0x3c')]){_0x15bb61[_0x61ec('0x3b')]=_[_0x61ec('0x3d')](_0x15bb61[_0x61ec('0x3b')],{'$or':_[_0x61ec('0x31')](_0x15bb61[_0x61ec('0x36')],function(_0x40c207){var _0x5b274f={};_0x5b274f[_0x40c207]={'$like':'%'+_0x37cf98[_0x61ec('0x32')][_0x61ec('0x3c')]+'%'};return _0x5b274f;})});}_0x15bb61=_[_0x61ec('0x3d')]({},_0x15bb61,_0x37cf98[_0x61ec('0x48')]);return _0x5ada2e[_0x61ec('0x52')](_0x15bb61);}})[_0x61ec('0x25')](function(_0x5488d5){if(_0x5488d5){_0x544784=_0x5488d5[_0x61ec('0x47')];if(!_0x37cf98[_0x61ec('0x32')][_0x61ec('0x37')](_0x61ec('0x38'))){_0x15bb61[_0x61ec('0x1d')]=qs['limit'](_0x37cf98['query'][_0x61ec('0x1d')]);_0x15bb61[_0x61ec('0x1b')]=qs['offset'](_0x37cf98[_0x61ec('0x32')][_0x61ec('0x1b')]);}return _0x5ada2e[_0x61ec('0x52')](_0x15bb61);}})['then'](function(_0x4c4406){if(_0x4c4406){return _0x4c4406?{'count':_0x544784,'rows':_0x4c4406}:null;}})[_0x61ec('0x25')](respondWithResult(_0x5c83cb,null))['catch'](handleError(_0x5c83cb,null));};