758809a94b55dbcf0570bd6ccac5487c2bd896d9
[motion2.git] / server / api / cmCustomField / cmCustomField.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 _0x7e2b=['INTEGER','BOOLEAN','defaultValue','queryInterface','format','cf_%d','rimraf','zip-dir','request-promise','bluebird','mustache','util','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','undefined','limit','count','json','apply','reject','save','update','then','destroy','stack','name','send','map','CmCustomField','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','model','find','body','create','sequelize','transaction','text','Sequelize','TEXT'];(function(_0x22123d,_0x45ae06){var _0xeabce1=function(_0x239cae){while(--_0x239cae){_0x22123d['push'](_0x22123d['shift']());}};_0xeabce1(++_0x45ae06);}(_0x7e2b,0x1a0));var _0xb7e2=function(_0x136ed6,_0x1df16d){_0x136ed6=_0x136ed6-0x0;var _0x3bbfb9=_0x7e2b[_0x136ed6];return _0x3bbfb9;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb7e2('0x0'));var zipdir=require(_0xb7e2('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb7e2('0x2'));var moment=require('moment');var BPromise=require(_0xb7e2('0x3'));var Mustache=require(_0xb7e2('0x4'));var util=require(_0xb7e2('0x5'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb7e2('0x6'));var _=require(_0xb7e2('0x7'));var squel=require(_0xb7e2('0x8'));var crypto=require(_0xb7e2('0x9'));var jsforce=require(_0xb7e2('0xa'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xb7e2('0xb'));var Papa=require(_0xb7e2('0xc'));var Redis=require(_0xb7e2('0xd'));var authService=require(_0xb7e2('0xe'));var qs=require(_0xb7e2('0xf'));var as=require(_0xb7e2('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xb7e2('0x11'));var utils=require('../../config/utils');var config=require(_0xb7e2('0x12'));var licenseUtil=require(_0xb7e2('0x13'));var db=require(_0xb7e2('0x14'))['db'];function respondWithStatusCode(_0x3d337a,_0x5b1417){_0x5b1417=_0x5b1417||0xcc;return function(_0x5de55c){if(_0x5de55c){return _0x3d337a[_0xb7e2('0x15')](_0x5b1417);}return _0x3d337a['status'](_0x5b1417)[_0xb7e2('0x16')]();};}function respondWithResult(_0x2a916f,_0x179a63){_0x179a63=_0x179a63||0xc8;return function(_0xaf0051){if(_0xaf0051){return _0x2a916f[_0xb7e2('0x17')](_0x179a63)['json'](_0xaf0051);}};}function respondWithFilteredResult(_0x5ee322,_0x1b2002){return function(_0x363572){if(_0x363572){var _0x37a91a=typeof _0x1b2002[_0xb7e2('0x18')]===_0xb7e2('0x19')&&typeof _0x1b2002[_0xb7e2('0x1a')]===_0xb7e2('0x19');var _0x3684bb=_0x363572[_0xb7e2('0x1b')];var _0x2e2b8b=_0x37a91a?0x0:_0x1b2002[_0xb7e2('0x18')];var _0x448742=_0x37a91a?_0x363572['count']:_0x1b2002[_0xb7e2('0x18')]+_0x1b2002[_0xb7e2('0x1a')];var _0x4aebef;if(_0x448742>=_0x3684bb){_0x448742=_0x3684bb;_0x4aebef=0xc8;}else{_0x4aebef=0xce;}_0x5ee322[_0xb7e2('0x17')](_0x4aebef);return _0x5ee322['set']('Content-Range',_0x2e2b8b+'-'+_0x448742+'/'+_0x3684bb)[_0xb7e2('0x1c')](_0x363572);}return null;};}function patchUpdates(_0x5c45ce){return function(_0x128b1f){try{jsonpatch[_0xb7e2('0x1d')](_0x128b1f,_0x5c45ce,!![]);}catch(_0x36e4d2){return BPromise[_0xb7e2('0x1e')](_0x36e4d2);}return _0x128b1f[_0xb7e2('0x1f')]();};}function saveUpdates(_0x4e0f54,_0x43777c){return function(_0x1b182e){if(_0x1b182e){return _0x1b182e[_0xb7e2('0x20')](_0x4e0f54)[_0xb7e2('0x21')](function(_0x5a2737){return _0x5a2737;});}return null;};}function removeEntity(_0x1a1136,_0x2d55ac){return function(_0x47a58a){if(_0x47a58a){return _0x47a58a[_0xb7e2('0x22')]()[_0xb7e2('0x21')](function(){_0x1a1136[_0xb7e2('0x17')](0xcc)[_0xb7e2('0x16')]();});}};}function handleEntityNotFound(_0x196376,_0x4c1b4c){return function(_0x1dbf8a){if(!_0x1dbf8a){_0x196376['sendStatus'](0x194);}return _0x1dbf8a;};}function handleError(_0x230e17,_0xb46b4e){_0xb46b4e=_0xb46b4e||0x1f4;return function(_0x3fda51){logger['error'](_0x3fda51[_0xb7e2('0x23')]);if(_0x3fda51['name']){delete _0x3fda51[_0xb7e2('0x24')];}_0x230e17[_0xb7e2('0x17')](_0xb46b4e)[_0xb7e2('0x25')](_0x3fda51);};}exports['index']=function(_0x2ae4aa,_0x4eb49a){var _0x3f6812={},_0x41613e={},_0x37c05d={'count':0x0,'rows':[]};var _0x5403ee=_[_0xb7e2('0x26')](db[_0xb7e2('0x27')][_0xb7e2('0x28')],function(_0x55a214){return{'name':_0x55a214[_0xb7e2('0x29')],'type':_0x55a214[_0xb7e2('0x2a')][_0xb7e2('0x2b')]};});_0x41613e['model']=_['differenceBy'](_[_0xb7e2('0x26')](_0x5403ee,_0xb7e2('0x24')),[_0xb7e2('0x24')]);_0x41613e[_0xb7e2('0x2c')]=_[_0xb7e2('0x2d')](_0x2ae4aa[_0xb7e2('0x2c')]);_0x41613e[_0xb7e2('0x2e')]=_[_0xb7e2('0x2f')](_0x41613e['model'],_0x41613e['query']);_0x3f6812[_0xb7e2('0x30')]=_['intersection'](_0x41613e['model'],qs[_0xb7e2('0x31')](_0x2ae4aa[_0xb7e2('0x2c')]['fields']));_0x3f6812[_0xb7e2('0x30')]=_0x3f6812[_0xb7e2('0x30')][_0xb7e2('0x32')]?_0x3f6812[_0xb7e2('0x30')]:_0x41613e['model'];if(!_0x2ae4aa[_0xb7e2('0x2c')]['hasOwnProperty'](_0xb7e2('0x33'))){_0x3f6812[_0xb7e2('0x1a')]=qs[_0xb7e2('0x1a')](_0x2ae4aa['query']['limit']);_0x3f6812['offset']=qs[_0xb7e2('0x18')](_0x2ae4aa[_0xb7e2('0x2c')][_0xb7e2('0x18')]);}_0x3f6812[_0xb7e2('0x34')]=qs[_0xb7e2('0x35')](_0x2ae4aa['query']['sort']);_0x3f6812[_0xb7e2('0x36')]=qs[_0xb7e2('0x2e')](_[_0xb7e2('0x37')](_0x2ae4aa[_0xb7e2('0x2c')],_0x41613e[_0xb7e2('0x2e')]),_0x5403ee);if(_0x2ae4aa[_0xb7e2('0x2c')][_0xb7e2('0x38')]){_0x3f6812[_0xb7e2('0x36')]=_['merge'](_0x3f6812['where'],{'$or':_[_0xb7e2('0x26')](_0x5403ee,function(_0x1abbd3){if(_0x1abbd3[_0xb7e2('0x2a')]!==_0xb7e2('0x39')){var _0x365364={};_0x365364[_0x1abbd3[_0xb7e2('0x24')]]={'$like':'%'+_0x2ae4aa['query'][_0xb7e2('0x38')]+'%'};return _0x365364;}})});}_0x3f6812=_[_0xb7e2('0x3a')]({},_0x3f6812,_0x2ae4aa[_0xb7e2('0x3b')]);var _0x955cf0={'where':_0x3f6812[_0xb7e2('0x36')]};return db[_0xb7e2('0x27')][_0xb7e2('0x1b')](_0x955cf0)['then'](function(_0x2c6fd2){_0x37c05d[_0xb7e2('0x1b')]=_0x2c6fd2;if(_0x2ae4aa[_0xb7e2('0x2c')][_0xb7e2('0x3c')]){_0x3f6812[_0xb7e2('0x3d')]=[{'all':!![]}];}return db[_0xb7e2('0x27')][_0xb7e2('0x3e')](_0x3f6812);})['then'](function(_0x4f10b5){_0x37c05d[_0xb7e2('0x3f')]=_0x4f10b5;return _0x37c05d;})[_0xb7e2('0x21')](respondWithFilteredResult(_0x4eb49a,_0x3f6812))[_0xb7e2('0x40')](handleError(_0x4eb49a,null));};exports[_0xb7e2('0x41')]=function(_0x29fed0,_0x97ae5f){var _0x5dd738={'raw':!![],'where':{'id':_0x29fed0[_0xb7e2('0x42')]['id']}},_0x48a47b={};_0x48a47b[_0xb7e2('0x43')]=_[_0xb7e2('0x2d')](db[_0xb7e2('0x27')][_0xb7e2('0x28')]);_0x48a47b[_0xb7e2('0x2c')]=_[_0xb7e2('0x2d')](_0x29fed0[_0xb7e2('0x2c')]);_0x48a47b['filters']=_[_0xb7e2('0x2f')](_0x48a47b[_0xb7e2('0x43')],_0x48a47b[_0xb7e2('0x2c')]);_0x5dd738['attributes']=_['intersection'](_0x48a47b['model'],qs['fields'](_0x29fed0[_0xb7e2('0x2c')]['fields']));_0x5dd738['attributes']=_0x5dd738[_0xb7e2('0x30')][_0xb7e2('0x32')]?_0x5dd738['attributes']:_0x48a47b[_0xb7e2('0x43')];if(_0x29fed0['query'][_0xb7e2('0x3c')]){_0x5dd738['include']=[{'all':!![]}];}_0x5dd738=_[_0xb7e2('0x3a')]({},_0x5dd738,_0x29fed0[_0xb7e2('0x3b')]);return db[_0xb7e2('0x27')][_0xb7e2('0x44')](_0x5dd738)['then'](handleEntityNotFound(_0x97ae5f,null))['then'](respondWithResult(_0x97ae5f,null))[_0xb7e2('0x40')](handleError(_0x97ae5f,null));};exports[_0xb7e2('0x20')]=function(_0x484d81,_0x4d565d){if(_0x484d81[_0xb7e2('0x45')]['id']){delete _0x484d81[_0xb7e2('0x45')]['id'];}return db['CmCustomField'][_0xb7e2('0x44')]({'where':{'id':_0x484d81[_0xb7e2('0x42')]['id']}})[_0xb7e2('0x21')](handleEntityNotFound(_0x4d565d,null))['then'](saveUpdates(_0x484d81[_0xb7e2('0x45')],null))[_0xb7e2('0x21')](respondWithResult(_0x4d565d,null))[_0xb7e2('0x40')](handleError(_0x4d565d,null));};exports[_0xb7e2('0x22')]=function(_0x5e9928,_0x2e7f15){return db[_0xb7e2('0x27')][_0xb7e2('0x44')]({'where':{'id':_0x5e9928[_0xb7e2('0x42')]['id']}})[_0xb7e2('0x21')](handleEntityNotFound(_0x2e7f15,null))[_0xb7e2('0x21')](removeEntity(_0x2e7f15,null))[_0xb7e2('0x40')](handleError(_0x2e7f15,null));};exports[_0xb7e2('0x46')]=function(_0x17848e,_0x719583){var _0x7fef80;return db[_0xb7e2('0x47')][_0xb7e2('0x48')](function(_0x5e1baa){return db[_0xb7e2('0x27')][_0xb7e2('0x46')](_0x17848e['body'],{'transaction':_0x5e1baa})['then'](function(_0x3257b7){_0x7fef80=_0x3257b7;var _0x447709={'type':db['Sequelize']['TEXT'],'transaction':_0x5e1baa};switch(_0x17848e[_0xb7e2('0x45')][_0xb7e2('0x2a')]){case _0xb7e2('0x49'):_0x447709[_0xb7e2('0x2a')]=db[_0xb7e2('0x4a')][_0xb7e2('0x4b')];break;case'number':_0x447709[_0xb7e2('0x2a')]=db['Sequelize'][_0xb7e2('0x4c')];break;case'switch':_0x447709[_0xb7e2('0x2a')]=db[_0xb7e2('0x4a')][_0xb7e2('0x4d')];_0x447709[_0xb7e2('0x4e')]=![];break;default:}return db['sequelize'][_0xb7e2('0x4f')]['addColumn']('cm_contacts',util[_0xb7e2('0x50')](_0xb7e2('0x51'),_0x7fef80['id']),_0x447709);})['then'](function(){return _0x7fef80;});})[_0xb7e2('0x21')](respondWithResult(_0x719583,0xc9))[_0xb7e2('0x40')](handleError(_0x719583,null));};