eca5ec01b8896323bd7c5499b11658c27e6d72ea
[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 _0x2bed=['bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','reject','update','then','destroy','error','stack','name','send','map','CmCustomField','rawAttributes','type','key','model','differenceBy','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','pick','filter','where','merge','options','includeAll','findAll','rows','catch','show','params','length','find','body','create','sequelize','transaction','TEXT','Sequelize','BOOLEAN','queryInterface','addColumn','cm_contacts','format','cf_%d','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x2bed,0xa8));var _0xd2be=function(_0x2f731f,_0x25b917){_0x2f731f=_0x2f731f-0x0;var _0x34b480=_0x2bed[_0x2f731f];return _0x34b480;};'use strict';var emlformat=require(_0xd2be('0x0'));var rimraf=require(_0xd2be('0x1'));var zipdir=require(_0xd2be('0x2'));var jsonpatch=require(_0xd2be('0x3'));var rp=require(_0xd2be('0x4'));var moment=require(_0xd2be('0x5'));var BPromise=require(_0xd2be('0x6'));var Mustache=require(_0xd2be('0x7'));var util=require(_0xd2be('0x8'));var path=require(_0xd2be('0x9'));var sox=require(_0xd2be('0xa'));var csv=require('to-csv');var ejs=require(_0xd2be('0xb'));var fs=require('fs');var fs_extra=require(_0xd2be('0xc'));var _=require(_0xd2be('0xd'));var squel=require(_0xd2be('0xe'));var crypto=require(_0xd2be('0xf'));var jsforce=require(_0xd2be('0x10'));var deskjs=require('desk.js');var toCsv=require(_0xd2be('0x11'));var querystring=require(_0xd2be('0x12'));var Papa=require(_0xd2be('0x13'));var Redis=require(_0xd2be('0x14'));var authService=require(_0xd2be('0x15'));var qs=require('../../components/parsers/qs');var as=require(_0xd2be('0x16'));var hardwareService=require(_0xd2be('0x17'));var logger=require(_0xd2be('0x18'))(_0xd2be('0x19'));var utils=require(_0xd2be('0x1a'));var config=require(_0xd2be('0x1b'));var licenseUtil=require('../../config/license/util');var db=require(_0xd2be('0x1c'))['db'];function respondWithStatusCode(_0x42c719,_0x3dddbd){_0x3dddbd=_0x3dddbd||0xcc;return function(_0x32c128){if(_0x32c128){return _0x42c719[_0xd2be('0x1d')](_0x3dddbd);}return _0x42c719['status'](_0x3dddbd)[_0xd2be('0x1e')]();};}function respondWithResult(_0x226437,_0x2fca2d){_0x2fca2d=_0x2fca2d||0xc8;return function(_0x439834){if(_0x439834){return _0x226437[_0xd2be('0x1f')](_0x2fca2d)[_0xd2be('0x20')](_0x439834);}};}function respondWithFilteredResult(_0x1a8892,_0x415520){return function(_0x3c7161){if(_0x3c7161){var _0x8036ee=typeof _0x415520[_0xd2be('0x21')]===_0xd2be('0x22')&&typeof _0x415520[_0xd2be('0x23')]==='undefined';var _0x3f64af=_0x3c7161[_0xd2be('0x24')];var _0x4616fc=_0x8036ee?0x0:_0x415520['offset'];var _0x25b497=_0x8036ee?_0x3c7161[_0xd2be('0x24')]:_0x415520[_0xd2be('0x21')]+_0x415520[_0xd2be('0x23')];var _0x4a47fa;if(_0x25b497>=_0x3f64af){_0x25b497=_0x3f64af;_0x4a47fa=0xc8;}else{_0x4a47fa=0xce;}_0x1a8892[_0xd2be('0x1f')](_0x4a47fa);return _0x1a8892[_0xd2be('0x25')]('Content-Range',_0x4616fc+'-'+_0x25b497+'/'+_0x3f64af)[_0xd2be('0x20')](_0x3c7161);}return null;};}function patchUpdates(_0x30045f){return function(_0x362152){try{jsonpatch['apply'](_0x362152,_0x30045f,!![]);}catch(_0x2178af){return BPromise[_0xd2be('0x26')](_0x2178af);}return _0x362152['save']();};}function saveUpdates(_0x50f3cd,_0x5c5fd2){return function(_0x558299){if(_0x558299){return _0x558299[_0xd2be('0x27')](_0x50f3cd)[_0xd2be('0x28')](function(_0x1302e8){return _0x1302e8;});}return null;};}function removeEntity(_0x9ba807,_0x838092){return function(_0x58e27d){if(_0x58e27d){return _0x58e27d[_0xd2be('0x29')]()[_0xd2be('0x28')](function(){_0x9ba807[_0xd2be('0x1f')](0xcc)[_0xd2be('0x1e')]();});}};}function handleEntityNotFound(_0x3eb89b,_0x22df8a){return function(_0x47fd11){if(!_0x47fd11){_0x3eb89b[_0xd2be('0x1d')](0x194);}return _0x47fd11;};}function handleError(_0x201257,_0x352f4a){_0x352f4a=_0x352f4a||0x1f4;return function(_0x496c57){logger[_0xd2be('0x2a')](_0x496c57[_0xd2be('0x2b')]);if(_0x496c57[_0xd2be('0x2c')]){delete _0x496c57[_0xd2be('0x2c')];}_0x201257['status'](_0x352f4a)[_0xd2be('0x2d')](_0x496c57);};}exports['index']=function(_0x30f456,_0x51864d){var _0x4d02f8={},_0x14991f={},_0x30aa82={'count':0x0,'rows':[]};var _0xda2b59=_[_0xd2be('0x2e')](db[_0xd2be('0x2f')][_0xd2be('0x30')],function(_0x1c054b){return{'name':_0x1c054b['fieldName'],'type':_0x1c054b[_0xd2be('0x31')][_0xd2be('0x32')]};});_0x14991f[_0xd2be('0x33')]=_[_0xd2be('0x34')](_[_0xd2be('0x2e')](_0xda2b59,'name'),['name']);_0x14991f[_0xd2be('0x35')]=_[_0xd2be('0x36')](_0x30f456['query']);_0x14991f[_0xd2be('0x37')]=_[_0xd2be('0x38')](_0x14991f[_0xd2be('0x33')],_0x14991f['query']);_0x4d02f8[_0xd2be('0x39')]=_[_0xd2be('0x38')](_0x14991f[_0xd2be('0x33')],qs[_0xd2be('0x3a')](_0x30f456[_0xd2be('0x35')][_0xd2be('0x3a')]));_0x4d02f8[_0xd2be('0x39')]=_0x4d02f8['attributes']['length']?_0x4d02f8['attributes']:_0x14991f[_0xd2be('0x33')];if(!_0x30f456[_0xd2be('0x35')][_0xd2be('0x3b')]('nolimit')){_0x4d02f8['limit']=qs[_0xd2be('0x23')](_0x30f456[_0xd2be('0x35')][_0xd2be('0x23')]);_0x4d02f8[_0xd2be('0x21')]=qs['offset'](_0x30f456[_0xd2be('0x35')]['offset']);}_0x4d02f8[_0xd2be('0x3c')]=qs[_0xd2be('0x3d')](_0x30f456[_0xd2be('0x35')]['sort']);_0x4d02f8['where']=qs[_0xd2be('0x37')](_[_0xd2be('0x3e')](_0x30f456[_0xd2be('0x35')],_0x14991f['filters']),_0xda2b59);if(_0x30f456['query'][_0xd2be('0x3f')]){_0x4d02f8[_0xd2be('0x40')]=_[_0xd2be('0x41')](_0x4d02f8[_0xd2be('0x40')],{'$or':_['map'](_0xda2b59,function(_0x2b599a){if(_0x2b599a[_0xd2be('0x31')]!=='VIRTUAL'){var _0x302232={};_0x302232[_0x2b599a['name']]={'$like':'%'+_0x30f456['query']['filter']+'%'};return _0x302232;}})});}_0x4d02f8=_['merge']({},_0x4d02f8,_0x30f456[_0xd2be('0x42')]);var _0x5b6d00={'where':_0x4d02f8[_0xd2be('0x40')]};return db[_0xd2be('0x2f')]['count'](_0x5b6d00)['then'](function(_0x2bcdce){_0x30aa82[_0xd2be('0x24')]=_0x2bcdce;if(_0x30f456['query'][_0xd2be('0x43')]){_0x4d02f8['include']=[{'all':!![]}];}return db['CmCustomField'][_0xd2be('0x44')](_0x4d02f8);})[_0xd2be('0x28')](function(_0x539958){_0x30aa82[_0xd2be('0x45')]=_0x539958;return _0x30aa82;})[_0xd2be('0x28')](respondWithFilteredResult(_0x51864d,_0x4d02f8))[_0xd2be('0x46')](handleError(_0x51864d,null));};exports[_0xd2be('0x47')]=function(_0x42ca37,_0x34fe7f){var _0x14d174={'raw':!![],'where':{'id':_0x42ca37[_0xd2be('0x48')]['id']}},_0x5a8cd7={};_0x5a8cd7[_0xd2be('0x33')]=_[_0xd2be('0x36')](db[_0xd2be('0x2f')]['rawAttributes']);_0x5a8cd7[_0xd2be('0x35')]=_['keys'](_0x42ca37['query']);_0x5a8cd7[_0xd2be('0x37')]=_['intersection'](_0x5a8cd7[_0xd2be('0x33')],_0x5a8cd7[_0xd2be('0x35')]);_0x14d174[_0xd2be('0x39')]=_[_0xd2be('0x38')](_0x5a8cd7[_0xd2be('0x33')],qs['fields'](_0x42ca37[_0xd2be('0x35')][_0xd2be('0x3a')]));_0x14d174[_0xd2be('0x39')]=_0x14d174[_0xd2be('0x39')][_0xd2be('0x49')]?_0x14d174[_0xd2be('0x39')]:_0x5a8cd7[_0xd2be('0x33')];if(_0x42ca37[_0xd2be('0x35')][_0xd2be('0x43')]){_0x14d174['include']=[{'all':!![]}];}_0x14d174=_[_0xd2be('0x41')]({},_0x14d174,_0x42ca37[_0xd2be('0x42')]);return db[_0xd2be('0x2f')][_0xd2be('0x4a')](_0x14d174)[_0xd2be('0x28')](handleEntityNotFound(_0x34fe7f,null))[_0xd2be('0x28')](respondWithResult(_0x34fe7f,null))['catch'](handleError(_0x34fe7f,null));};exports[_0xd2be('0x27')]=function(_0x283ec5,_0x235aa3){if(_0x283ec5[_0xd2be('0x4b')]['id']){delete _0x283ec5[_0xd2be('0x4b')]['id'];}return db['CmCustomField'][_0xd2be('0x4a')]({'where':{'id':_0x283ec5[_0xd2be('0x48')]['id']}})[_0xd2be('0x28')](handleEntityNotFound(_0x235aa3,null))[_0xd2be('0x28')](saveUpdates(_0x283ec5[_0xd2be('0x4b')],null))['then'](respondWithResult(_0x235aa3,null))[_0xd2be('0x46')](handleError(_0x235aa3,null));};exports['destroy']=function(_0x6a5df,_0x3ca1e3){return db[_0xd2be('0x2f')][_0xd2be('0x4a')]({'where':{'id':_0x6a5df[_0xd2be('0x48')]['id']}})['then'](handleEntityNotFound(_0x3ca1e3,null))[_0xd2be('0x28')](removeEntity(_0x3ca1e3,null))['catch'](handleError(_0x3ca1e3,null));};exports[_0xd2be('0x4c')]=function(_0x460ce7,_0x1c366e){var _0x3fad6b;return db[_0xd2be('0x4d')][_0xd2be('0x4e')](function(_0x64b987){return db['CmCustomField']['create'](_0x460ce7[_0xd2be('0x4b')],{'transaction':_0x64b987})[_0xd2be('0x28')](function(_0x57275e){_0x3fad6b=_0x57275e;var _0x44519a={'type':db['Sequelize'][_0xd2be('0x4f')],'transaction':_0x64b987};switch(_0x460ce7[_0xd2be('0x4b')]['type']){case'text':_0x44519a[_0xd2be('0x31')]=db[_0xd2be('0x50')][_0xd2be('0x4f')];break;case'number':_0x44519a[_0xd2be('0x31')]=db['Sequelize']['INTEGER'];break;case'switch':_0x44519a[_0xd2be('0x31')]=db['Sequelize'][_0xd2be('0x51')];_0x44519a['defaultValue']=![];break;default:}return db[_0xd2be('0x4d')][_0xd2be('0x52')][_0xd2be('0x53')](_0xd2be('0x54'),util[_0xd2be('0x55')](_0xd2be('0x56'),_0x3fad6b['id']),_0x44519a);})[_0xd2be('0x28')](function(){return _0x3fad6b;});})[_0xd2be('0x28')](respondWithResult(_0x1c366e,0xc9))['catch'](handleError(_0x1c366e,null));};