Built motion from commit e781dc3c.|2.5.42
[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 _0x07ff=['../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','reject','save','update','then','name','send','index','CmCustomField','type','differenceBy','query','keys','intersection','attributes','fields','length','model','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','findAll','catch','show','rawAttributes','include','find','body','params','destroy','sequelize','transaction','create','Sequelize','TEXT','switch','defaultValue','queryInterface','addColumn','format','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api'];(function(_0x3abbba,_0x220474){var _0x415163=function(_0x5a19ca){while(--_0x5a19ca){_0x3abbba['push'](_0x3abbba['shift']());}};_0x415163(++_0x220474);}(_0x07ff,0xe3));var _0xf07f=function(_0x3402da,_0x4c3654){_0x3402da=_0x3402da-0x0;var _0x1acf5f=_0x07ff[_0x3402da];return _0x1acf5f;};'use strict';var emlformat=require(_0xf07f('0x0'));var rimraf=require(_0xf07f('0x1'));var zipdir=require(_0xf07f('0x2'));var jsonpatch=require(_0xf07f('0x3'));var rp=require('request-promise');var moment=require(_0xf07f('0x4'));var BPromise=require(_0xf07f('0x5'));var Mustache=require(_0xf07f('0x6'));var util=require(_0xf07f('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0xf07f('0x8'));var ejs=require(_0xf07f('0x9'));var fs=require('fs');var fs_extra=require(_0xf07f('0xa'));var _=require(_0xf07f('0xb'));var squel=require(_0xf07f('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xf07f('0xd'));var toCsv=require('to-csv');var querystring=require(_0xf07f('0xe'));var Papa=require(_0xf07f('0xf'));var Redis=require(_0xf07f('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xf07f('0x11'));var as=require(_0xf07f('0x12'));var hardwareService=require(_0xf07f('0x13'));var logger=require(_0xf07f('0x14'))(_0xf07f('0x15'));var utils=require(_0xf07f('0x16'));var config=require(_0xf07f('0x17'));var licenseUtil=require(_0xf07f('0x18'));var db=require(_0xf07f('0x19'))['db'];function respondWithStatusCode(_0x3029af,_0x4ee1cb){_0x4ee1cb=_0x4ee1cb||0xcc;return function(_0xf945f0){if(_0xf945f0){return _0x3029af[_0xf07f('0x1a')](_0x4ee1cb);}return _0x3029af[_0xf07f('0x1b')](_0x4ee1cb)[_0xf07f('0x1c')]();};}function respondWithResult(_0x905ef3,_0x4aab42){_0x4aab42=_0x4aab42||0xc8;return function(_0x4535eb){if(_0x4535eb){return _0x905ef3[_0xf07f('0x1b')](_0x4aab42)[_0xf07f('0x1d')](_0x4535eb);}};}function respondWithFilteredResult(_0x11018f,_0x6d6631){return function(_0x151c42){if(_0x151c42){var _0x316a4c=typeof _0x6d6631[_0xf07f('0x1e')]==='undefined'&&typeof _0x6d6631['limit']===_0xf07f('0x1f');var _0x37e071=_0x151c42[_0xf07f('0x20')];var _0x1beb4a=_0x316a4c?0x0:_0x6d6631['offset'];var _0xd12dde=_0x316a4c?_0x151c42[_0xf07f('0x20')]:_0x6d6631[_0xf07f('0x1e')]+_0x6d6631[_0xf07f('0x21')];var _0x348141;if(_0xd12dde>=_0x37e071){_0xd12dde=_0x37e071;_0x348141=0xc8;}else{_0x348141=0xce;}_0x11018f[_0xf07f('0x1b')](_0x348141);return _0x11018f[_0xf07f('0x22')]('Content-Range',_0x1beb4a+'-'+_0xd12dde+'/'+_0x37e071)['json'](_0x151c42);}return null;};}function patchUpdates(_0x53f81a){return function(_0x2c788a){try{jsonpatch[_0xf07f('0x23')](_0x2c788a,_0x53f81a,!![]);}catch(_0x2dcb18){return BPromise[_0xf07f('0x24')](_0x2dcb18);}return _0x2c788a[_0xf07f('0x25')]();};}function saveUpdates(_0x50a7aa,_0x4a5318){return function(_0x1addb8){if(_0x1addb8){return _0x1addb8[_0xf07f('0x26')](_0x50a7aa)[_0xf07f('0x27')](function(_0x3d0e76){return _0x3d0e76;});}return null;};}function removeEntity(_0xcd02e7,_0x4160c6){return function(_0x37a1c0){if(_0x37a1c0){return _0x37a1c0['destroy']()['then'](function(){_0xcd02e7[_0xf07f('0x1b')](0xcc)[_0xf07f('0x1c')]();});}};}function handleEntityNotFound(_0x18af2b,_0xda9883){return function(_0x341a40){if(!_0x341a40){_0x18af2b[_0xf07f('0x1a')](0x194);}return _0x341a40;};}function handleError(_0x15585e,_0x5f5cb2){_0x5f5cb2=_0x5f5cb2||0x1f4;return function(_0x49095f){logger['error'](_0x49095f['stack']);if(_0x49095f['name']){delete _0x49095f[_0xf07f('0x28')];}_0x15585e[_0xf07f('0x1b')](_0x5f5cb2)[_0xf07f('0x29')](_0x49095f);};}exports[_0xf07f('0x2a')]=function(_0x41cb96,_0x3fd7cf){var _0x4af8a2={},_0x3f5e5f={},_0x503495={'count':0x0,'rows':[]};var _0x5ad212=_['map'](db[_0xf07f('0x2b')]['rawAttributes'],function(_0xefe8dd){return{'name':_0xefe8dd['fieldName'],'type':_0xefe8dd[_0xf07f('0x2c')]['key']};});_0x3f5e5f['model']=_[_0xf07f('0x2d')](_['map'](_0x5ad212,'name'),[_0xf07f('0x28')]);_0x3f5e5f[_0xf07f('0x2e')]=_[_0xf07f('0x2f')](_0x41cb96['query']);_0x3f5e5f['filters']=_[_0xf07f('0x30')](_0x3f5e5f['model'],_0x3f5e5f[_0xf07f('0x2e')]);_0x4af8a2[_0xf07f('0x31')]=_[_0xf07f('0x30')](_0x3f5e5f['model'],qs[_0xf07f('0x32')](_0x41cb96[_0xf07f('0x2e')][_0xf07f('0x32')]));_0x4af8a2['attributes']=_0x4af8a2['attributes'][_0xf07f('0x33')]?_0x4af8a2['attributes']:_0x3f5e5f[_0xf07f('0x34')];if(!_0x41cb96[_0xf07f('0x2e')][_0xf07f('0x35')](_0xf07f('0x36'))){_0x4af8a2[_0xf07f('0x21')]=qs['limit'](_0x41cb96['query'][_0xf07f('0x21')]);_0x4af8a2[_0xf07f('0x1e')]=qs[_0xf07f('0x1e')](_0x41cb96[_0xf07f('0x2e')][_0xf07f('0x1e')]);}_0x4af8a2['order']=qs[_0xf07f('0x37')](_0x41cb96['query'][_0xf07f('0x37')]);_0x4af8a2[_0xf07f('0x38')]=qs[_0xf07f('0x39')](_[_0xf07f('0x3a')](_0x41cb96['query'],_0x3f5e5f[_0xf07f('0x39')]),_0x5ad212);if(_0x41cb96[_0xf07f('0x2e')][_0xf07f('0x3b')]){_0x4af8a2['where']=_[_0xf07f('0x3c')](_0x4af8a2[_0xf07f('0x38')],{'$or':_['map'](_0x5ad212,function(_0x14a7ac){if(_0x14a7ac['type']!==_0xf07f('0x3d')){var _0x22c34f={};_0x22c34f[_0x14a7ac[_0xf07f('0x28')]]={'$like':'%'+_0x41cb96[_0xf07f('0x2e')][_0xf07f('0x3b')]+'%'};return _0x22c34f;}})});}_0x4af8a2=_['merge']({},_0x4af8a2,_0x41cb96[_0xf07f('0x3e')]);var _0x47efe0={'where':_0x4af8a2['where']};return db[_0xf07f('0x2b')]['count'](_0x47efe0)[_0xf07f('0x27')](function(_0x4b2728){_0x503495[_0xf07f('0x20')]=_0x4b2728;if(_0x41cb96[_0xf07f('0x2e')][_0xf07f('0x3f')]){_0x4af8a2['include']=[{'all':!![]}];}return db[_0xf07f('0x2b')][_0xf07f('0x40')](_0x4af8a2);})[_0xf07f('0x27')](function(_0x216833){_0x503495['rows']=_0x216833;return _0x503495;})[_0xf07f('0x27')](respondWithFilteredResult(_0x3fd7cf,_0x4af8a2))[_0xf07f('0x41')](handleError(_0x3fd7cf,null));};exports[_0xf07f('0x42')]=function(_0x367169,_0x3ebd9e){var _0x5d460a={'raw':!![],'where':{'id':_0x367169['params']['id']}},_0x236537={};_0x236537[_0xf07f('0x34')]=_[_0xf07f('0x2f')](db['CmCustomField'][_0xf07f('0x43')]);_0x236537[_0xf07f('0x2e')]=_['keys'](_0x367169[_0xf07f('0x2e')]);_0x236537[_0xf07f('0x39')]=_[_0xf07f('0x30')](_0x236537[_0xf07f('0x34')],_0x236537[_0xf07f('0x2e')]);_0x5d460a[_0xf07f('0x31')]=_[_0xf07f('0x30')](_0x236537[_0xf07f('0x34')],qs['fields'](_0x367169[_0xf07f('0x2e')]['fields']));_0x5d460a[_0xf07f('0x31')]=_0x5d460a['attributes']['length']?_0x5d460a[_0xf07f('0x31')]:_0x236537['model'];if(_0x367169[_0xf07f('0x2e')]['includeAll']){_0x5d460a[_0xf07f('0x44')]=[{'all':!![]}];}_0x5d460a=_[_0xf07f('0x3c')]({},_0x5d460a,_0x367169['options']);return db[_0xf07f('0x2b')][_0xf07f('0x45')](_0x5d460a)[_0xf07f('0x27')](handleEntityNotFound(_0x3ebd9e,null))[_0xf07f('0x27')](respondWithResult(_0x3ebd9e,null))[_0xf07f('0x41')](handleError(_0x3ebd9e,null));};exports[_0xf07f('0x26')]=function(_0x3647eb,_0x7ba9fc){if(_0x3647eb[_0xf07f('0x46')]['id']){delete _0x3647eb[_0xf07f('0x46')]['id'];}return db[_0xf07f('0x2b')][_0xf07f('0x45')]({'where':{'id':_0x3647eb[_0xf07f('0x47')]['id']}})['then'](handleEntityNotFound(_0x7ba9fc,null))[_0xf07f('0x27')](saveUpdates(_0x3647eb[_0xf07f('0x46')],null))[_0xf07f('0x27')](respondWithResult(_0x7ba9fc,null))['catch'](handleError(_0x7ba9fc,null));};exports[_0xf07f('0x48')]=function(_0x53f67b,_0x1af47d){return db[_0xf07f('0x2b')][_0xf07f('0x45')]({'where':{'id':_0x53f67b[_0xf07f('0x47')]['id']}})['then'](handleEntityNotFound(_0x1af47d,null))[_0xf07f('0x27')](removeEntity(_0x1af47d,null))[_0xf07f('0x41')](handleError(_0x1af47d,null));};exports['create']=function(_0x1eabdd,_0x1ad166){var _0x26cbdc;return db[_0xf07f('0x49')][_0xf07f('0x4a')](function(_0x11d443){return db[_0xf07f('0x2b')][_0xf07f('0x4b')](_0x1eabdd['body'],{'transaction':_0x11d443})[_0xf07f('0x27')](function(_0x2d02df){_0x26cbdc=_0x2d02df;var _0x42dfb9={'type':db[_0xf07f('0x4c')][_0xf07f('0x4d')],'transaction':_0x11d443};switch(_0x1eabdd[_0xf07f('0x46')][_0xf07f('0x2c')]){case'text':_0x42dfb9['type']=db[_0xf07f('0x4c')][_0xf07f('0x4d')];break;case'number':_0x42dfb9[_0xf07f('0x2c')]=db['Sequelize']['INTEGER'];break;case _0xf07f('0x4e'):_0x42dfb9[_0xf07f('0x2c')]=db[_0xf07f('0x4c')]['BOOLEAN'];_0x42dfb9[_0xf07f('0x4f')]=![];break;default:}return db[_0xf07f('0x49')][_0xf07f('0x50')][_0xf07f('0x51')]('cm_contacts',util[_0xf07f('0x52')]('cf_%d',_0x26cbdc['id']),_0x42dfb9);})[_0xf07f('0x27')](function(){return _0x26cbdc;});})[_0xf07f('0x27')](respondWithResult(_0x1ad166,0xc9))[_0xf07f('0x41')](handleError(_0x1ad166,null));};