4f477eca63ff019f1eafdfdd0fc61310a03f7486
[motion2.git] / server / api / intSugarcrmField / intSugarcrmField.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 _0xffae=['reject','save','then','destroy','name','send','index','rawAttributes','fieldName','key','query','filters','model','fields','attributes','length','nolimit','sort','where','pick','merge','type','VIRTUAL','options','SugarcrmField','includeAll','include','findAll','rows','catch','show','params','keys','intersection','create','body','update','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','lodash','squel','jsforce','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','json'];(function(_0x16e57d,_0x2cb7ba){var _0x40239c=function(_0x3cc8f0){while(--_0x3cc8f0){_0x16e57d['push'](_0x16e57d['shift']());}};_0x40239c(++_0x2cb7ba);}(_0xffae,0x189));var _0xeffa=function(_0x53df84,_0x5eca44){_0x53df84=_0x53df84-0x0;var _0xb89ebc=_0xffae[_0x53df84];return _0xb89ebc;};'use strict';var emlformat=require(_0xeffa('0x0'));var rimraf=require(_0xeffa('0x1'));var zipdir=require(_0xeffa('0x2'));var jsonpatch=require(_0xeffa('0x3'));var rp=require(_0xeffa('0x4'));var moment=require(_0xeffa('0x5'));var BPromise=require(_0xeffa('0x6'));var Mustache=require('mustache');var util=require(_0xeffa('0x7'));var path=require('path');var sox=require(_0xeffa('0x8'));var csv=require(_0xeffa('0x9'));var ejs=require(_0xeffa('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xeffa('0xb'));var squel=require(_0xeffa('0xc'));var crypto=require('crypto');var jsforce=require(_0xeffa('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xeffa('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xeffa('0xe'));var authService=require(_0xeffa('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xeffa('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xeffa('0x11'))(_0xeffa('0x12'));var utils=require(_0xeffa('0x13'));var config=require(_0xeffa('0x14'));var licenseUtil=require(_0xeffa('0x15'));var db=require(_0xeffa('0x16'))['db'];function respondWithStatusCode(_0x4e20bd,_0x37013e){_0x37013e=_0x37013e||0xcc;return function(_0x57dad3){if(_0x57dad3){return _0x4e20bd[_0xeffa('0x17')](_0x37013e);}return _0x4e20bd[_0xeffa('0x18')](_0x37013e)[_0xeffa('0x19')]();};}function respondWithResult(_0x20cdd0,_0x15bfbc){_0x15bfbc=_0x15bfbc||0xc8;return function(_0x39d112){if(_0x39d112){return _0x20cdd0[_0xeffa('0x18')](_0x15bfbc)['json'](_0x39d112);}};}function respondWithFilteredResult(_0x1b1e60,_0x4475e8){return function(_0x5c01a3){if(_0x5c01a3){var _0x2e2d8d=typeof _0x4475e8[_0xeffa('0x1a')]==='undefined'&&typeof _0x4475e8[_0xeffa('0x1b')]===_0xeffa('0x1c');var _0x5049a4=_0x5c01a3[_0xeffa('0x1d')];var _0x514ab1=_0x2e2d8d?0x0:_0x4475e8[_0xeffa('0x1a')];var _0x1e8495=_0x2e2d8d?_0x5c01a3[_0xeffa('0x1d')]:_0x4475e8['offset']+_0x4475e8[_0xeffa('0x1b')];var _0x5a1862;if(_0x1e8495>=_0x5049a4){_0x1e8495=_0x5049a4;_0x5a1862=0xc8;}else{_0x5a1862=0xce;}_0x1b1e60[_0xeffa('0x18')](_0x5a1862);return _0x1b1e60[_0xeffa('0x1e')](_0xeffa('0x1f'),_0x514ab1+'-'+_0x1e8495+'/'+_0x5049a4)[_0xeffa('0x20')](_0x5c01a3);}return null;};}function patchUpdates(_0x46ce0f){return function(_0x4ddd7e){try{jsonpatch['apply'](_0x4ddd7e,_0x46ce0f,!![]);}catch(_0x51ec90){return BPromise[_0xeffa('0x21')](_0x51ec90);}return _0x4ddd7e[_0xeffa('0x22')]();};}function saveUpdates(_0x419bbf,_0x3f0194){return function(_0x5b274a){if(_0x5b274a){return _0x5b274a['update'](_0x419bbf)[_0xeffa('0x23')](function(_0x21cc06){return _0x21cc06;});}return null;};}function removeEntity(_0x129e23,_0x21faac){return function(_0x57eaa5){if(_0x57eaa5){return _0x57eaa5[_0xeffa('0x24')]()[_0xeffa('0x23')](function(){_0x129e23[_0xeffa('0x18')](0xcc)[_0xeffa('0x19')]();});}};}function handleEntityNotFound(_0x30955b,_0xe58ca){return function(_0x5b18f5){if(!_0x5b18f5){_0x30955b[_0xeffa('0x17')](0x194);}return _0x5b18f5;};}function handleError(_0x4a7135,_0x2c8f5f){_0x2c8f5f=_0x2c8f5f||0x1f4;return function(_0x2c2293){logger['error'](_0x2c2293['stack']);if(_0x2c2293[_0xeffa('0x25')]){delete _0x2c2293['name'];}_0x4a7135[_0xeffa('0x18')](_0x2c8f5f)[_0xeffa('0x26')](_0x2c2293);};}exports[_0xeffa('0x27')]=function(_0x43ce1e,_0x3910d1){var _0x2eb2cc={},_0x48b1cd={},_0x373ff8={'count':0x0,'rows':[]};var _0x15a7e9=_['map'](db['SugarcrmField'][_0xeffa('0x28')],function(_0x5bfa27){return{'name':_0x5bfa27[_0xeffa('0x29')],'type':_0x5bfa27['type'][_0xeffa('0x2a')]};});_0x48b1cd['model']=_['map'](_0x15a7e9,_0xeffa('0x25'));_0x48b1cd[_0xeffa('0x2b')]=_['keys'](_0x43ce1e[_0xeffa('0x2b')]);_0x48b1cd[_0xeffa('0x2c')]=_['intersection'](_0x48b1cd[_0xeffa('0x2d')],_0x48b1cd[_0xeffa('0x2b')]);_0x2eb2cc['attributes']=_['intersection'](_0x48b1cd[_0xeffa('0x2d')],qs[_0xeffa('0x2e')](_0x43ce1e[_0xeffa('0x2b')][_0xeffa('0x2e')]));_0x2eb2cc['attributes']=_0x2eb2cc[_0xeffa('0x2f')][_0xeffa('0x30')]?_0x2eb2cc['attributes']:_0x48b1cd[_0xeffa('0x2d')];if(!_0x43ce1e['query']['hasOwnProperty'](_0xeffa('0x31'))){_0x2eb2cc['limit']=qs[_0xeffa('0x1b')](_0x43ce1e[_0xeffa('0x2b')][_0xeffa('0x1b')]);_0x2eb2cc['offset']=qs[_0xeffa('0x1a')](_0x43ce1e['query'][_0xeffa('0x1a')]);}_0x2eb2cc['order']=qs[_0xeffa('0x32')](_0x43ce1e['query']['sort']);_0x2eb2cc[_0xeffa('0x33')]=qs[_0xeffa('0x2c')](_[_0xeffa('0x34')](_0x43ce1e[_0xeffa('0x2b')],_0x48b1cd[_0xeffa('0x2c')]),_0x15a7e9);if(_0x43ce1e[_0xeffa('0x2b')]['filter']){_0x2eb2cc['where']=_[_0xeffa('0x35')](_0x2eb2cc['where'],{'$or':_['map'](_0x15a7e9,function(_0x18d999){if(_0x18d999[_0xeffa('0x36')]!==_0xeffa('0x37')){var _0x39c4a2={};_0x39c4a2[_0x18d999[_0xeffa('0x25')]]={'$like':'%'+_0x43ce1e[_0xeffa('0x2b')]['filter']+'%'};return _0x39c4a2;}})});}_0x2eb2cc=_['merge']({},_0x2eb2cc,_0x43ce1e[_0xeffa('0x38')]);var _0x3cb538={'where':_0x2eb2cc['where']};return db[_0xeffa('0x39')]['count'](_0x3cb538)[_0xeffa('0x23')](function(_0x7e337d){_0x373ff8[_0xeffa('0x1d')]=_0x7e337d;if(_0x43ce1e['query'][_0xeffa('0x3a')]){_0x2eb2cc[_0xeffa('0x3b')]=[{'all':!![]}];}return db['SugarcrmField'][_0xeffa('0x3c')](_0x2eb2cc);})[_0xeffa('0x23')](function(_0x5c0cc1){_0x373ff8[_0xeffa('0x3d')]=_0x5c0cc1;return _0x373ff8;})['then'](respondWithFilteredResult(_0x3910d1,_0x2eb2cc))[_0xeffa('0x3e')](handleError(_0x3910d1,null));};exports[_0xeffa('0x3f')]=function(_0x4607c9,_0x7a388){var _0x198a77={'raw':!![],'where':{'id':_0x4607c9[_0xeffa('0x40')]['id']}},_0x31e0c6={};_0x31e0c6[_0xeffa('0x2d')]=_['keys'](db[_0xeffa('0x39')][_0xeffa('0x28')]);_0x31e0c6[_0xeffa('0x2b')]=_[_0xeffa('0x41')](_0x4607c9[_0xeffa('0x2b')]);_0x31e0c6['filters']=_['intersection'](_0x31e0c6['model'],_0x31e0c6[_0xeffa('0x2b')]);_0x198a77[_0xeffa('0x2f')]=_[_0xeffa('0x42')](_0x31e0c6['model'],qs[_0xeffa('0x2e')](_0x4607c9['query']['fields']));_0x198a77['attributes']=_0x198a77['attributes'][_0xeffa('0x30')]?_0x198a77[_0xeffa('0x2f')]:_0x31e0c6[_0xeffa('0x2d')];if(_0x4607c9[_0xeffa('0x2b')]['includeAll']){_0x198a77['include']=[{'all':!![]}];}_0x198a77=_['merge']({},_0x198a77,_0x4607c9[_0xeffa('0x38')]);return db['SugarcrmField']['find'](_0x198a77)['then'](handleEntityNotFound(_0x7a388,null))[_0xeffa('0x23')](respondWithResult(_0x7a388,null))[_0xeffa('0x3e')](handleError(_0x7a388,null));};exports['create']=function(_0xa370b4,_0x3f7e7d){return db['SugarcrmField'][_0xeffa('0x43')](_0xa370b4[_0xeffa('0x44')],{})['then'](respondWithResult(_0x3f7e7d,0xc9))[_0xeffa('0x3e')](handleError(_0x3f7e7d,null));};exports[_0xeffa('0x45')]=function(_0x14beb4,_0x4e2590){if(_0x14beb4[_0xeffa('0x44')]['id']){delete _0x14beb4[_0xeffa('0x44')]['id'];}return db['SugarcrmField'][_0xeffa('0x46')]({'where':{'id':_0x14beb4[_0xeffa('0x40')]['id']}})[_0xeffa('0x23')](handleEntityNotFound(_0x4e2590,null))[_0xeffa('0x23')](saveUpdates(_0x14beb4['body'],null))['then'](respondWithResult(_0x4e2590,null))['catch'](handleError(_0x4e2590,null));};exports[_0xeffa('0x24')]=function(_0x35b82b,_0xaf17ef){return db['SugarcrmField'][_0xeffa('0x46')]({'where':{'id':_0x35b82b[_0xeffa('0x40')]['id']}})[_0xeffa('0x23')](handleEntityNotFound(_0xaf17ef,null))['then'](removeEntity(_0xaf17ef,null))[_0xeffa('0x3e')](handleError(_0xaf17ef,null));};