38d33a57408bd221e718d5fe682bd199ed7f0bf2
[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 _0x1987=['apply','save','then','end','error','stack','name','send','index','Dynamics365Field','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','type','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','update','destroy','rimraf','fast-json-patch','bluebird','mustache','to-csv','ejs','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json'];(function(_0x4a519e,_0x5be3c4){var _0x1c7154=function(_0x2a0bde){while(--_0x2a0bde){_0x4a519e['push'](_0x4a519e['shift']());}};_0x1c7154(++_0x5be3c4);}(_0x1987,0x107));var _0x7198=function(_0x43f756,_0xae9f58){_0x43f756=_0x43f756-0x0;var _0x5ba710=_0x1987[_0x43f756];return _0x5ba710;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x7198('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7198('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x7198('0x2'));var Mustache=require(_0x7198('0x3'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x7198('0x4'));var ejs=require(_0x7198('0x5'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7198('0x6'));var squel=require('squel');var crypto=require(_0x7198('0x7'));var jsforce=require(_0x7198('0x8'));var deskjs=require('desk.js');var toCsv=require(_0x7198('0x4'));var querystring=require(_0x7198('0x9'));var Papa=require(_0x7198('0xa'));var Redis=require(_0x7198('0xb'));var authService=require(_0x7198('0xc'));var qs=require(_0x7198('0xd'));var as=require(_0x7198('0xe'));var hardwareService=require(_0x7198('0xf'));var logger=require(_0x7198('0x10'))(_0x7198('0x11'));var utils=require('../../config/utils');var config=require(_0x7198('0x12'));var licenseUtil=require(_0x7198('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x7858e3,_0x303295){_0x303295=_0x303295||0xcc;return function(_0x42bf77){if(_0x42bf77){return _0x7858e3[_0x7198('0x14')](_0x303295);}return _0x7858e3[_0x7198('0x15')](_0x303295)['end']();};}function respondWithResult(_0xcf4d28,_0x4db462){_0x4db462=_0x4db462||0xc8;return function(_0x4ab0f9){if(_0x4ab0f9){return _0xcf4d28[_0x7198('0x15')](_0x4db462)['json'](_0x4ab0f9);}};}function respondWithFilteredResult(_0x453257,_0x277a71){return function(_0x197bac){if(_0x197bac){var _0x47a891=typeof _0x277a71[_0x7198('0x16')]===_0x7198('0x17')&&typeof _0x277a71[_0x7198('0x18')]===_0x7198('0x17');var _0x5dbb84=_0x197bac[_0x7198('0x19')];var _0x1d1a76=_0x47a891?0x0:_0x277a71[_0x7198('0x16')];var _0x3579b3=_0x47a891?_0x197bac['count']:_0x277a71[_0x7198('0x16')]+_0x277a71[_0x7198('0x18')];var _0x1a4b72;if(_0x3579b3>=_0x5dbb84){_0x3579b3=_0x5dbb84;_0x1a4b72=0xc8;}else{_0x1a4b72=0xce;}_0x453257[_0x7198('0x15')](_0x1a4b72);return _0x453257[_0x7198('0x1a')](_0x7198('0x1b'),_0x1d1a76+'-'+_0x3579b3+'/'+_0x5dbb84)[_0x7198('0x1c')](_0x197bac);}return null;};}function patchUpdates(_0x5c7f31){return function(_0x5f3338){try{jsonpatch[_0x7198('0x1d')](_0x5f3338,_0x5c7f31,!![]);}catch(_0x5b2c9f){return BPromise['reject'](_0x5b2c9f);}return _0x5f3338[_0x7198('0x1e')]();};}function saveUpdates(_0x593183,_0x15dd82){return function(_0x5ec757){if(_0x5ec757){return _0x5ec757['update'](_0x593183)['then'](function(_0x232e6e){return _0x232e6e;});}return null;};}function removeEntity(_0x3de796,_0x1fae08){return function(_0x1506a5){if(_0x1506a5){return _0x1506a5['destroy']()[_0x7198('0x1f')](function(){_0x3de796['status'](0xcc)[_0x7198('0x20')]();});}};}function handleEntityNotFound(_0x8605e0,_0x2d2e0f){return function(_0x4850a4){if(!_0x4850a4){_0x8605e0[_0x7198('0x14')](0x194);}return _0x4850a4;};}function handleError(_0x5f3e3f,_0x3b89a2){_0x3b89a2=_0x3b89a2||0x1f4;return function(_0x2f8a82){logger[_0x7198('0x21')](_0x2f8a82[_0x7198('0x22')]);if(_0x2f8a82['name']){delete _0x2f8a82[_0x7198('0x23')];}_0x5f3e3f[_0x7198('0x15')](_0x3b89a2)[_0x7198('0x24')](_0x2f8a82);};}exports[_0x7198('0x25')]=function(_0x492c39,_0x54cf7c){var _0x41ecd9={},_0x3b208a={},_0x26f321={'count':0x0,'rows':[]};var _0xb6b910=_['map'](db[_0x7198('0x26')][_0x7198('0x27')],function(_0x549231){return{'name':_0x549231[_0x7198('0x28')],'type':_0x549231['type'][_0x7198('0x29')]};});_0x3b208a[_0x7198('0x2a')]=_[_0x7198('0x2b')](_0xb6b910,_0x7198('0x23'));_0x3b208a[_0x7198('0x2c')]=_[_0x7198('0x2d')](_0x492c39[_0x7198('0x2c')]);_0x3b208a[_0x7198('0x2e')]=_['intersection'](_0x3b208a[_0x7198('0x2a')],_0x3b208a[_0x7198('0x2c')]);_0x41ecd9['attributes']=_[_0x7198('0x2f')](_0x3b208a[_0x7198('0x2a')],qs[_0x7198('0x30')](_0x492c39[_0x7198('0x2c')][_0x7198('0x30')]));_0x41ecd9[_0x7198('0x31')]=_0x41ecd9['attributes'][_0x7198('0x32')]?_0x41ecd9['attributes']:_0x3b208a['model'];if(!_0x492c39[_0x7198('0x2c')][_0x7198('0x33')]('nolimit')){_0x41ecd9['limit']=qs[_0x7198('0x18')](_0x492c39[_0x7198('0x2c')][_0x7198('0x18')]);_0x41ecd9[_0x7198('0x16')]=qs[_0x7198('0x16')](_0x492c39['query'][_0x7198('0x16')]);}_0x41ecd9[_0x7198('0x34')]=qs['sort'](_0x492c39[_0x7198('0x2c')][_0x7198('0x35')]);_0x41ecd9[_0x7198('0x36')]=qs['filters'](_[_0x7198('0x37')](_0x492c39[_0x7198('0x2c')],_0x3b208a[_0x7198('0x2e')]),_0xb6b910);if(_0x492c39[_0x7198('0x2c')][_0x7198('0x38')]){_0x41ecd9[_0x7198('0x36')]=_['merge'](_0x41ecd9[_0x7198('0x36')],{'$or':_[_0x7198('0x2b')](_0xb6b910,function(_0x3c80bd){if(_0x3c80bd[_0x7198('0x39')]!==_0x7198('0x3a')){var _0x524907={};_0x524907[_0x3c80bd[_0x7198('0x23')]]={'$like':'%'+_0x492c39[_0x7198('0x2c')][_0x7198('0x38')]+'%'};return _0x524907;}})});}_0x41ecd9=_[_0x7198('0x3b')]({},_0x41ecd9,_0x492c39[_0x7198('0x3c')]);var _0x9f52c6={'where':_0x41ecd9['where']};return db[_0x7198('0x26')][_0x7198('0x19')](_0x9f52c6)[_0x7198('0x1f')](function(_0x5d8f0d){_0x26f321['count']=_0x5d8f0d;if(_0x492c39[_0x7198('0x2c')][_0x7198('0x3d')]){_0x41ecd9[_0x7198('0x3e')]=[{'all':!![]}];}return db[_0x7198('0x26')][_0x7198('0x3f')](_0x41ecd9);})[_0x7198('0x1f')](function(_0xcd8ade){_0x26f321[_0x7198('0x40')]=_0xcd8ade;return _0x26f321;})['then'](respondWithFilteredResult(_0x54cf7c,_0x41ecd9))[_0x7198('0x41')](handleError(_0x54cf7c,null));};exports[_0x7198('0x42')]=function(_0x212b0b,_0x52b9b4){var _0x58c22a={'raw':!![],'where':{'id':_0x212b0b[_0x7198('0x43')]['id']}},_0x1b9015={};_0x1b9015[_0x7198('0x2a')]=_[_0x7198('0x2d')](db[_0x7198('0x26')][_0x7198('0x27')]);_0x1b9015[_0x7198('0x2c')]=_[_0x7198('0x2d')](_0x212b0b[_0x7198('0x2c')]);_0x1b9015[_0x7198('0x2e')]=_[_0x7198('0x2f')](_0x1b9015[_0x7198('0x2a')],_0x1b9015[_0x7198('0x2c')]);_0x58c22a[_0x7198('0x31')]=_[_0x7198('0x2f')](_0x1b9015[_0x7198('0x2a')],qs[_0x7198('0x30')](_0x212b0b[_0x7198('0x2c')]['fields']));_0x58c22a[_0x7198('0x31')]=_0x58c22a[_0x7198('0x31')]['length']?_0x58c22a[_0x7198('0x31')]:_0x1b9015[_0x7198('0x2a')];if(_0x212b0b[_0x7198('0x2c')][_0x7198('0x3d')]){_0x58c22a[_0x7198('0x3e')]=[{'all':!![]}];}_0x58c22a=_[_0x7198('0x3b')]({},_0x58c22a,_0x212b0b['options']);return db[_0x7198('0x26')][_0x7198('0x44')](_0x58c22a)['then'](handleEntityNotFound(_0x52b9b4,null))[_0x7198('0x1f')](respondWithResult(_0x52b9b4,null))['catch'](handleError(_0x52b9b4,null));};exports[_0x7198('0x45')]=function(_0x2282c8,_0x35620b){return db[_0x7198('0x26')][_0x7198('0x45')](_0x2282c8[_0x7198('0x46')],{})[_0x7198('0x1f')](respondWithResult(_0x35620b,0xc9))[_0x7198('0x41')](handleError(_0x35620b,null));};exports[_0x7198('0x47')]=function(_0x59f883,_0x2583a1){if(_0x59f883[_0x7198('0x46')]['id']){delete _0x59f883[_0x7198('0x46')]['id'];}return db[_0x7198('0x26')][_0x7198('0x44')]({'where':{'id':_0x59f883[_0x7198('0x43')]['id']}})[_0x7198('0x1f')](handleEntityNotFound(_0x2583a1,null))[_0x7198('0x1f')](saveUpdates(_0x59f883['body'],null))['then'](respondWithResult(_0x2583a1,null))[_0x7198('0x41')](handleError(_0x2583a1,null));};exports[_0x7198('0x48')]=function(_0x3aacab,_0x35682d){return db[_0x7198('0x26')][_0x7198('0x44')]({'where':{'id':_0x3aacab[_0x7198('0x43')]['id']}})[_0x7198('0x1f')](handleEntityNotFound(_0x35682d,null))[_0x7198('0x1f')](removeEntity(_0x35682d,null))[_0x7198('0x41')](handleError(_0x35682d,null));};