450d009b4e9e558039dfc68dd06d92da142cc492
[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 _0xcb72=['queryInterface','addColumn','cm_contacts','format','cf_%d','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','end','stack','name','index','map','CmCustomField','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','merge','filter','options','includeAll','rows','catch','show','body','find','params','destroy','create','sequelize','transaction','Sequelize','TEXT','text','number','switch','BOOLEAN','defaultValue'];(function(_0x6891f7,_0x4747a6){var _0x45c5c8=function(_0x38e643){while(--_0x38e643){_0x6891f7['push'](_0x6891f7['shift']());}};_0x45c5c8(++_0x4747a6);}(_0xcb72,0x1a9));var _0x2cb7=function(_0x3a2a21,_0x2ece4a){_0x3a2a21=_0x3a2a21-0x0;var _0x2a91b0=_0xcb72[_0x3a2a21];return _0x2a91b0;};'use strict';var emlformat=require(_0x2cb7('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x2cb7('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x2cb7('0x2'));var moment=require(_0x2cb7('0x3'));var BPromise=require(_0x2cb7('0x4'));var Mustache=require(_0x2cb7('0x5'));var util=require(_0x2cb7('0x6'));var path=require(_0x2cb7('0x7'));var sox=require(_0x2cb7('0x8'));var csv=require(_0x2cb7('0x9'));var ejs=require(_0x2cb7('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x2cb7('0xb'));var crypto=require(_0x2cb7('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x2cb7('0x9'));var querystring=require('querystring');var Papa=require(_0x2cb7('0xd'));var Redis=require(_0x2cb7('0xe'));var authService=require(_0x2cb7('0xf'));var qs=require(_0x2cb7('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x2cb7('0x11'))(_0x2cb7('0x12'));var utils=require(_0x2cb7('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x2cb7('0x14'))['db'];function respondWithStatusCode(_0xeab13a,_0x4c06f1){_0x4c06f1=_0x4c06f1||0xcc;return function(_0x5682c5){if(_0x5682c5){return _0xeab13a[_0x2cb7('0x15')](_0x4c06f1);}return _0xeab13a['status'](_0x4c06f1)['end']();};}function respondWithResult(_0x9fb9e4,_0x39f6a6){_0x39f6a6=_0x39f6a6||0xc8;return function(_0x36c9fa){if(_0x36c9fa){return _0x9fb9e4[_0x2cb7('0x16')](_0x39f6a6)['json'](_0x36c9fa);}};}function respondWithFilteredResult(_0x4429a2,_0x4f7e89){return function(_0x727d30){if(_0x727d30){var _0x26b4f6=typeof _0x4f7e89[_0x2cb7('0x17')]===_0x2cb7('0x18')&&typeof _0x4f7e89[_0x2cb7('0x19')]===_0x2cb7('0x18');var _0x4e4970=_0x727d30[_0x2cb7('0x1a')];var _0x4239c2=_0x26b4f6?0x0:_0x4f7e89[_0x2cb7('0x17')];var _0xbf561b=_0x26b4f6?_0x727d30['count']:_0x4f7e89[_0x2cb7('0x17')]+_0x4f7e89[_0x2cb7('0x19')];var _0x566d08;if(_0xbf561b>=_0x4e4970){_0xbf561b=_0x4e4970;_0x566d08=0xc8;}else{_0x566d08=0xce;}_0x4429a2['status'](_0x566d08);return _0x4429a2[_0x2cb7('0x1b')](_0x2cb7('0x1c'),_0x4239c2+'-'+_0xbf561b+'/'+_0x4e4970)[_0x2cb7('0x1d')](_0x727d30);}return null;};}function patchUpdates(_0x59d796){return function(_0x524efa){try{jsonpatch[_0x2cb7('0x1e')](_0x524efa,_0x59d796,!![]);}catch(_0x26c411){return BPromise[_0x2cb7('0x1f')](_0x26c411);}return _0x524efa[_0x2cb7('0x20')]();};}function saveUpdates(_0xe1806e,_0x2f5e20){return function(_0x3b7089){if(_0x3b7089){return _0x3b7089[_0x2cb7('0x21')](_0xe1806e)[_0x2cb7('0x22')](function(_0x57bca4){return _0x57bca4;});}return null;};}function removeEntity(_0x3d8cd3,_0x17222a){return function(_0x1c5ae8){if(_0x1c5ae8){return _0x1c5ae8['destroy']()[_0x2cb7('0x22')](function(){_0x3d8cd3[_0x2cb7('0x16')](0xcc)[_0x2cb7('0x23')]();});}};}function handleEntityNotFound(_0x265f06,_0x55adb4){return function(_0x41ed24){if(!_0x41ed24){_0x265f06[_0x2cb7('0x15')](0x194);}return _0x41ed24;};}function handleError(_0x1dcd03,_0x4e7c29){_0x4e7c29=_0x4e7c29||0x1f4;return function(_0x3418ea){logger['error'](_0x3418ea[_0x2cb7('0x24')]);if(_0x3418ea[_0x2cb7('0x25')]){delete _0x3418ea[_0x2cb7('0x25')];}_0x1dcd03[_0x2cb7('0x16')](_0x4e7c29)['send'](_0x3418ea);};}exports[_0x2cb7('0x26')]=function(_0x10dc4c,_0x2d83e8){var _0x36700b={},_0x4544e0={},_0x73379c={'count':0x0,'rows':[]};var _0x3b8778=_[_0x2cb7('0x27')](db[_0x2cb7('0x28')][_0x2cb7('0x29')],function(_0x422e96){return{'name':_0x422e96[_0x2cb7('0x2a')],'type':_0x422e96[_0x2cb7('0x2b')][_0x2cb7('0x2c')]};});_0x4544e0[_0x2cb7('0x2d')]=_['differenceBy'](_[_0x2cb7('0x27')](_0x3b8778,_0x2cb7('0x25')),['name']);_0x4544e0['query']=_[_0x2cb7('0x2e')](_0x10dc4c[_0x2cb7('0x2f')]);_0x4544e0[_0x2cb7('0x30')]=_[_0x2cb7('0x31')](_0x4544e0[_0x2cb7('0x2d')],_0x4544e0[_0x2cb7('0x2f')]);_0x36700b['attributes']=_[_0x2cb7('0x31')](_0x4544e0[_0x2cb7('0x2d')],qs[_0x2cb7('0x32')](_0x10dc4c[_0x2cb7('0x2f')][_0x2cb7('0x32')]));_0x36700b[_0x2cb7('0x33')]=_0x36700b[_0x2cb7('0x33')][_0x2cb7('0x34')]?_0x36700b['attributes']:_0x4544e0[_0x2cb7('0x2d')];if(!_0x10dc4c[_0x2cb7('0x2f')][_0x2cb7('0x35')](_0x2cb7('0x36'))){_0x36700b[_0x2cb7('0x19')]=qs['limit'](_0x10dc4c[_0x2cb7('0x2f')]['limit']);_0x36700b[_0x2cb7('0x17')]=qs[_0x2cb7('0x17')](_0x10dc4c[_0x2cb7('0x2f')][_0x2cb7('0x17')]);}_0x36700b['order']=qs[_0x2cb7('0x37')](_0x10dc4c[_0x2cb7('0x2f')]['sort']);_0x36700b[_0x2cb7('0x38')]=qs[_0x2cb7('0x30')](_[_0x2cb7('0x39')](_0x10dc4c['query'],_0x4544e0[_0x2cb7('0x30')]),_0x3b8778);if(_0x10dc4c['query']['filter']){_0x36700b[_0x2cb7('0x38')]=_[_0x2cb7('0x3a')](_0x36700b[_0x2cb7('0x38')],{'$or':_[_0x2cb7('0x27')](_0x3b8778,function(_0x18aaa7){if(_0x18aaa7[_0x2cb7('0x2b')]!=='VIRTUAL'){var _0x5a1631={};_0x5a1631[_0x18aaa7['name']]={'$like':'%'+_0x10dc4c['query'][_0x2cb7('0x3b')]+'%'};return _0x5a1631;}})});}_0x36700b=_['merge']({},_0x36700b,_0x10dc4c[_0x2cb7('0x3c')]);var _0x1e4ed9={'where':_0x36700b['where']};return db[_0x2cb7('0x28')][_0x2cb7('0x1a')](_0x1e4ed9)['then'](function(_0x53cc60){_0x73379c[_0x2cb7('0x1a')]=_0x53cc60;if(_0x10dc4c[_0x2cb7('0x2f')][_0x2cb7('0x3d')]){_0x36700b['include']=[{'all':!![]}];}return db['CmCustomField']['findAll'](_0x36700b);})[_0x2cb7('0x22')](function(_0x154a91){_0x73379c[_0x2cb7('0x3e')]=_0x154a91;return _0x73379c;})['then'](respondWithFilteredResult(_0x2d83e8,_0x36700b))[_0x2cb7('0x3f')](handleError(_0x2d83e8,null));};exports[_0x2cb7('0x40')]=function(_0x2a7e14,_0x34e56d){var _0x5a89e1={'raw':!![],'where':{'id':_0x2a7e14['params']['id']}},_0x331135={};_0x331135[_0x2cb7('0x2d')]=_['keys'](db[_0x2cb7('0x28')][_0x2cb7('0x29')]);_0x331135[_0x2cb7('0x2f')]=_[_0x2cb7('0x2e')](_0x2a7e14[_0x2cb7('0x2f')]);_0x331135[_0x2cb7('0x30')]=_['intersection'](_0x331135[_0x2cb7('0x2d')],_0x331135['query']);_0x5a89e1[_0x2cb7('0x33')]=_[_0x2cb7('0x31')](_0x331135[_0x2cb7('0x2d')],qs[_0x2cb7('0x32')](_0x2a7e14[_0x2cb7('0x2f')][_0x2cb7('0x32')]));_0x5a89e1['attributes']=_0x5a89e1['attributes'][_0x2cb7('0x34')]?_0x5a89e1[_0x2cb7('0x33')]:_0x331135[_0x2cb7('0x2d')];if(_0x2a7e14['query'][_0x2cb7('0x3d')]){_0x5a89e1['include']=[{'all':!![]}];}_0x5a89e1=_[_0x2cb7('0x3a')]({},_0x5a89e1,_0x2a7e14[_0x2cb7('0x3c')]);return db[_0x2cb7('0x28')]['find'](_0x5a89e1)[_0x2cb7('0x22')](handleEntityNotFound(_0x34e56d,null))[_0x2cb7('0x22')](respondWithResult(_0x34e56d,null))[_0x2cb7('0x3f')](handleError(_0x34e56d,null));};exports[_0x2cb7('0x21')]=function(_0x10457d,_0x241546){if(_0x10457d[_0x2cb7('0x41')]['id']){delete _0x10457d['body']['id'];}return db[_0x2cb7('0x28')][_0x2cb7('0x42')]({'where':{'id':_0x10457d[_0x2cb7('0x43')]['id']}})[_0x2cb7('0x22')](handleEntityNotFound(_0x241546,null))['then'](saveUpdates(_0x10457d[_0x2cb7('0x41')],null))['then'](respondWithResult(_0x241546,null))['catch'](handleError(_0x241546,null));};exports[_0x2cb7('0x44')]=function(_0x3032bf,_0x5e36d4){return db[_0x2cb7('0x28')][_0x2cb7('0x42')]({'where':{'id':_0x3032bf[_0x2cb7('0x43')]['id']}})[_0x2cb7('0x22')](handleEntityNotFound(_0x5e36d4,null))['then'](removeEntity(_0x5e36d4,null))['catch'](handleError(_0x5e36d4,null));};exports[_0x2cb7('0x45')]=function(_0x35c37d,_0x1805f3){var _0x20a1e1;return db[_0x2cb7('0x46')][_0x2cb7('0x47')](function(_0x5d41b3){return db[_0x2cb7('0x28')][_0x2cb7('0x45')](_0x35c37d['body'],{'transaction':_0x5d41b3})[_0x2cb7('0x22')](function(_0x39f9fa){_0x20a1e1=_0x39f9fa;var _0x58f61c={'type':db[_0x2cb7('0x48')][_0x2cb7('0x49')],'transaction':_0x5d41b3};switch(_0x35c37d[_0x2cb7('0x41')]['type']){case _0x2cb7('0x4a'):_0x58f61c[_0x2cb7('0x2b')]=db['Sequelize']['TEXT'];break;case _0x2cb7('0x4b'):_0x58f61c[_0x2cb7('0x2b')]=db['Sequelize']['INTEGER'];break;case _0x2cb7('0x4c'):_0x58f61c[_0x2cb7('0x2b')]=db[_0x2cb7('0x48')][_0x2cb7('0x4d')];_0x58f61c[_0x2cb7('0x4e')]=![];break;default:}return db[_0x2cb7('0x46')][_0x2cb7('0x4f')][_0x2cb7('0x50')](_0x2cb7('0x51'),util[_0x2cb7('0x52')](_0x2cb7('0x53'),_0x20a1e1['id']),_0x58f61c);})[_0x2cb7('0x22')](function(){return _0x20a1e1;});})[_0x2cb7('0x22')](respondWithResult(_0x1805f3,0xc9))[_0x2cb7('0x3f')](handleError(_0x1805f3,null));};