b258d70015de4e5de9583b7f4a99d0e95cab825e
[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 _0x4819=['filter','type','VIRTUAL','count','include','findAll','catch','show','CmCustomField','fields','options','find','params','create','TEXT','text','Sequelize','switch','BOOLEAN','defaultValue','queryInterface','addColumn','cm_contacts','format','cf_%d','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','squel','crypto','jsforce','desk.js','to-csv','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','limit','offset','set','Content-Range','apply','reject','update','then','destroy','stack','name','send','render','merge','body','contact','agent','interaction','account','rawAttributes','fieldName','key','model','differenceBy','map','query','keys','intersection','attributes','length','nolimit','order','where','pick','filters'];(function(_0x7ea810,_0x20bf8a){var _0x4e3170=function(_0x3cc163){while(--_0x3cc163){_0x7ea810['push'](_0x7ea810['shift']());}};_0x4e3170(++_0x20bf8a);}(_0x4819,0xcd));var _0x9481=function(_0xe6f4ef,_0x4e34cc){_0xe6f4ef=_0xe6f4ef-0x0;var _0x4f3447=_0x4819[_0xe6f4ef];return _0x4f3447;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9481('0x0'));var zipdir=require(_0x9481('0x1'));var jsonpatch=require(_0x9481('0x2'));var rp=require(_0x9481('0x3'));var moment=require(_0x9481('0x4'));var BPromise=require(_0x9481('0x5'));var Mustache=require(_0x9481('0x6'));var util=require(_0x9481('0x7'));var path=require(_0x9481('0x8'));var sox=require(_0x9481('0x9'));var csv=require('to-csv');var ejs=require(_0x9481('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x9481('0xb'));var crypto=require(_0x9481('0xc'));var jsforce=require(_0x9481('0xd'));var deskjs=require(_0x9481('0xe'));var toCsv=require(_0x9481('0xf'));var querystring=require('querystring');var Papa=require(_0x9481('0x10'));var Redis=require('ioredis');var authService=require(_0x9481('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x9481('0x12'));var hardwareService=require(_0x9481('0x13'));var logger=require(_0x9481('0x14'))(_0x9481('0x15'));var utils=require(_0x9481('0x16'));var config=require(_0x9481('0x17'));var licenseUtil=require(_0x9481('0x18'));var db=require(_0x9481('0x19'))['db'];function respondWithStatusCode(_0xed8e9,_0x499b87){_0x499b87=_0x499b87||0xcc;return function(_0x5aac02){if(_0x5aac02){return _0xed8e9[_0x9481('0x1a')](_0x499b87);}return _0xed8e9[_0x9481('0x1b')](_0x499b87)[_0x9481('0x1c')]();};}function respondWithResult(_0x28fcb6,_0x3d23c2){_0x3d23c2=_0x3d23c2||0xc8;return function(_0xc7a0b5){if(_0xc7a0b5){return _0x28fcb6[_0x9481('0x1b')](_0x3d23c2)['json'](_0xc7a0b5);}};}function respondWithFilteredResult(_0x4220f1,_0x7a7ee){return function(_0x5b1fe6){if(_0x5b1fe6){var _0x2266d5=typeof _0x7a7ee['offset']===_0x9481('0x1d')&&typeof _0x7a7ee[_0x9481('0x1e')]===_0x9481('0x1d');var _0x2bb2a4=_0x5b1fe6['count'];var _0x5eda66=_0x2266d5?0x0:_0x7a7ee[_0x9481('0x1f')];var _0x50a559=_0x2266d5?_0x5b1fe6['count']:_0x7a7ee[_0x9481('0x1f')]+_0x7a7ee[_0x9481('0x1e')];var _0x18c6f5;if(_0x50a559>=_0x2bb2a4){_0x50a559=_0x2bb2a4;_0x18c6f5=0xc8;}else{_0x18c6f5=0xce;}_0x4220f1[_0x9481('0x1b')](_0x18c6f5);return _0x4220f1[_0x9481('0x20')](_0x9481('0x21'),_0x5eda66+'-'+_0x50a559+'/'+_0x2bb2a4)['json'](_0x5b1fe6);}return null;};}function patchUpdates(_0x2cf1aa){return function(_0x272a84){try{jsonpatch[_0x9481('0x22')](_0x272a84,_0x2cf1aa,!![]);}catch(_0x615e02){return BPromise[_0x9481('0x23')](_0x615e02);}return _0x272a84['save']();};}function saveUpdates(_0x215dd7,_0x294908){return function(_0x572599){if(_0x572599){return _0x572599[_0x9481('0x24')](_0x215dd7)[_0x9481('0x25')](function(_0x352b3a){return _0x352b3a;});}return null;};}function removeEntity(_0x1809d2,_0x2dc02e){return function(_0x49ecfa){if(_0x49ecfa){return _0x49ecfa[_0x9481('0x26')]()[_0x9481('0x25')](function(){_0x1809d2['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x12b0c3,_0x299e28){return function(_0x550fce){if(!_0x550fce){_0x12b0c3[_0x9481('0x1a')](0x194);}return _0x550fce;};}function handleError(_0x20ff9a,_0xeff0a5){_0xeff0a5=_0xeff0a5||0x1f4;return function(_0x28ae1b){logger['error'](_0x28ae1b[_0x9481('0x27')]);if(_0x28ae1b[_0x9481('0x28')]){delete _0x28ae1b[_0x9481('0x28')];}_0x20ff9a['status'](_0xeff0a5)[_0x9481('0x29')](_0x28ae1b);};}function getMustacheRender(_0x56e944,_0x2e1eff){return Mustache[_0x9481('0x2a')](_0x56e944,_[_0x9481('0x2b')](_0x2e1eff[_0x9481('0x2c')],{'contact':_0x2e1eff[_0x9481('0x2d')],'message':_0x2e1eff['message'],'agent':_0x2e1eff[_0x9481('0x2e')],'interaction':_0x2e1eff[_0x9481('0x2f')],'account':_0x2e1eff[_0x9481('0x30')]}))||'';}exports['index']=function(_0x56752e,_0x1addc8){var _0x427c25={},_0x42df68={},_0x2b33f8={'count':0x0,'rows':[]};var _0x5d9926=_['map'](db['CmCustomField'][_0x9481('0x31')],function(_0x5d6c65){return{'name':_0x5d6c65[_0x9481('0x32')],'type':_0x5d6c65['type'][_0x9481('0x33')]};});_0x42df68[_0x9481('0x34')]=_[_0x9481('0x35')](_[_0x9481('0x36')](_0x5d9926,_0x9481('0x28')),['name']);_0x42df68[_0x9481('0x37')]=_[_0x9481('0x38')](_0x56752e[_0x9481('0x37')]);_0x42df68['filters']=_[_0x9481('0x39')](_0x42df68[_0x9481('0x34')],_0x42df68[_0x9481('0x37')]);_0x427c25[_0x9481('0x3a')]=_[_0x9481('0x39')](_0x42df68[_0x9481('0x34')],qs['fields'](_0x56752e[_0x9481('0x37')]['fields']));_0x427c25[_0x9481('0x3a')]=_0x427c25[_0x9481('0x3a')][_0x9481('0x3b')]?_0x427c25[_0x9481('0x3a')]:_0x42df68[_0x9481('0x34')];if(!_0x56752e[_0x9481('0x37')]['hasOwnProperty'](_0x9481('0x3c'))){_0x427c25[_0x9481('0x1e')]=qs['limit'](_0x56752e['query'][_0x9481('0x1e')]);_0x427c25['offset']=qs[_0x9481('0x1f')](_0x56752e[_0x9481('0x37')][_0x9481('0x1f')]);}_0x427c25[_0x9481('0x3d')]=qs['sort'](_0x56752e[_0x9481('0x37')]['sort']);_0x427c25[_0x9481('0x3e')]=qs['filters'](_[_0x9481('0x3f')](_0x56752e['query'],_0x42df68[_0x9481('0x40')]),_0x5d9926);if(_0x56752e[_0x9481('0x37')][_0x9481('0x41')]){_0x427c25[_0x9481('0x3e')]=_[_0x9481('0x2b')](_0x427c25[_0x9481('0x3e')],{'$or':_[_0x9481('0x36')](_0x5d9926,function(_0x505591){if(_0x505591[_0x9481('0x42')]!==_0x9481('0x43')){var _0x406e4a={};_0x406e4a[_0x505591[_0x9481('0x28')]]={'$like':'%'+_0x56752e[_0x9481('0x37')][_0x9481('0x41')]+'%'};return _0x406e4a;}})});}_0x427c25=_[_0x9481('0x2b')]({},_0x427c25,_0x56752e['options']);var _0xf7b2e1={'where':_0x427c25[_0x9481('0x3e')]};return db['CmCustomField'][_0x9481('0x44')](_0xf7b2e1)[_0x9481('0x25')](function(_0x1eee80){_0x2b33f8[_0x9481('0x44')]=_0x1eee80;if(_0x56752e[_0x9481('0x37')]['includeAll']){_0x427c25[_0x9481('0x45')]=[{'all':!![]}];}return db['CmCustomField'][_0x9481('0x46')](_0x427c25);})[_0x9481('0x25')](function(_0x4a42b8){_0x2b33f8['rows']=_0x4a42b8;return _0x2b33f8;})[_0x9481('0x25')](respondWithFilteredResult(_0x1addc8,_0x427c25))[_0x9481('0x47')](handleError(_0x1addc8,null));};exports[_0x9481('0x48')]=function(_0x4c4caf,_0x4402f6){var _0x184923={'raw':!![],'where':{'id':_0x4c4caf['params']['id']}},_0x5502ad={};_0x5502ad[_0x9481('0x34')]=_['keys'](db[_0x9481('0x49')][_0x9481('0x31')]);_0x5502ad[_0x9481('0x37')]=_[_0x9481('0x38')](_0x4c4caf[_0x9481('0x37')]);_0x5502ad['filters']=_[_0x9481('0x39')](_0x5502ad[_0x9481('0x34')],_0x5502ad['query']);_0x184923[_0x9481('0x3a')]=_[_0x9481('0x39')](_0x5502ad[_0x9481('0x34')],qs[_0x9481('0x4a')](_0x4c4caf[_0x9481('0x37')][_0x9481('0x4a')]));_0x184923[_0x9481('0x3a')]=_0x184923[_0x9481('0x3a')][_0x9481('0x3b')]?_0x184923['attributes']:_0x5502ad[_0x9481('0x34')];if(_0x4c4caf['query']['includeAll']){_0x184923[_0x9481('0x45')]=[{'all':!![]}];}_0x184923=_['merge']({},_0x184923,_0x4c4caf[_0x9481('0x4b')]);return db[_0x9481('0x49')]['find'](_0x184923)[_0x9481('0x25')](handleEntityNotFound(_0x4402f6,null))[_0x9481('0x25')](respondWithResult(_0x4402f6,null))[_0x9481('0x47')](handleError(_0x4402f6,null));};exports[_0x9481('0x24')]=function(_0x190e5a,_0x4257df){if(_0x190e5a['body']['id']){delete _0x190e5a['body']['id'];}return db[_0x9481('0x49')][_0x9481('0x4c')]({'where':{'id':_0x190e5a[_0x9481('0x4d')]['id']}})[_0x9481('0x25')](handleEntityNotFound(_0x4257df,null))[_0x9481('0x25')](saveUpdates(_0x190e5a[_0x9481('0x2c')],null))[_0x9481('0x25')](respondWithResult(_0x4257df,null))[_0x9481('0x47')](handleError(_0x4257df,null));};exports['destroy']=function(_0x3972c1,_0x143c80){return db[_0x9481('0x49')][_0x9481('0x4c')]({'where':{'id':_0x3972c1[_0x9481('0x4d')]['id']}})['then'](handleEntityNotFound(_0x143c80,null))['then'](removeEntity(_0x143c80,null))[_0x9481('0x47')](handleError(_0x143c80,null));};exports[_0x9481('0x4e')]=function(_0x423d52,_0x4cd665){var _0x53c51d;return db['sequelize']['transaction'](function(_0x538507){return db['CmCustomField']['create'](_0x423d52[_0x9481('0x2c')],{'transaction':_0x538507})[_0x9481('0x25')](function(_0x588f7a){_0x53c51d=_0x588f7a;var _0xd8351c={'type':db['Sequelize'][_0x9481('0x4f')],'transaction':_0x538507};switch(_0x423d52[_0x9481('0x2c')][_0x9481('0x42')]){case _0x9481('0x50'):_0xd8351c[_0x9481('0x42')]=db[_0x9481('0x51')][_0x9481('0x4f')];break;case'number':_0xd8351c[_0x9481('0x42')]=db[_0x9481('0x51')]['INTEGER'];break;case _0x9481('0x52'):_0xd8351c[_0x9481('0x42')]=db[_0x9481('0x51')][_0x9481('0x53')];_0xd8351c[_0x9481('0x54')]=![];break;default:}return db['sequelize'][_0x9481('0x55')][_0x9481('0x56')](_0x9481('0x57'),util[_0x9481('0x58')](_0x9481('0x59'),_0x53c51d['id']),_0xd8351c);})[_0x9481('0x25')](function(){return _0x53c51d;});})[_0x9481('0x25')](respondWithResult(_0x4cd665,0xc9))[_0x9481('0x47')](handleError(_0x4cd665,null));};