6c8278f0044eb30a95190673553aa2a286361b12
[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 _0xbf18=['rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','show','options','find','catch','body','params','destroy','create','sequelize','Sequelize','TEXT','text','number','INTEGER','BOOLEAN','defaultValue','queryInterface','addColumn','cm_contacts','format','cf_%d','eml-format','zip-dir','moment','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','end','error','stack','name','map','CmCustomField'];(function(_0x34456d,_0x10b1e4){var _0x1a131c=function(_0x23606d){while(--_0x23606d){_0x34456d['push'](_0x34456d['shift']());}};_0x1a131c(++_0x10b1e4);}(_0xbf18,0x1eb));var _0x8bf1=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xbf18[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x8bf1('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8bf1('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x8bf1('0x2'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x8bf1('0x3'));var path=require('path');var sox=require(_0x8bf1('0x4'));var csv=require(_0x8bf1('0x5'));var ejs=require(_0x8bf1('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8bf1('0x7'));var squel=require('squel');var crypto=require(_0x8bf1('0x8'));var jsforce=require(_0x8bf1('0x9'));var deskjs=require(_0x8bf1('0xa'));var toCsv=require(_0x8bf1('0x5'));var querystring=require(_0x8bf1('0xb'));var Papa=require(_0x8bf1('0xc'));var Redis=require(_0x8bf1('0xd'));var authService=require(_0x8bf1('0xe'));var qs=require(_0x8bf1('0xf'));var as=require(_0x8bf1('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8bf1('0x11'))(_0x8bf1('0x12'));var utils=require(_0x8bf1('0x13'));var config=require(_0x8bf1('0x14'));var licenseUtil=require(_0x8bf1('0x15'));var db=require(_0x8bf1('0x16'))['db'];function respondWithStatusCode(_0x3b166c,_0x582e51){_0x582e51=_0x582e51||0xcc;return function(_0x434076){if(_0x434076){return _0x3b166c[_0x8bf1('0x17')](_0x582e51);}return _0x3b166c['status'](_0x582e51)['end']();};}function respondWithResult(_0x5563f6,_0x483662){_0x483662=_0x483662||0xc8;return function(_0x30af91){if(_0x30af91){return _0x5563f6[_0x8bf1('0x18')](_0x483662)[_0x8bf1('0x19')](_0x30af91);}};}function respondWithFilteredResult(_0x14ac6a,_0x204605){return function(_0x286819){if(_0x286819){var _0x30409a=typeof _0x204605[_0x8bf1('0x1a')]===_0x8bf1('0x1b')&&typeof _0x204605['limit']===_0x8bf1('0x1b');var _0x42016d=_0x286819[_0x8bf1('0x1c')];var _0x5d912d=_0x30409a?0x0:_0x204605['offset'];var _0x3e2d20=_0x30409a?_0x286819[_0x8bf1('0x1c')]:_0x204605['offset']+_0x204605[_0x8bf1('0x1d')];var _0x5eb6ee;if(_0x3e2d20>=_0x42016d){_0x3e2d20=_0x42016d;_0x5eb6ee=0xc8;}else{_0x5eb6ee=0xce;}_0x14ac6a['status'](_0x5eb6ee);return _0x14ac6a[_0x8bf1('0x1e')](_0x8bf1('0x1f'),_0x5d912d+'-'+_0x3e2d20+'/'+_0x42016d)[_0x8bf1('0x19')](_0x286819);}return null;};}function patchUpdates(_0x93a69e){return function(_0x35b17f){try{jsonpatch[_0x8bf1('0x20')](_0x35b17f,_0x93a69e,!![]);}catch(_0x1f5bff){return BPromise[_0x8bf1('0x21')](_0x1f5bff);}return _0x35b17f[_0x8bf1('0x22')]();};}function saveUpdates(_0x343e03,_0x38bb67){return function(_0x37d9bb){if(_0x37d9bb){return _0x37d9bb[_0x8bf1('0x23')](_0x343e03)[_0x8bf1('0x24')](function(_0x75dba1){return _0x75dba1;});}return null;};}function removeEntity(_0x1e73f7,_0x470f71){return function(_0x4fe4e8){if(_0x4fe4e8){return _0x4fe4e8['destroy']()[_0x8bf1('0x24')](function(){_0x1e73f7[_0x8bf1('0x18')](0xcc)[_0x8bf1('0x25')]();});}};}function handleEntityNotFound(_0x3339b0,_0x5a7dcc){return function(_0x1b076a){if(!_0x1b076a){_0x3339b0[_0x8bf1('0x17')](0x194);}return _0x1b076a;};}function handleError(_0x1f88ac,_0x2b1d3a){_0x2b1d3a=_0x2b1d3a||0x1f4;return function(_0x412039){logger[_0x8bf1('0x26')](_0x412039[_0x8bf1('0x27')]);if(_0x412039['name']){delete _0x412039[_0x8bf1('0x28')];}_0x1f88ac[_0x8bf1('0x18')](_0x2b1d3a)['send'](_0x412039);};}exports['index']=function(_0x22d8ac,_0x3723a4){var _0x1d9f52={},_0x5afc97={},_0x33cf25={'count':0x0,'rows':[]};var _0x52d911=_[_0x8bf1('0x29')](db[_0x8bf1('0x2a')][_0x8bf1('0x2b')],function(_0x212e6e){return{'name':_0x212e6e[_0x8bf1('0x2c')],'type':_0x212e6e[_0x8bf1('0x2d')][_0x8bf1('0x2e')]};});_0x5afc97[_0x8bf1('0x2f')]=_['differenceBy'](_[_0x8bf1('0x29')](_0x52d911,_0x8bf1('0x28')),[_0x8bf1('0x28')]);_0x5afc97[_0x8bf1('0x30')]=_[_0x8bf1('0x31')](_0x22d8ac[_0x8bf1('0x30')]);_0x5afc97[_0x8bf1('0x32')]=_[_0x8bf1('0x33')](_0x5afc97[_0x8bf1('0x2f')],_0x5afc97[_0x8bf1('0x30')]);_0x1d9f52['attributes']=_['intersection'](_0x5afc97[_0x8bf1('0x2f')],qs[_0x8bf1('0x34')](_0x22d8ac[_0x8bf1('0x30')]['fields']));_0x1d9f52['attributes']=_0x1d9f52[_0x8bf1('0x35')][_0x8bf1('0x36')]?_0x1d9f52[_0x8bf1('0x35')]:_0x5afc97['model'];if(!_0x22d8ac[_0x8bf1('0x30')][_0x8bf1('0x37')](_0x8bf1('0x38'))){_0x1d9f52[_0x8bf1('0x1d')]=qs[_0x8bf1('0x1d')](_0x22d8ac[_0x8bf1('0x30')]['limit']);_0x1d9f52[_0x8bf1('0x1a')]=qs[_0x8bf1('0x1a')](_0x22d8ac[_0x8bf1('0x30')][_0x8bf1('0x1a')]);}_0x1d9f52[_0x8bf1('0x39')]=qs[_0x8bf1('0x3a')](_0x22d8ac['query'][_0x8bf1('0x3a')]);_0x1d9f52[_0x8bf1('0x3b')]=qs[_0x8bf1('0x32')](_[_0x8bf1('0x3c')](_0x22d8ac[_0x8bf1('0x30')],_0x5afc97[_0x8bf1('0x32')]),_0x52d911);if(_0x22d8ac[_0x8bf1('0x30')][_0x8bf1('0x3d')]){_0x1d9f52[_0x8bf1('0x3b')]=_[_0x8bf1('0x3e')](_0x1d9f52[_0x8bf1('0x3b')],{'$or':_[_0x8bf1('0x29')](_0x52d911,function(_0xbc6af8){if(_0xbc6af8[_0x8bf1('0x2d')]!==_0x8bf1('0x3f')){var _0x2d7a5d={};_0x2d7a5d[_0xbc6af8[_0x8bf1('0x28')]]={'$like':'%'+_0x22d8ac[_0x8bf1('0x30')][_0x8bf1('0x3d')]+'%'};return _0x2d7a5d;}})});}_0x1d9f52=_[_0x8bf1('0x3e')]({},_0x1d9f52,_0x22d8ac['options']);var _0x2d5b49={'where':_0x1d9f52[_0x8bf1('0x3b')]};return db[_0x8bf1('0x2a')]['count'](_0x2d5b49)['then'](function(_0x1c1883){_0x33cf25['count']=_0x1c1883;if(_0x22d8ac[_0x8bf1('0x30')][_0x8bf1('0x40')]){_0x1d9f52[_0x8bf1('0x41')]=[{'all':!![]}];}return db[_0x8bf1('0x2a')][_0x8bf1('0x42')](_0x1d9f52);})['then'](function(_0x45ec46){_0x33cf25[_0x8bf1('0x43')]=_0x45ec46;return _0x33cf25;})[_0x8bf1('0x24')](respondWithFilteredResult(_0x3723a4,_0x1d9f52))['catch'](handleError(_0x3723a4,null));};exports[_0x8bf1('0x44')]=function(_0x5293ed,_0xe91d7e){var _0x569362={'raw':!![],'where':{'id':_0x5293ed['params']['id']}},_0x7b3481={};_0x7b3481['model']=_[_0x8bf1('0x31')](db['CmCustomField'][_0x8bf1('0x2b')]);_0x7b3481[_0x8bf1('0x30')]=_[_0x8bf1('0x31')](_0x5293ed[_0x8bf1('0x30')]);_0x7b3481['filters']=_[_0x8bf1('0x33')](_0x7b3481[_0x8bf1('0x2f')],_0x7b3481[_0x8bf1('0x30')]);_0x569362[_0x8bf1('0x35')]=_[_0x8bf1('0x33')](_0x7b3481[_0x8bf1('0x2f')],qs[_0x8bf1('0x34')](_0x5293ed[_0x8bf1('0x30')]['fields']));_0x569362[_0x8bf1('0x35')]=_0x569362['attributes'][_0x8bf1('0x36')]?_0x569362[_0x8bf1('0x35')]:_0x7b3481['model'];if(_0x5293ed[_0x8bf1('0x30')][_0x8bf1('0x40')]){_0x569362['include']=[{'all':!![]}];}_0x569362=_[_0x8bf1('0x3e')]({},_0x569362,_0x5293ed[_0x8bf1('0x45')]);return db[_0x8bf1('0x2a')][_0x8bf1('0x46')](_0x569362)[_0x8bf1('0x24')](handleEntityNotFound(_0xe91d7e,null))['then'](respondWithResult(_0xe91d7e,null))[_0x8bf1('0x47')](handleError(_0xe91d7e,null));};exports[_0x8bf1('0x23')]=function(_0x48e975,_0x4c387f){if(_0x48e975[_0x8bf1('0x48')]['id']){delete _0x48e975[_0x8bf1('0x48')]['id'];}return db['CmCustomField']['find']({'where':{'id':_0x48e975[_0x8bf1('0x49')]['id']}})[_0x8bf1('0x24')](handleEntityNotFound(_0x4c387f,null))['then'](saveUpdates(_0x48e975[_0x8bf1('0x48')],null))[_0x8bf1('0x24')](respondWithResult(_0x4c387f,null))[_0x8bf1('0x47')](handleError(_0x4c387f,null));};exports[_0x8bf1('0x4a')]=function(_0x92fd3e,_0x2ed445){return db[_0x8bf1('0x2a')][_0x8bf1('0x46')]({'where':{'id':_0x92fd3e[_0x8bf1('0x49')]['id']}})[_0x8bf1('0x24')](handleEntityNotFound(_0x2ed445,null))[_0x8bf1('0x24')](removeEntity(_0x2ed445,null))['catch'](handleError(_0x2ed445,null));};exports[_0x8bf1('0x4b')]=function(_0x49dfc5,_0x237842){var _0xfdf27;return db[_0x8bf1('0x4c')]['transaction'](function(_0x517159){return db[_0x8bf1('0x2a')][_0x8bf1('0x4b')](_0x49dfc5[_0x8bf1('0x48')],{'transaction':_0x517159})[_0x8bf1('0x24')](function(_0x38bcd1){_0xfdf27=_0x38bcd1;var _0x31c2de={'type':db[_0x8bf1('0x4d')][_0x8bf1('0x4e')],'transaction':_0x517159};switch(_0x49dfc5[_0x8bf1('0x48')][_0x8bf1('0x2d')]){case _0x8bf1('0x4f'):_0x31c2de[_0x8bf1('0x2d')]=db['Sequelize'][_0x8bf1('0x4e')];break;case _0x8bf1('0x50'):_0x31c2de['type']=db[_0x8bf1('0x4d')][_0x8bf1('0x51')];break;case'switch':_0x31c2de[_0x8bf1('0x2d')]=db[_0x8bf1('0x4d')][_0x8bf1('0x52')];_0x31c2de[_0x8bf1('0x53')]=![];break;default:}return db[_0x8bf1('0x4c')][_0x8bf1('0x54')][_0x8bf1('0x55')](_0x8bf1('0x56'),util[_0x8bf1('0x57')](_0x8bf1('0x58'),_0xfdf27['id']),_0x31c2de);})['then'](function(){return _0xfdf27;});})[_0x8bf1('0x24')](respondWithResult(_0x237842,0xc9))['catch'](handleError(_0x237842,null));};