676ac78f291b9cc4b809ed69b2ce4f772afec95b
[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 _0xce52=['error','stack','name','send','index','rawAttributes','type','model','differenceBy','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','CmCustomField','includeAll','findAll','rows','show','params','keys','find','catch','body','sequelize','create','Sequelize','TEXT','number','INTEGER','BOOLEAN','defaultValue','queryInterface','addColumn','cm_contacts','cf_%d','zip-dir','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','undefined','limit','count','apply','then','end','sendStatus'];(function(_0x5dc9c6,_0x1bc545){var _0x4eadb0=function(_0x48de35){while(--_0x48de35){_0x5dc9c6['push'](_0x5dc9c6['shift']());}};_0x4eadb0(++_0x1bc545);}(_0xce52,0x167));var _0x2ce5=function(_0x12f557,_0x3fd1c0){_0x12f557=_0x12f557-0x0;var _0x19819c=_0xce52[_0x12f557];return _0x19819c;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x2ce5('0x0'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x2ce5('0x1'));var util=require(_0x2ce5('0x2'));var path=require(_0x2ce5('0x3'));var sox=require('sox');var csv=require(_0x2ce5('0x4'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2ce5('0x5'));var _=require(_0x2ce5('0x6'));var squel=require(_0x2ce5('0x7'));var crypto=require(_0x2ce5('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x2ce5('0x9'));var toCsv=require(_0x2ce5('0x4'));var querystring=require(_0x2ce5('0xa'));var Papa=require(_0x2ce5('0xb'));var Redis=require(_0x2ce5('0xc'));var authService=require(_0x2ce5('0xd'));var qs=require(_0x2ce5('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x2ce5('0xf'));var logger=require(_0x2ce5('0x10'))('api');var utils=require(_0x2ce5('0x11'));var config=require(_0x2ce5('0x12'));var licenseUtil=require(_0x2ce5('0x13'));var db=require(_0x2ce5('0x14'))['db'];function respondWithStatusCode(_0x2fd4dd,_0x58e96e){_0x58e96e=_0x58e96e||0xcc;return function(_0x59baab){if(_0x59baab){return _0x2fd4dd['sendStatus'](_0x58e96e);}return _0x2fd4dd[_0x2ce5('0x15')](_0x58e96e)['end']();};}function respondWithResult(_0x242e6a,_0x12d523){_0x12d523=_0x12d523||0xc8;return function(_0x4aa2df){if(_0x4aa2df){return _0x242e6a['status'](_0x12d523)[_0x2ce5('0x16')](_0x4aa2df);}};}function respondWithFilteredResult(_0x2b0f4a,_0x5da760){return function(_0x59df8d){if(_0x59df8d){var _0xf235f0=typeof _0x5da760[_0x2ce5('0x17')]===_0x2ce5('0x18')&&typeof _0x5da760[_0x2ce5('0x19')]===_0x2ce5('0x18');var _0x11019b=_0x59df8d[_0x2ce5('0x1a')];var _0x447491=_0xf235f0?0x0:_0x5da760[_0x2ce5('0x17')];var _0x55e883=_0xf235f0?_0x59df8d[_0x2ce5('0x1a')]:_0x5da760['offset']+_0x5da760['limit'];var _0x5ab2b3;if(_0x55e883>=_0x11019b){_0x55e883=_0x11019b;_0x5ab2b3=0xc8;}else{_0x5ab2b3=0xce;}_0x2b0f4a[_0x2ce5('0x15')](_0x5ab2b3);return _0x2b0f4a['set']('Content-Range',_0x447491+'-'+_0x55e883+'/'+_0x11019b)[_0x2ce5('0x16')](_0x59df8d);}return null;};}function patchUpdates(_0x5bfd5b){return function(_0x425971){try{jsonpatch[_0x2ce5('0x1b')](_0x425971,_0x5bfd5b,!![]);}catch(_0xb15e16){return BPromise['reject'](_0xb15e16);}return _0x425971['save']();};}function saveUpdates(_0x56eae,_0x15b6f9){return function(_0x57b997){if(_0x57b997){return _0x57b997['update'](_0x56eae)[_0x2ce5('0x1c')](function(_0x2fd9b2){return _0x2fd9b2;});}return null;};}function removeEntity(_0x4725b9,_0x286ecd){return function(_0x31a158){if(_0x31a158){return _0x31a158['destroy']()[_0x2ce5('0x1c')](function(){_0x4725b9['status'](0xcc)[_0x2ce5('0x1d')]();});}};}function handleEntityNotFound(_0x233574,_0x26e867){return function(_0x489d8d){if(!_0x489d8d){_0x233574[_0x2ce5('0x1e')](0x194);}return _0x489d8d;};}function handleError(_0x5e6830,_0xdd5178){_0xdd5178=_0xdd5178||0x1f4;return function(_0x3edf5c){logger[_0x2ce5('0x1f')](_0x3edf5c[_0x2ce5('0x20')]);if(_0x3edf5c[_0x2ce5('0x21')]){delete _0x3edf5c[_0x2ce5('0x21')];}_0x5e6830['status'](_0xdd5178)[_0x2ce5('0x22')](_0x3edf5c);};}exports[_0x2ce5('0x23')]=function(_0x26eb8c,_0x5edfa8){var _0x165e03={},_0x192ef7={},_0x2d257d={'count':0x0,'rows':[]};var _0x574355=_['map'](db['CmCustomField'][_0x2ce5('0x24')],function(_0x1047cf){return{'name':_0x1047cf['fieldName'],'type':_0x1047cf[_0x2ce5('0x25')]['key']};});_0x192ef7[_0x2ce5('0x26')]=_[_0x2ce5('0x27')](_['map'](_0x574355,_0x2ce5('0x21')),['name']);_0x192ef7['query']=_['keys'](_0x26eb8c[_0x2ce5('0x28')]);_0x192ef7[_0x2ce5('0x29')]=_[_0x2ce5('0x2a')](_0x192ef7[_0x2ce5('0x26')],_0x192ef7[_0x2ce5('0x28')]);_0x165e03[_0x2ce5('0x2b')]=_[_0x2ce5('0x2a')](_0x192ef7[_0x2ce5('0x26')],qs[_0x2ce5('0x2c')](_0x26eb8c[_0x2ce5('0x28')][_0x2ce5('0x2c')]));_0x165e03['attributes']=_0x165e03[_0x2ce5('0x2b')][_0x2ce5('0x2d')]?_0x165e03[_0x2ce5('0x2b')]:_0x192ef7['model'];if(!_0x26eb8c[_0x2ce5('0x28')][_0x2ce5('0x2e')](_0x2ce5('0x2f'))){_0x165e03[_0x2ce5('0x19')]=qs['limit'](_0x26eb8c[_0x2ce5('0x28')]['limit']);_0x165e03['offset']=qs[_0x2ce5('0x17')](_0x26eb8c['query'][_0x2ce5('0x17')]);}_0x165e03[_0x2ce5('0x30')]=qs['sort'](_0x26eb8c['query'][_0x2ce5('0x31')]);_0x165e03[_0x2ce5('0x32')]=qs[_0x2ce5('0x29')](_[_0x2ce5('0x33')](_0x26eb8c['query'],_0x192ef7[_0x2ce5('0x29')]),_0x574355);if(_0x26eb8c['query'][_0x2ce5('0x34')]){_0x165e03['where']=_[_0x2ce5('0x35')](_0x165e03[_0x2ce5('0x32')],{'$or':_['map'](_0x574355,function(_0x10f352){if(_0x10f352['type']!==_0x2ce5('0x36')){var _0x5cbeee={};_0x5cbeee[_0x10f352[_0x2ce5('0x21')]]={'$like':'%'+_0x26eb8c[_0x2ce5('0x28')][_0x2ce5('0x34')]+'%'};return _0x5cbeee;}})});}_0x165e03=_[_0x2ce5('0x35')]({},_0x165e03,_0x26eb8c[_0x2ce5('0x37')]);var _0x16a457={'where':_0x165e03[_0x2ce5('0x32')]};return db[_0x2ce5('0x38')][_0x2ce5('0x1a')](_0x16a457)[_0x2ce5('0x1c')](function(_0x125634){_0x2d257d[_0x2ce5('0x1a')]=_0x125634;if(_0x26eb8c[_0x2ce5('0x28')][_0x2ce5('0x39')]){_0x165e03['include']=[{'all':!![]}];}return db[_0x2ce5('0x38')][_0x2ce5('0x3a')](_0x165e03);})['then'](function(_0x5683e6){_0x2d257d[_0x2ce5('0x3b')]=_0x5683e6;return _0x2d257d;})[_0x2ce5('0x1c')](respondWithFilteredResult(_0x5edfa8,_0x165e03))['catch'](handleError(_0x5edfa8,null));};exports[_0x2ce5('0x3c')]=function(_0x240e51,_0x3eaaa8){var _0x5b4a21={'raw':!![],'where':{'id':_0x240e51[_0x2ce5('0x3d')]['id']}},_0x1f80dc={};_0x1f80dc[_0x2ce5('0x26')]=_[_0x2ce5('0x3e')](db[_0x2ce5('0x38')]['rawAttributes']);_0x1f80dc[_0x2ce5('0x28')]=_[_0x2ce5('0x3e')](_0x240e51[_0x2ce5('0x28')]);_0x1f80dc[_0x2ce5('0x29')]=_[_0x2ce5('0x2a')](_0x1f80dc[_0x2ce5('0x26')],_0x1f80dc[_0x2ce5('0x28')]);_0x5b4a21[_0x2ce5('0x2b')]=_[_0x2ce5('0x2a')](_0x1f80dc[_0x2ce5('0x26')],qs[_0x2ce5('0x2c')](_0x240e51[_0x2ce5('0x28')][_0x2ce5('0x2c')]));_0x5b4a21[_0x2ce5('0x2b')]=_0x5b4a21[_0x2ce5('0x2b')]['length']?_0x5b4a21[_0x2ce5('0x2b')]:_0x1f80dc[_0x2ce5('0x26')];if(_0x240e51[_0x2ce5('0x28')][_0x2ce5('0x39')]){_0x5b4a21['include']=[{'all':!![]}];}_0x5b4a21=_[_0x2ce5('0x35')]({},_0x5b4a21,_0x240e51['options']);return db[_0x2ce5('0x38')][_0x2ce5('0x3f')](_0x5b4a21)[_0x2ce5('0x1c')](handleEntityNotFound(_0x3eaaa8,null))['then'](respondWithResult(_0x3eaaa8,null))[_0x2ce5('0x40')](handleError(_0x3eaaa8,null));};exports['update']=function(_0x2ba86e,_0x39a507){if(_0x2ba86e[_0x2ce5('0x41')]['id']){delete _0x2ba86e[_0x2ce5('0x41')]['id'];}return db['CmCustomField']['find']({'where':{'id':_0x2ba86e['params']['id']}})[_0x2ce5('0x1c')](handleEntityNotFound(_0x39a507,null))[_0x2ce5('0x1c')](saveUpdates(_0x2ba86e[_0x2ce5('0x41')],null))[_0x2ce5('0x1c')](respondWithResult(_0x39a507,null))['catch'](handleError(_0x39a507,null));};exports['destroy']=function(_0x46b119,_0x5c6133){return db['CmCustomField'][_0x2ce5('0x3f')]({'where':{'id':_0x46b119[_0x2ce5('0x3d')]['id']}})[_0x2ce5('0x1c')](handleEntityNotFound(_0x5c6133,null))[_0x2ce5('0x1c')](removeEntity(_0x5c6133,null))['catch'](handleError(_0x5c6133,null));};exports['create']=function(_0x484612,_0x36f463){var _0xf36b15;return db[_0x2ce5('0x42')]['transaction'](function(_0x77f521){return db[_0x2ce5('0x38')][_0x2ce5('0x43')](_0x484612[_0x2ce5('0x41')],{'transaction':_0x77f521})[_0x2ce5('0x1c')](function(_0x118288){_0xf36b15=_0x118288;var _0x2891da={'type':db[_0x2ce5('0x44')]['TEXT'],'transaction':_0x77f521};switch(_0x484612[_0x2ce5('0x41')][_0x2ce5('0x25')]){case'text':_0x2891da[_0x2ce5('0x25')]=db[_0x2ce5('0x44')][_0x2ce5('0x45')];break;case _0x2ce5('0x46'):_0x2891da[_0x2ce5('0x25')]=db['Sequelize'][_0x2ce5('0x47')];break;case'switch':_0x2891da['type']=db[_0x2ce5('0x44')][_0x2ce5('0x48')];_0x2891da[_0x2ce5('0x49')]=![];break;default:}return db[_0x2ce5('0x42')][_0x2ce5('0x4a')][_0x2ce5('0x4b')](_0x2ce5('0x4c'),util['format'](_0x2ce5('0x4d'),_0xf36b15['id']),_0x2891da);})[_0x2ce5('0x1c')](function(){return _0xf36b15;});})[_0x2ce5('0x1c')](respondWithResult(_0x36f463,0xc9))[_0x2ce5('0x40')](handleError(_0x36f463,null));};