25f88d234cd329434a5f4e07db83fb934a001e9a
[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 _0x1cf6=['rows','catch','params','rawAttributes','fields','length','includeAll','include','options','body','find','destroy','create','sequelize','transaction','Sequelize','TEXT','text','number','BOOLEAN','defaultValue','addColumn','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','util','path','sox','ejs','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','count','offset','limit','Content-Range','json','reject','update','status','end','error','stack','name','index','CmCustomField','fieldName','type','key','map','keys','query','filters','intersection','attributes','model','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','then','findAll'];(function(_0x115e0c,_0x1b93cf){var _0x16ef20=function(_0x1ca390){while(--_0x1ca390){_0x115e0c['push'](_0x115e0c['shift']());}};_0x16ef20(++_0x1b93cf);}(_0x1cf6,0x1ba));var _0x61cf=function(_0x2c7aa3,_0x17dd68){_0x2c7aa3=_0x2c7aa3-0x0;var _0x1992cb=_0x1cf6[_0x2c7aa3];return _0x1992cb;};'use strict';var pdf=require(_0x61cf('0x0'));var emlformat=require(_0x61cf('0x1'));var rimraf=require(_0x61cf('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x61cf('0x3'));var rp=require(_0x61cf('0x4'));var moment=require(_0x61cf('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x61cf('0x6'));var path=require(_0x61cf('0x7'));var sox=require(_0x61cf('0x8'));var csv=require('to-csv');var ejs=require(_0x61cf('0x9'));var fs=require('fs');var _=require(_0x61cf('0xa'));var squel=require(_0x61cf('0xb'));var crypto=require('crypto');var jsforce=require(_0x61cf('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x61cf('0xd'));var Papa=require(_0x61cf('0xe'));var Redis=require(_0x61cf('0xf'));var authService=require(_0x61cf('0x10'));var qs=require(_0x61cf('0x11'));var as=require(_0x61cf('0x12'));var hardwareService=require(_0x61cf('0x13'));var logger=require(_0x61cf('0x14'))(_0x61cf('0x15'));var utils=require(_0x61cf('0x16'));var config=require(_0x61cf('0x17'));var licenseUtil=require(_0x61cf('0x18'));var db=require(_0x61cf('0x19'))['db'];function respondWithStatusCode(_0x556a9b,_0x1cac2b){_0x1cac2b=_0x1cac2b||0xcc;return function(_0x125520){if(_0x125520){return _0x556a9b[_0x61cf('0x1a')](_0x1cac2b);}return _0x556a9b['status'](_0x1cac2b)['end']();};}function respondWithResult(_0x59fae4,_0x429e1b){_0x429e1b=_0x429e1b||0xc8;return function(_0x256c48){if(_0x256c48){return _0x59fae4['status'](_0x429e1b)['json'](_0x256c48);}};}function respondWithFilteredResult(_0x27c484,_0x1a8ef2){return function(_0x56c2bd){if(_0x56c2bd){var _0x52803d=_0x56c2bd[_0x61cf('0x1b')],_0x7ee510=_0x1a8ef2['offset'],_0x1ab56f=_0x1a8ef2[_0x61cf('0x1c')]+_0x1a8ef2[_0x61cf('0x1d')],_0x489716;if(_0x1ab56f>=_0x52803d){_0x1ab56f=_0x52803d;_0x489716=0xc8;}else{_0x489716=0xce;}_0x27c484['status'](_0x489716);return _0x27c484['set'](_0x61cf('0x1e'),_0x7ee510+'-'+_0x1ab56f+'/'+_0x52803d)[_0x61cf('0x1f')](_0x56c2bd);}return null;};}function patchUpdates(_0x3e1855){return function(_0x135e94){try{jsonpatch['apply'](_0x135e94,_0x3e1855,!![]);}catch(_0x33cfe5){return BPromise[_0x61cf('0x20')](_0x33cfe5);}return _0x135e94['save']();};}function saveUpdates(_0x24ce9c,_0x411bc1){return function(_0xc97c47){if(_0xc97c47){return _0xc97c47[_0x61cf('0x21')](_0x24ce9c)['then'](function(_0x147ac4){return _0x147ac4;});}return null;};}function removeEntity(_0x5ca862,_0x524bf6){return function(_0xfe3412){if(_0xfe3412){return _0xfe3412['destroy']()['then'](function(){_0x5ca862[_0x61cf('0x22')](0xcc)[_0x61cf('0x23')]();});}};}function handleEntityNotFound(_0x2a7651,_0x463f21){return function(_0x2f5228){if(!_0x2f5228){_0x2a7651[_0x61cf('0x1a')](0x194);}return _0x2f5228;};}function handleError(_0x381395,_0x42dcb6){_0x42dcb6=_0x42dcb6||0x1f4;return function(_0x461bd3){logger[_0x61cf('0x24')](_0x461bd3[_0x61cf('0x25')]);if(_0x461bd3[_0x61cf('0x26')]){delete _0x461bd3[_0x61cf('0x26')];}_0x381395[_0x61cf('0x22')](_0x42dcb6)['send'](_0x461bd3);};}exports[_0x61cf('0x27')]=function(_0xf7ae7c,_0x33f147){var _0x3a9a9d={},_0x199f1e={},_0x98219d={'count':0x0,'rows':[]};var _0x17df19=_['map'](db[_0x61cf('0x28')]['rawAttributes'],function(_0x352d0c){return{'name':_0x352d0c[_0x61cf('0x29')],'type':_0x352d0c[_0x61cf('0x2a')][_0x61cf('0x2b')]};});_0x199f1e['model']=_['differenceBy'](_[_0x61cf('0x2c')](_0x17df19,_0x61cf('0x26')),[_0x61cf('0x26')]);_0x199f1e['query']=_[_0x61cf('0x2d')](_0xf7ae7c[_0x61cf('0x2e')]);_0x199f1e[_0x61cf('0x2f')]=_[_0x61cf('0x30')](_0x199f1e['model'],_0x199f1e[_0x61cf('0x2e')]);_0x3a9a9d[_0x61cf('0x31')]=_[_0x61cf('0x30')](_0x199f1e[_0x61cf('0x32')],qs['fields'](_0xf7ae7c['query']['fields']));_0x3a9a9d[_0x61cf('0x31')]=_0x3a9a9d[_0x61cf('0x31')]['length']?_0x3a9a9d[_0x61cf('0x31')]:_0x199f1e[_0x61cf('0x32')];if(!_0xf7ae7c['query'][_0x61cf('0x33')](_0x61cf('0x34'))){_0x3a9a9d[_0x61cf('0x1d')]=qs['limit'](_0xf7ae7c[_0x61cf('0x2e')]['limit']);_0x3a9a9d[_0x61cf('0x1c')]=qs[_0x61cf('0x1c')](_0xf7ae7c[_0x61cf('0x2e')][_0x61cf('0x1c')]);}_0x3a9a9d[_0x61cf('0x35')]=qs[_0x61cf('0x36')](_0xf7ae7c[_0x61cf('0x2e')]['sort']);_0x3a9a9d[_0x61cf('0x37')]=qs[_0x61cf('0x2f')](_[_0x61cf('0x38')](_0xf7ae7c['query'],_0x199f1e[_0x61cf('0x2f')]),_0x17df19);if(_0xf7ae7c[_0x61cf('0x2e')][_0x61cf('0x39')]){_0x3a9a9d['where']=_[_0x61cf('0x3a')](_0x3a9a9d[_0x61cf('0x37')],{'$or':_['map'](_0x17df19,function(_0x1308ff){if(_0x1308ff[_0x61cf('0x2a')]!==_0x61cf('0x3b')){var _0x30c4a2={};_0x30c4a2[_0x1308ff[_0x61cf('0x26')]]={'$like':'%'+_0xf7ae7c[_0x61cf('0x2e')][_0x61cf('0x39')]+'%'};return _0x30c4a2;}})});}_0x3a9a9d=_[_0x61cf('0x3a')]({},_0x3a9a9d,_0xf7ae7c['options']);var _0x2d29d7={'where':_0x3a9a9d[_0x61cf('0x37')]};return db[_0x61cf('0x28')][_0x61cf('0x1b')](_0x2d29d7)[_0x61cf('0x3c')](function(_0x3e4a3e){_0x98219d[_0x61cf('0x1b')]=_0x3e4a3e;if(_0xf7ae7c[_0x61cf('0x2e')]['includeAll']){_0x3a9a9d['include']=[{'all':!![]}];}return db[_0x61cf('0x28')][_0x61cf('0x3d')](_0x3a9a9d);})[_0x61cf('0x3c')](function(_0x311da2){_0x98219d[_0x61cf('0x3e')]=_0x311da2;return _0x98219d;})[_0x61cf('0x3c')](respondWithFilteredResult(_0x33f147,_0x3a9a9d))[_0x61cf('0x3f')](handleError(_0x33f147,null));};exports['show']=function(_0x1362bb,_0x16d8b0){var _0x3fb5e7={'raw':!![],'where':{'id':_0x1362bb[_0x61cf('0x40')]['id']}},_0x4bd1d4={};_0x4bd1d4[_0x61cf('0x32')]=_[_0x61cf('0x2d')](db[_0x61cf('0x28')][_0x61cf('0x41')]);_0x4bd1d4['query']=_[_0x61cf('0x2d')](_0x1362bb['query']);_0x4bd1d4[_0x61cf('0x2f')]=_[_0x61cf('0x30')](_0x4bd1d4[_0x61cf('0x32')],_0x4bd1d4[_0x61cf('0x2e')]);_0x3fb5e7[_0x61cf('0x31')]=_['intersection'](_0x4bd1d4[_0x61cf('0x32')],qs['fields'](_0x1362bb[_0x61cf('0x2e')][_0x61cf('0x42')]));_0x3fb5e7['attributes']=_0x3fb5e7[_0x61cf('0x31')][_0x61cf('0x43')]?_0x3fb5e7[_0x61cf('0x31')]:_0x4bd1d4['model'];if(_0x1362bb['query'][_0x61cf('0x44')]){_0x3fb5e7[_0x61cf('0x45')]=[{'all':!![]}];}_0x3fb5e7=_[_0x61cf('0x3a')]({},_0x3fb5e7,_0x1362bb[_0x61cf('0x46')]);return db[_0x61cf('0x28')]['find'](_0x3fb5e7)[_0x61cf('0x3c')](handleEntityNotFound(_0x16d8b0,null))[_0x61cf('0x3c')](respondWithResult(_0x16d8b0,null))[_0x61cf('0x3f')](handleError(_0x16d8b0,null));};exports[_0x61cf('0x21')]=function(_0x4a002a,_0x9b2694){if(_0x4a002a[_0x61cf('0x47')]['id']){delete _0x4a002a[_0x61cf('0x47')]['id'];}return db[_0x61cf('0x28')][_0x61cf('0x48')]({'where':{'id':_0x4a002a[_0x61cf('0x40')]['id']}})['then'](handleEntityNotFound(_0x9b2694,null))[_0x61cf('0x3c')](saveUpdates(_0x4a002a['body'],null))[_0x61cf('0x3c')](respondWithResult(_0x9b2694,null))['catch'](handleError(_0x9b2694,null));};exports[_0x61cf('0x49')]=function(_0x3702df,_0x550510){return db['CmCustomField']['find']({'where':{'id':_0x3702df[_0x61cf('0x40')]['id']}})[_0x61cf('0x3c')](handleEntityNotFound(_0x550510,null))[_0x61cf('0x3c')](removeEntity(_0x550510,null))[_0x61cf('0x3f')](handleError(_0x550510,null));};exports[_0x61cf('0x4a')]=function(_0x3f7bd7,_0x2ecfe7){var _0x1d2448;return db[_0x61cf('0x4b')][_0x61cf('0x4c')](function(_0x5129f0){return db['CmCustomField'][_0x61cf('0x4a')](_0x3f7bd7[_0x61cf('0x47')],{'transaction':_0x5129f0})[_0x61cf('0x3c')](function(_0x57d17c){_0x1d2448=_0x57d17c;var _0x43039f={'type':db[_0x61cf('0x4d')][_0x61cf('0x4e')],'transaction':_0x5129f0};switch(_0x3f7bd7[_0x61cf('0x47')][_0x61cf('0x2a')]){case _0x61cf('0x4f'):_0x43039f[_0x61cf('0x2a')]=db[_0x61cf('0x4d')][_0x61cf('0x4e')];break;case _0x61cf('0x50'):_0x43039f[_0x61cf('0x2a')]=db['Sequelize']['INTEGER'];break;case'switch':_0x43039f['type']=db['Sequelize'][_0x61cf('0x51')];_0x43039f[_0x61cf('0x52')]=![];break;default:}return db['sequelize']['queryInterface'][_0x61cf('0x53')]('cm_contacts',util['format']('cf_%d',_0x1d2448['id']),_0x43039f);})['then'](function(){return _0x1d2448;});})[_0x61cf('0x3c')](respondWithResult(_0x2ecfe7,0xc9))['catch'](handleError(_0x2ecfe7,null));};