329e38dcb3793d8361790ee50745530e49539233
[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 _0x9626=['fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','then','destroy','error','stack','map','CmCustomField','rawAttributes','fieldName','type','key','model','name','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','findAll','rows','catch','show','params','include','find','body','create','sequelize','transaction','TEXT','Sequelize','number','INTEGER','switch','BOOLEAN','defaultValue','addColumn','cm_contacts','cf_%d','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','to-csv'];(function(_0x284325,_0x15419f){var _0x182a9a=function(_0x1cbc05){while(--_0x1cbc05){_0x284325['push'](_0x284325['shift']());}};_0x182a9a(++_0x15419f);}(_0x9626,0x196));var _0x6962=function(_0xe402ba,_0x374e02){_0xe402ba=_0xe402ba-0x0;var _0x583ea1=_0x9626[_0xe402ba];return _0x583ea1;};'use strict';var emlformat=require(_0x6962('0x0'));var rimraf=require(_0x6962('0x1'));var zipdir=require(_0x6962('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6962('0x3'));var moment=require('moment');var BPromise=require(_0x6962('0x4'));var Mustache=require(_0x6962('0x5'));var util=require(_0x6962('0x6'));var path=require(_0x6962('0x7'));var sox=require('sox');var csv=require(_0x6962('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6962('0x9'));var _=require(_0x6962('0xa'));var squel=require(_0x6962('0xb'));var crypto=require(_0x6962('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x6962('0xd'));var Papa=require(_0x6962('0xe'));var Redis=require(_0x6962('0xf'));var authService=require(_0x6962('0x10'));var qs=require(_0x6962('0x11'));var as=require(_0x6962('0x12'));var hardwareService=require(_0x6962('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0x6962('0x14'));var config=require(_0x6962('0x15'));var licenseUtil=require(_0x6962('0x16'));var db=require(_0x6962('0x17'))['db'];function respondWithStatusCode(_0x4ae7c4,_0x266257){_0x266257=_0x266257||0xcc;return function(_0x32756d){if(_0x32756d){return _0x4ae7c4[_0x6962('0x18')](_0x266257);}return _0x4ae7c4[_0x6962('0x19')](_0x266257)[_0x6962('0x1a')]();};}function respondWithResult(_0x1e6b71,_0x5f5b05){_0x5f5b05=_0x5f5b05||0xc8;return function(_0x28fe09){if(_0x28fe09){return _0x1e6b71[_0x6962('0x19')](_0x5f5b05)[_0x6962('0x1b')](_0x28fe09);}};}function respondWithFilteredResult(_0x2b721a,_0x764d98){return function(_0x4df3be){if(_0x4df3be){var _0x989dbb=typeof _0x764d98[_0x6962('0x1c')]===_0x6962('0x1d')&&typeof _0x764d98[_0x6962('0x1e')]===_0x6962('0x1d');var _0x2d0413=_0x4df3be['count'];var _0x12e250=_0x989dbb?0x0:_0x764d98[_0x6962('0x1c')];var _0x4922df=_0x989dbb?_0x4df3be[_0x6962('0x1f')]:_0x764d98[_0x6962('0x1c')]+_0x764d98['limit'];var _0x5de0ac;if(_0x4922df>=_0x2d0413){_0x4922df=_0x2d0413;_0x5de0ac=0xc8;}else{_0x5de0ac=0xce;}_0x2b721a[_0x6962('0x19')](_0x5de0ac);return _0x2b721a[_0x6962('0x20')](_0x6962('0x21'),_0x12e250+'-'+_0x4922df+'/'+_0x2d0413)[_0x6962('0x1b')](_0x4df3be);}return null;};}function patchUpdates(_0x384fe7){return function(_0x2297f2){try{jsonpatch['apply'](_0x2297f2,_0x384fe7,!![]);}catch(_0x26191e){return BPromise['reject'](_0x26191e);}return _0x2297f2['save']();};}function saveUpdates(_0x12e9b1,_0x5a4ee3){return function(_0xc9b058){if(_0xc9b058){return _0xc9b058['update'](_0x12e9b1)[_0x6962('0x22')](function(_0x17086c){return _0x17086c;});}return null;};}function removeEntity(_0x3148e9,_0x7ed5c2){return function(_0x20d50e){if(_0x20d50e){return _0x20d50e[_0x6962('0x23')]()[_0x6962('0x22')](function(){_0x3148e9[_0x6962('0x19')](0xcc)[_0x6962('0x1a')]();});}};}function handleEntityNotFound(_0x30ea6e,_0x163062){return function(_0x499c5f){if(!_0x499c5f){_0x30ea6e['sendStatus'](0x194);}return _0x499c5f;};}function handleError(_0x47af0b,_0x3acfed){_0x3acfed=_0x3acfed||0x1f4;return function(_0x1e1183){logger[_0x6962('0x24')](_0x1e1183[_0x6962('0x25')]);if(_0x1e1183['name']){delete _0x1e1183['name'];}_0x47af0b['status'](_0x3acfed)['send'](_0x1e1183);};}exports['index']=function(_0x4b8484,_0x202af9){var _0x46b445={},_0x155777={},_0xf8954c={'count':0x0,'rows':[]};var _0x1fce19=_[_0x6962('0x26')](db[_0x6962('0x27')][_0x6962('0x28')],function(_0x323c29){return{'name':_0x323c29[_0x6962('0x29')],'type':_0x323c29[_0x6962('0x2a')][_0x6962('0x2b')]};});_0x155777[_0x6962('0x2c')]=_['differenceBy'](_[_0x6962('0x26')](_0x1fce19,_0x6962('0x2d')),[_0x6962('0x2d')]);_0x155777[_0x6962('0x2e')]=_[_0x6962('0x2f')](_0x4b8484[_0x6962('0x2e')]);_0x155777[_0x6962('0x30')]=_['intersection'](_0x155777[_0x6962('0x2c')],_0x155777[_0x6962('0x2e')]);_0x46b445['attributes']=_[_0x6962('0x31')](_0x155777[_0x6962('0x2c')],qs[_0x6962('0x32')](_0x4b8484['query']['fields']));_0x46b445[_0x6962('0x33')]=_0x46b445[_0x6962('0x33')][_0x6962('0x34')]?_0x46b445[_0x6962('0x33')]:_0x155777['model'];if(!_0x4b8484[_0x6962('0x2e')][_0x6962('0x35')]('nolimit')){_0x46b445[_0x6962('0x1e')]=qs[_0x6962('0x1e')](_0x4b8484[_0x6962('0x2e')][_0x6962('0x1e')]);_0x46b445[_0x6962('0x1c')]=qs[_0x6962('0x1c')](_0x4b8484[_0x6962('0x2e')][_0x6962('0x1c')]);}_0x46b445[_0x6962('0x36')]=qs[_0x6962('0x37')](_0x4b8484[_0x6962('0x2e')][_0x6962('0x37')]);_0x46b445[_0x6962('0x38')]=qs[_0x6962('0x30')](_[_0x6962('0x39')](_0x4b8484[_0x6962('0x2e')],_0x155777['filters']),_0x1fce19);if(_0x4b8484[_0x6962('0x2e')][_0x6962('0x3a')]){_0x46b445[_0x6962('0x38')]=_[_0x6962('0x3b')](_0x46b445[_0x6962('0x38')],{'$or':_[_0x6962('0x26')](_0x1fce19,function(_0x237916){if(_0x237916['type']!==_0x6962('0x3c')){var _0x5a1c43={};_0x5a1c43[_0x237916['name']]={'$like':'%'+_0x4b8484[_0x6962('0x2e')][_0x6962('0x3a')]+'%'};return _0x5a1c43;}})});}_0x46b445=_[_0x6962('0x3b')]({},_0x46b445,_0x4b8484[_0x6962('0x3d')]);var _0x54319d={'where':_0x46b445['where']};return db[_0x6962('0x27')][_0x6962('0x1f')](_0x54319d)['then'](function(_0x1b7263){_0xf8954c[_0x6962('0x1f')]=_0x1b7263;if(_0x4b8484['query']['includeAll']){_0x46b445['include']=[{'all':!![]}];}return db[_0x6962('0x27')][_0x6962('0x3e')](_0x46b445);})['then'](function(_0x2029f5){_0xf8954c[_0x6962('0x3f')]=_0x2029f5;return _0xf8954c;})[_0x6962('0x22')](respondWithFilteredResult(_0x202af9,_0x46b445))[_0x6962('0x40')](handleError(_0x202af9,null));};exports[_0x6962('0x41')]=function(_0x53d292,_0x563e40){var _0x1b73fc={'raw':!![],'where':{'id':_0x53d292[_0x6962('0x42')]['id']}},_0x1aeba6={};_0x1aeba6[_0x6962('0x2c')]=_[_0x6962('0x2f')](db['CmCustomField'][_0x6962('0x28')]);_0x1aeba6['query']=_['keys'](_0x53d292[_0x6962('0x2e')]);_0x1aeba6[_0x6962('0x30')]=_[_0x6962('0x31')](_0x1aeba6['model'],_0x1aeba6[_0x6962('0x2e')]);_0x1b73fc['attributes']=_['intersection'](_0x1aeba6[_0x6962('0x2c')],qs['fields'](_0x53d292[_0x6962('0x2e')][_0x6962('0x32')]));_0x1b73fc[_0x6962('0x33')]=_0x1b73fc[_0x6962('0x33')][_0x6962('0x34')]?_0x1b73fc[_0x6962('0x33')]:_0x1aeba6[_0x6962('0x2c')];if(_0x53d292[_0x6962('0x2e')]['includeAll']){_0x1b73fc[_0x6962('0x43')]=[{'all':!![]}];}_0x1b73fc=_[_0x6962('0x3b')]({},_0x1b73fc,_0x53d292[_0x6962('0x3d')]);return db[_0x6962('0x27')][_0x6962('0x44')](_0x1b73fc)[_0x6962('0x22')](handleEntityNotFound(_0x563e40,null))[_0x6962('0x22')](respondWithResult(_0x563e40,null))[_0x6962('0x40')](handleError(_0x563e40,null));};exports['update']=function(_0x5e6d77,_0xebafd3){if(_0x5e6d77[_0x6962('0x45')]['id']){delete _0x5e6d77['body']['id'];}return db['CmCustomField']['find']({'where':{'id':_0x5e6d77['params']['id']}})[_0x6962('0x22')](handleEntityNotFound(_0xebafd3,null))['then'](saveUpdates(_0x5e6d77[_0x6962('0x45')],null))[_0x6962('0x22')](respondWithResult(_0xebafd3,null))[_0x6962('0x40')](handleError(_0xebafd3,null));};exports[_0x6962('0x23')]=function(_0x319ad0,_0x763f3f){return db[_0x6962('0x27')][_0x6962('0x44')]({'where':{'id':_0x319ad0[_0x6962('0x42')]['id']}})[_0x6962('0x22')](handleEntityNotFound(_0x763f3f,null))['then'](removeEntity(_0x763f3f,null))[_0x6962('0x40')](handleError(_0x763f3f,null));};exports[_0x6962('0x46')]=function(_0xe76f8d,_0x7eab42){var _0x4a706b;return db[_0x6962('0x47')][_0x6962('0x48')](function(_0x3eea33){return db[_0x6962('0x27')][_0x6962('0x46')](_0xe76f8d[_0x6962('0x45')],{'transaction':_0x3eea33})['then'](function(_0x35a177){_0x4a706b=_0x35a177;var _0x500856={'type':db['Sequelize'][_0x6962('0x49')],'transaction':_0x3eea33};switch(_0xe76f8d[_0x6962('0x45')][_0x6962('0x2a')]){case'text':_0x500856['type']=db[_0x6962('0x4a')][_0x6962('0x49')];break;case _0x6962('0x4b'):_0x500856[_0x6962('0x2a')]=db[_0x6962('0x4a')][_0x6962('0x4c')];break;case _0x6962('0x4d'):_0x500856[_0x6962('0x2a')]=db['Sequelize'][_0x6962('0x4e')];_0x500856[_0x6962('0x4f')]=![];break;default:}return db[_0x6962('0x47')]['queryInterface'][_0x6962('0x50')](_0x6962('0x51'),util['format'](_0x6962('0x52'),_0x4a706b['id']),_0x500856);})[_0x6962('0x22')](function(){return _0x4a706b;});})[_0x6962('0x22')](respondWithResult(_0x7eab42,0xc9))['catch'](handleError(_0x7eab42,null));};