7d4f6aa10ced5a78c17354df9489f266ea5b6b11
[motion2.git] / server / api / intVtigerField / intVtigerField.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 _0xcf18=['moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','offset','count','set','Content-Range','apply','reject','save','then','error','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','where','filters','filter','merge','options','VtigerField','includeAll','include','findAll','rows','catch','show','params','create','update','body','find','destroy','eml-format','rimraf','fast-json-patch','request-promise'];(function(_0x22ed4b,_0x20609c){var _0x4e9cf6=function(_0x3a2de1){while(--_0x3a2de1){_0x22ed4b['push'](_0x22ed4b['shift']());}};_0x4e9cf6(++_0x20609c);}(_0xcf18,0x128));var _0x8cf1=function(_0x1579bc,_0x13365b){_0x1579bc=_0x1579bc-0x0;var _0x3c5732=_0xcf18[_0x1579bc];return _0x3c5732;};'use strict';var emlformat=require(_0x8cf1('0x0'));var rimraf=require(_0x8cf1('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8cf1('0x2'));var rp=require(_0x8cf1('0x3'));var moment=require(_0x8cf1('0x4'));var BPromise=require(_0x8cf1('0x5'));var Mustache=require(_0x8cf1('0x6'));var util=require('util');var path=require(_0x8cf1('0x7'));var sox=require(_0x8cf1('0x8'));var csv=require(_0x8cf1('0x9'));var ejs=require(_0x8cf1('0xa'));var fs=require('fs');var fs_extra=require(_0x8cf1('0xb'));var _=require(_0x8cf1('0xc'));var squel=require(_0x8cf1('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x8cf1('0x9'));var querystring=require(_0x8cf1('0xe'));var Papa=require(_0x8cf1('0xf'));var Redis=require(_0x8cf1('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x8cf1('0x11'));var as=require(_0x8cf1('0x12'));var hardwareService=require(_0x8cf1('0x13'));var logger=require(_0x8cf1('0x14'))('api');var utils=require(_0x8cf1('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x8cf1('0x16'));var db=require(_0x8cf1('0x17'))['db'];function respondWithStatusCode(_0x5781cc,_0x5907f3){_0x5907f3=_0x5907f3||0xcc;return function(_0x4e1581){if(_0x4e1581){return _0x5781cc[_0x8cf1('0x18')](_0x5907f3);}return _0x5781cc[_0x8cf1('0x19')](_0x5907f3)[_0x8cf1('0x1a')]();};}function respondWithResult(_0xd6da4,_0xc46aa2){_0xc46aa2=_0xc46aa2||0xc8;return function(_0x3c6d81){if(_0x3c6d81){return _0xd6da4[_0x8cf1('0x19')](_0xc46aa2)[_0x8cf1('0x1b')](_0x3c6d81);}};}function respondWithFilteredResult(_0x393207,_0x1162d5){return function(_0x4c44f7){if(_0x4c44f7){var _0x3f2ea8=typeof _0x1162d5['offset']===_0x8cf1('0x1c')&&typeof _0x1162d5[_0x8cf1('0x1d')]===_0x8cf1('0x1c');var _0x963b50=_0x4c44f7['count'];var _0x24067c=_0x3f2ea8?0x0:_0x1162d5[_0x8cf1('0x1e')];var _0x1a7295=_0x3f2ea8?_0x4c44f7[_0x8cf1('0x1f')]:_0x1162d5[_0x8cf1('0x1e')]+_0x1162d5['limit'];var _0x44a3c6;if(_0x1a7295>=_0x963b50){_0x1a7295=_0x963b50;_0x44a3c6=0xc8;}else{_0x44a3c6=0xce;}_0x393207['status'](_0x44a3c6);return _0x393207[_0x8cf1('0x20')](_0x8cf1('0x21'),_0x24067c+'-'+_0x1a7295+'/'+_0x963b50)[_0x8cf1('0x1b')](_0x4c44f7);}return null;};}function patchUpdates(_0x29bfd3){return function(_0x5e22b4){try{jsonpatch[_0x8cf1('0x22')](_0x5e22b4,_0x29bfd3,!![]);}catch(_0x11a2fb){return BPromise[_0x8cf1('0x23')](_0x11a2fb);}return _0x5e22b4[_0x8cf1('0x24')]();};}function saveUpdates(_0x4f4506,_0x3a4140){return function(_0x25029f){if(_0x25029f){return _0x25029f['update'](_0x4f4506)[_0x8cf1('0x25')](function(_0x223df3){return _0x223df3;});}return null;};}function removeEntity(_0x2ad00e,_0x199c8e){return function(_0x17dc9d){if(_0x17dc9d){return _0x17dc9d['destroy']()[_0x8cf1('0x25')](function(){_0x2ad00e[_0x8cf1('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4d024a,_0x23f2ae){return function(_0x375ba2){if(!_0x375ba2){_0x4d024a['sendStatus'](0x194);}return _0x375ba2;};}function handleError(_0x5c526c,_0x4a54bf){_0x4a54bf=_0x4a54bf||0x1f4;return function(_0x319a13){logger[_0x8cf1('0x26')](_0x319a13['stack']);if(_0x319a13[_0x8cf1('0x27')]){delete _0x319a13[_0x8cf1('0x27')];}_0x5c526c[_0x8cf1('0x19')](_0x4a54bf)[_0x8cf1('0x28')](_0x319a13);};}exports[_0x8cf1('0x29')]=function(_0x2df65a,_0x592bf9){var _0x459753={},_0x5a57dc={},_0x5c0c9b={'count':0x0,'rows':[]};var _0xef5e69=_[_0x8cf1('0x2a')](db['VtigerField'][_0x8cf1('0x2b')],function(_0x289bf3){return{'name':_0x289bf3[_0x8cf1('0x2c')],'type':_0x289bf3[_0x8cf1('0x2d')][_0x8cf1('0x2e')]};});_0x5a57dc[_0x8cf1('0x2f')]=_['map'](_0xef5e69,'name');_0x5a57dc[_0x8cf1('0x30')]=_[_0x8cf1('0x31')](_0x2df65a[_0x8cf1('0x30')]);_0x5a57dc['filters']=_[_0x8cf1('0x32')](_0x5a57dc[_0x8cf1('0x2f')],_0x5a57dc['query']);_0x459753[_0x8cf1('0x33')]=_[_0x8cf1('0x32')](_0x5a57dc[_0x8cf1('0x2f')],qs[_0x8cf1('0x34')](_0x2df65a[_0x8cf1('0x30')][_0x8cf1('0x34')]));_0x459753['attributes']=_0x459753[_0x8cf1('0x33')][_0x8cf1('0x35')]?_0x459753[_0x8cf1('0x33')]:_0x5a57dc[_0x8cf1('0x2f')];if(!_0x2df65a[_0x8cf1('0x30')]['hasOwnProperty'](_0x8cf1('0x36'))){_0x459753[_0x8cf1('0x1d')]=qs[_0x8cf1('0x1d')](_0x2df65a[_0x8cf1('0x30')][_0x8cf1('0x1d')]);_0x459753['offset']=qs[_0x8cf1('0x1e')](_0x2df65a['query']['offset']);}_0x459753[_0x8cf1('0x37')]=qs['sort'](_0x2df65a['query'][_0x8cf1('0x38')]);_0x459753[_0x8cf1('0x39')]=qs[_0x8cf1('0x3a')](_['pick'](_0x2df65a['query'],_0x5a57dc[_0x8cf1('0x3a')]),_0xef5e69);if(_0x2df65a[_0x8cf1('0x30')][_0x8cf1('0x3b')]){_0x459753[_0x8cf1('0x39')]=_[_0x8cf1('0x3c')](_0x459753[_0x8cf1('0x39')],{'$or':_[_0x8cf1('0x2a')](_0xef5e69,function(_0x2e349c){if(_0x2e349c[_0x8cf1('0x2d')]!=='VIRTUAL'){var _0x3e6ab0={};_0x3e6ab0[_0x2e349c['name']]={'$like':'%'+_0x2df65a[_0x8cf1('0x30')][_0x8cf1('0x3b')]+'%'};return _0x3e6ab0;}})});}_0x459753=_['merge']({},_0x459753,_0x2df65a[_0x8cf1('0x3d')]);var _0x5d9725={'where':_0x459753[_0x8cf1('0x39')]};return db[_0x8cf1('0x3e')][_0x8cf1('0x1f')](_0x5d9725)['then'](function(_0x5c86ab){_0x5c0c9b['count']=_0x5c86ab;if(_0x2df65a[_0x8cf1('0x30')][_0x8cf1('0x3f')]){_0x459753[_0x8cf1('0x40')]=[{'all':!![]}];}return db[_0x8cf1('0x3e')][_0x8cf1('0x41')](_0x459753);})[_0x8cf1('0x25')](function(_0x29de37){_0x5c0c9b[_0x8cf1('0x42')]=_0x29de37;return _0x5c0c9b;})['then'](respondWithFilteredResult(_0x592bf9,_0x459753))[_0x8cf1('0x43')](handleError(_0x592bf9,null));};exports[_0x8cf1('0x44')]=function(_0x2c690d,_0x2b91a8){var _0x222207={'raw':!![],'where':{'id':_0x2c690d[_0x8cf1('0x45')]['id']}},_0x44ec5a={};_0x44ec5a[_0x8cf1('0x2f')]=_['keys'](db[_0x8cf1('0x3e')][_0x8cf1('0x2b')]);_0x44ec5a[_0x8cf1('0x30')]=_[_0x8cf1('0x31')](_0x2c690d['query']);_0x44ec5a[_0x8cf1('0x3a')]=_[_0x8cf1('0x32')](_0x44ec5a[_0x8cf1('0x2f')],_0x44ec5a['query']);_0x222207[_0x8cf1('0x33')]=_[_0x8cf1('0x32')](_0x44ec5a['model'],qs[_0x8cf1('0x34')](_0x2c690d[_0x8cf1('0x30')][_0x8cf1('0x34')]));_0x222207[_0x8cf1('0x33')]=_0x222207[_0x8cf1('0x33')][_0x8cf1('0x35')]?_0x222207['attributes']:_0x44ec5a['model'];if(_0x2c690d[_0x8cf1('0x30')]['includeAll']){_0x222207[_0x8cf1('0x40')]=[{'all':!![]}];}_0x222207=_[_0x8cf1('0x3c')]({},_0x222207,_0x2c690d[_0x8cf1('0x3d')]);return db['VtigerField']['find'](_0x222207)[_0x8cf1('0x25')](handleEntityNotFound(_0x2b91a8,null))[_0x8cf1('0x25')](respondWithResult(_0x2b91a8,null))[_0x8cf1('0x43')](handleError(_0x2b91a8,null));};exports[_0x8cf1('0x46')]=function(_0x596bce,_0x5981ff){return db[_0x8cf1('0x3e')][_0x8cf1('0x46')](_0x596bce['body'],{})[_0x8cf1('0x25')](respondWithResult(_0x5981ff,0xc9))['catch'](handleError(_0x5981ff,null));};exports[_0x8cf1('0x47')]=function(_0x5c7351,_0xa886ed){if(_0x5c7351[_0x8cf1('0x48')]['id']){delete _0x5c7351['body']['id'];}return db[_0x8cf1('0x3e')][_0x8cf1('0x49')]({'where':{'id':_0x5c7351[_0x8cf1('0x45')]['id']}})[_0x8cf1('0x25')](handleEntityNotFound(_0xa886ed,null))['then'](saveUpdates(_0x5c7351[_0x8cf1('0x48')],null))['then'](respondWithResult(_0xa886ed,null))[_0x8cf1('0x43')](handleError(_0xa886ed,null));};exports[_0x8cf1('0x4a')]=function(_0x14c1a7,_0x25641f){return db[_0x8cf1('0x3e')]['find']({'where':{'id':_0x14c1a7[_0x8cf1('0x45')]['id']}})[_0x8cf1('0x25')](handleEntityNotFound(_0x25641f,null))[_0x8cf1('0x25')](removeEntity(_0x25641f,null))[_0x8cf1('0x43')](handleError(_0x25641f,null));};