22250af356d6c7e1e42f6778971c99824433a713
[motion2.git] / server / api / intDynamics365Field / intDynamics365Field.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 _0x3e70=['Dynamics365Field','rawAttributes','model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','type','VIRTUAL','include','rows','catch','includeAll','options','find','create','body','params','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','lodash','squel','crypto','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update','destroy','then','status','error','name','map'];(function(_0x46aff0,_0x122890){var _0x9d78cf=function(_0x3f14cb){while(--_0x3f14cb){_0x46aff0['push'](_0x46aff0['shift']());}};_0x9d78cf(++_0x122890);}(_0x3e70,0xa4));var _0x03e7=function(_0x30e92f,_0x150c89){_0x30e92f=_0x30e92f-0x0;var _0x145a46=_0x3e70[_0x30e92f];return _0x145a46;};'use strict';var emlformat=require(_0x03e7('0x0'));var rimraf=require(_0x03e7('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x03e7('0x2'));var rp=require(_0x03e7('0x3'));var moment=require(_0x03e7('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x03e7('0x5'));var util=require(_0x03e7('0x6'));var path=require(_0x03e7('0x7'));var sox=require(_0x03e7('0x8'));var csv=require(_0x03e7('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x03e7('0xa'));var squel=require(_0x03e7('0xb'));var crypto=require(_0x03e7('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x03e7('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x03e7('0xd'));var authService=require(_0x03e7('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x03e7('0xf'));var hardwareService=require(_0x03e7('0x10'));var logger=require('../../config/logger')(_0x03e7('0x11'));var utils=require(_0x03e7('0x12'));var config=require(_0x03e7('0x13'));var licenseUtil=require(_0x03e7('0x14'));var db=require(_0x03e7('0x15'))['db'];function respondWithStatusCode(_0xe8dc1d,_0x37983e){_0x37983e=_0x37983e||0xcc;return function(_0x486ace){if(_0x486ace){return _0xe8dc1d[_0x03e7('0x16')](_0x37983e);}return _0xe8dc1d['status'](_0x37983e)[_0x03e7('0x17')]();};}function respondWithResult(_0x3a292d,_0x37e78b){_0x37e78b=_0x37e78b||0xc8;return function(_0x1282b9){if(_0x1282b9){return _0x3a292d['status'](_0x37e78b)[_0x03e7('0x18')](_0x1282b9);}};}function respondWithFilteredResult(_0x5b9228,_0x5c02ae){return function(_0x53cc0c){if(_0x53cc0c){var _0x1b6d8f=typeof _0x5c02ae['offset']===_0x03e7('0x19')&&typeof _0x5c02ae[_0x03e7('0x1a')]==='undefined';var _0x4f44ce=_0x53cc0c[_0x03e7('0x1b')];var _0x57ec94=_0x1b6d8f?0x0:_0x5c02ae[_0x03e7('0x1c')];var _0x3633a6=_0x1b6d8f?_0x53cc0c[_0x03e7('0x1b')]:_0x5c02ae['offset']+_0x5c02ae['limit'];var _0x19b63e;if(_0x3633a6>=_0x4f44ce){_0x3633a6=_0x4f44ce;_0x19b63e=0xc8;}else{_0x19b63e=0xce;}_0x5b9228['status'](_0x19b63e);return _0x5b9228[_0x03e7('0x1d')](_0x03e7('0x1e'),_0x57ec94+'-'+_0x3633a6+'/'+_0x4f44ce)['json'](_0x53cc0c);}return null;};}function patchUpdates(_0x10c8ff){return function(_0x3f6232){try{jsonpatch[_0x03e7('0x1f')](_0x3f6232,_0x10c8ff,!![]);}catch(_0x4a6b82){return BPromise[_0x03e7('0x20')](_0x4a6b82);}return _0x3f6232['save']();};}function saveUpdates(_0x145af6,_0x2c3134){return function(_0x3ac5f9){if(_0x3ac5f9){return _0x3ac5f9[_0x03e7('0x21')](_0x145af6)['then'](function(_0x1d1741){return _0x1d1741;});}return null;};}function removeEntity(_0x5df9de,_0x5c9bd9){return function(_0x48c338){if(_0x48c338){return _0x48c338[_0x03e7('0x22')]()[_0x03e7('0x23')](function(){_0x5df9de[_0x03e7('0x24')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5a609b,_0x5ecfe2){return function(_0x2db717){if(!_0x2db717){_0x5a609b[_0x03e7('0x16')](0x194);}return _0x2db717;};}function handleError(_0x5057b1,_0x664d49){_0x664d49=_0x664d49||0x1f4;return function(_0x4db5d6){logger[_0x03e7('0x25')](_0x4db5d6['stack']);if(_0x4db5d6[_0x03e7('0x26')]){delete _0x4db5d6[_0x03e7('0x26')];}_0x5057b1[_0x03e7('0x24')](_0x664d49)['send'](_0x4db5d6);};}exports['index']=function(_0xa2cbc7,_0x50f462){var _0x4bed1f={},_0x2c6228={},_0x6110e9={'count':0x0,'rows':[]};var _0x26ac7f=_[_0x03e7('0x27')](db[_0x03e7('0x28')][_0x03e7('0x29')],function(_0x1cb12e){return{'name':_0x1cb12e['fieldName'],'type':_0x1cb12e['type']['key']};});_0x2c6228[_0x03e7('0x2a')]=_[_0x03e7('0x27')](_0x26ac7f,'name');_0x2c6228[_0x03e7('0x2b')]=_[_0x03e7('0x2c')](_0xa2cbc7[_0x03e7('0x2b')]);_0x2c6228['filters']=_[_0x03e7('0x2d')](_0x2c6228[_0x03e7('0x2a')],_0x2c6228[_0x03e7('0x2b')]);_0x4bed1f[_0x03e7('0x2e')]=_[_0x03e7('0x2d')](_0x2c6228[_0x03e7('0x2a')],qs['fields'](_0xa2cbc7[_0x03e7('0x2b')][_0x03e7('0x2f')]));_0x4bed1f['attributes']=_0x4bed1f[_0x03e7('0x2e')][_0x03e7('0x30')]?_0x4bed1f[_0x03e7('0x2e')]:_0x2c6228[_0x03e7('0x2a')];if(!_0xa2cbc7['query']['hasOwnProperty'](_0x03e7('0x31'))){_0x4bed1f[_0x03e7('0x1a')]=qs[_0x03e7('0x1a')](_0xa2cbc7['query']['limit']);_0x4bed1f[_0x03e7('0x1c')]=qs[_0x03e7('0x1c')](_0xa2cbc7[_0x03e7('0x2b')][_0x03e7('0x1c')]);}_0x4bed1f[_0x03e7('0x32')]=qs[_0x03e7('0x33')](_0xa2cbc7[_0x03e7('0x2b')][_0x03e7('0x33')]);_0x4bed1f[_0x03e7('0x34')]=qs[_0x03e7('0x35')](_[_0x03e7('0x36')](_0xa2cbc7[_0x03e7('0x2b')],_0x2c6228['filters']),_0x26ac7f);if(_0xa2cbc7[_0x03e7('0x2b')][_0x03e7('0x37')]){_0x4bed1f[_0x03e7('0x34')]=_[_0x03e7('0x38')](_0x4bed1f[_0x03e7('0x34')],{'$or':_[_0x03e7('0x27')](_0x26ac7f,function(_0x2791e6){if(_0x2791e6[_0x03e7('0x39')]!==_0x03e7('0x3a')){var _0x23a7ab={};_0x23a7ab[_0x2791e6['name']]={'$like':'%'+_0xa2cbc7[_0x03e7('0x2b')]['filter']+'%'};return _0x23a7ab;}})});}_0x4bed1f=_['merge']({},_0x4bed1f,_0xa2cbc7['options']);var _0x7844c5={'where':_0x4bed1f[_0x03e7('0x34')]};return db['Dynamics365Field']['count'](_0x7844c5)[_0x03e7('0x23')](function(_0x17ef37){_0x6110e9['count']=_0x17ef37;if(_0xa2cbc7[_0x03e7('0x2b')]['includeAll']){_0x4bed1f[_0x03e7('0x3b')]=[{'all':!![]}];}return db[_0x03e7('0x28')]['findAll'](_0x4bed1f);})[_0x03e7('0x23')](function(_0x46e517){_0x6110e9[_0x03e7('0x3c')]=_0x46e517;return _0x6110e9;})[_0x03e7('0x23')](respondWithFilteredResult(_0x50f462,_0x4bed1f))[_0x03e7('0x3d')](handleError(_0x50f462,null));};exports['show']=function(_0x524874,_0x5d4690){var _0x338dd5={'raw':!![],'where':{'id':_0x524874['params']['id']}},_0x2661cd={};_0x2661cd[_0x03e7('0x2a')]=_[_0x03e7('0x2c')](db[_0x03e7('0x28')]['rawAttributes']);_0x2661cd[_0x03e7('0x2b')]=_[_0x03e7('0x2c')](_0x524874[_0x03e7('0x2b')]);_0x2661cd['filters']=_['intersection'](_0x2661cd['model'],_0x2661cd[_0x03e7('0x2b')]);_0x338dd5[_0x03e7('0x2e')]=_['intersection'](_0x2661cd[_0x03e7('0x2a')],qs[_0x03e7('0x2f')](_0x524874[_0x03e7('0x2b')][_0x03e7('0x2f')]));_0x338dd5[_0x03e7('0x2e')]=_0x338dd5[_0x03e7('0x2e')]['length']?_0x338dd5[_0x03e7('0x2e')]:_0x2661cd[_0x03e7('0x2a')];if(_0x524874[_0x03e7('0x2b')][_0x03e7('0x3e')]){_0x338dd5[_0x03e7('0x3b')]=[{'all':!![]}];}_0x338dd5=_[_0x03e7('0x38')]({},_0x338dd5,_0x524874[_0x03e7('0x3f')]);return db['Dynamics365Field'][_0x03e7('0x40')](_0x338dd5)['then'](handleEntityNotFound(_0x5d4690,null))['then'](respondWithResult(_0x5d4690,null))[_0x03e7('0x3d')](handleError(_0x5d4690,null));};exports[_0x03e7('0x41')]=function(_0x355b80,_0x15bdcd){return db[_0x03e7('0x28')][_0x03e7('0x41')](_0x355b80[_0x03e7('0x42')],{})[_0x03e7('0x23')](respondWithResult(_0x15bdcd,0xc9))[_0x03e7('0x3d')](handleError(_0x15bdcd,null));};exports[_0x03e7('0x21')]=function(_0x1c02c6,_0x2fd8f4){if(_0x1c02c6[_0x03e7('0x42')]['id']){delete _0x1c02c6['body']['id'];}return db[_0x03e7('0x28')][_0x03e7('0x40')]({'where':{'id':_0x1c02c6[_0x03e7('0x43')]['id']}})[_0x03e7('0x23')](handleEntityNotFound(_0x2fd8f4,null))[_0x03e7('0x23')](saveUpdates(_0x1c02c6['body'],null))[_0x03e7('0x23')](respondWithResult(_0x2fd8f4,null))[_0x03e7('0x3d')](handleError(_0x2fd8f4,null));};exports[_0x03e7('0x22')]=function(_0x42d121,_0x418347){return db[_0x03e7('0x28')][_0x03e7('0x40')]({'where':{'id':_0x42d121['params']['id']}})[_0x03e7('0x23')](handleEntityNotFound(_0x418347,null))['then'](removeEntity(_0x418347,null))[_0x03e7('0x3d')](handleError(_0x418347,null));};