5c5fd61d8cef4f9b87898327b4e1367b6418913c
[motion2.git] / server / api / intDeskField / intDeskField.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 _0x4e8f=['status','count','offset','set','Content-Range','apply','update','destroy','then','error','name','DeskField','rawAttributes','fieldName','type','query','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','map','VIRTUAL','merge','options','include','findAll','rows','catch','show','params','keys','includeAll','find','body','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','lodash','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../mysqldb','sendStatus','end'];(function(_0x2fc012,_0x503e5b){var _0x2891f9=function(_0x295f5e){while(--_0x295f5e){_0x2fc012['push'](_0x2fc012['shift']());}};_0x2891f9(++_0x503e5b);}(_0x4e8f,0xaf));var _0xf4e8=function(_0x4b5066,_0x38c4b2){_0x4b5066=_0x4b5066-0x0;var _0x2b4331=_0x4e8f[_0x4b5066];return _0x2b4331;};'use strict';var pdf=require(_0xf4e8('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xf4e8('0x1'));var zipdir=require(_0xf4e8('0x2'));var jsonpatch=require(_0xf4e8('0x3'));var rp=require(_0xf4e8('0x4'));var moment=require('moment');var BPromise=require(_0xf4e8('0x5'));var Mustache=require(_0xf4e8('0x6'));var util=require(_0xf4e8('0x7'));var path=require('path');var sox=require(_0xf4e8('0x8'));var csv=require(_0xf4e8('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xf4e8('0xa'));var squel=require(_0xf4e8('0xb'));var crypto=require('crypto');var jsforce=require(_0xf4e8('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xf4e8('0xd'));var Papa=require(_0xf4e8('0xe'));var Redis=require('ioredis');var authService=require(_0xf4e8('0xf'));var qs=require(_0xf4e8('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf4e8('0x11'));var logger=require('../../config/logger')(_0xf4e8('0x12'));var utils=require(_0xf4e8('0x13'));var config=require('../../config/environment');var db=require(_0xf4e8('0x14'))['db'];function respondWithStatusCode(_0xb34b1a,_0x394a36){_0x394a36=_0x394a36||0xcc;return function(_0x501470){if(_0x501470){return _0xb34b1a[_0xf4e8('0x15')](_0x394a36);}return _0xb34b1a['status'](_0x394a36)[_0xf4e8('0x16')]();};}function respondWithResult(_0x52cfcc,_0x2f5297){_0x2f5297=_0x2f5297||0xc8;return function(_0x425482){if(_0x425482){return _0x52cfcc[_0xf4e8('0x17')](_0x2f5297)['json'](_0x425482);}};}function respondWithFilteredResult(_0x363b55,_0x308166){return function(_0x3de5bb){if(_0x3de5bb){var _0x30ab5e=_0x3de5bb[_0xf4e8('0x18')],_0xd678a3=_0x308166[_0xf4e8('0x19')],_0x1c0c63=_0x308166[_0xf4e8('0x19')]+_0x308166['limit'],_0x2f6b15;if(_0x1c0c63>=_0x30ab5e){_0x1c0c63=_0x30ab5e;_0x2f6b15=0xc8;}else{_0x2f6b15=0xce;}_0x363b55[_0xf4e8('0x17')](_0x2f6b15);return _0x363b55[_0xf4e8('0x1a')](_0xf4e8('0x1b'),_0xd678a3+'-'+_0x1c0c63+'/'+_0x30ab5e)['json'](_0x3de5bb);}return null;};}function patchUpdates(_0x24674c){return function(_0x39dc2c){try{jsonpatch[_0xf4e8('0x1c')](_0x39dc2c,_0x24674c,!![]);}catch(_0x186bd7){return BPromise['reject'](_0x186bd7);}return _0x39dc2c['save']();};}function saveUpdates(_0x1408a0,_0x1e883b){return function(_0x525a91){if(_0x525a91){return _0x525a91[_0xf4e8('0x1d')](_0x1408a0)['then'](function(_0x1a7e0b){return _0x1a7e0b;});}return null;};}function removeEntity(_0x7b2e87,_0x4257d9){return function(_0x2fb1fc){if(_0x2fb1fc){return _0x2fb1fc[_0xf4e8('0x1e')]()[_0xf4e8('0x1f')](function(){_0x7b2e87[_0xf4e8('0x17')](0xcc)[_0xf4e8('0x16')]();});}};}function handleEntityNotFound(_0x403c97,_0x162237){return function(_0x3dd40b){if(!_0x3dd40b){_0x403c97[_0xf4e8('0x15')](0x194);}return _0x3dd40b;};}function handleError(_0x5db29e,_0x218aa4){_0x218aa4=_0x218aa4||0x1f4;return function(_0x2f316d){logger[_0xf4e8('0x20')](_0x2f316d['stack']);if(_0x2f316d[_0xf4e8('0x21')]){delete _0x2f316d['name'];}_0x5db29e[_0xf4e8('0x17')](_0x218aa4)['send'](_0x2f316d);};}exports['index']=function(_0x58fca4,_0x5883e6){var _0x470b3e={},_0x9a27c9={},_0x6ac4b5={'count':0x0,'rows':[]};var _0x5e7ab6=_['map'](db[_0xf4e8('0x22')][_0xf4e8('0x23')],function(_0x5cc3ca){return{'name':_0x5cc3ca[_0xf4e8('0x24')],'type':_0x5cc3ca[_0xf4e8('0x25')]['key']};});_0x9a27c9['model']=_['map'](_0x5e7ab6,_0xf4e8('0x21'));_0x9a27c9[_0xf4e8('0x26')]=_['keys'](_0x58fca4[_0xf4e8('0x26')]);_0x9a27c9[_0xf4e8('0x27')]=_[_0xf4e8('0x28')](_0x9a27c9[_0xf4e8('0x29')],_0x9a27c9[_0xf4e8('0x26')]);_0x470b3e[_0xf4e8('0x2a')]=_['intersection'](_0x9a27c9[_0xf4e8('0x29')],qs[_0xf4e8('0x2b')](_0x58fca4[_0xf4e8('0x26')][_0xf4e8('0x2b')]));_0x470b3e[_0xf4e8('0x2a')]=_0x470b3e[_0xf4e8('0x2a')]['length']?_0x470b3e[_0xf4e8('0x2a')]:_0x9a27c9[_0xf4e8('0x29')];if(!_0x58fca4[_0xf4e8('0x26')][_0xf4e8('0x2c')](_0xf4e8('0x2d'))){_0x470b3e[_0xf4e8('0x2e')]=qs[_0xf4e8('0x2e')](_0x58fca4[_0xf4e8('0x26')][_0xf4e8('0x2e')]);_0x470b3e[_0xf4e8('0x19')]=qs[_0xf4e8('0x19')](_0x58fca4[_0xf4e8('0x26')][_0xf4e8('0x19')]);}_0x470b3e[_0xf4e8('0x2f')]=qs[_0xf4e8('0x30')](_0x58fca4[_0xf4e8('0x26')][_0xf4e8('0x30')]);_0x470b3e[_0xf4e8('0x31')]=qs[_0xf4e8('0x27')](_[_0xf4e8('0x32')](_0x58fca4[_0xf4e8('0x26')],_0x9a27c9[_0xf4e8('0x27')]),_0x5e7ab6);if(_0x58fca4[_0xf4e8('0x26')][_0xf4e8('0x33')]){_0x470b3e[_0xf4e8('0x31')]=_['merge'](_0x470b3e[_0xf4e8('0x31')],{'$or':_[_0xf4e8('0x34')](_0x5e7ab6,function(_0x327d85){if(_0x327d85[_0xf4e8('0x25')]!==_0xf4e8('0x35')){var _0x17d027={};_0x17d027[_0x327d85[_0xf4e8('0x21')]]={'$like':'%'+_0x58fca4[_0xf4e8('0x26')]['filter']+'%'};return _0x17d027;}})});}_0x470b3e=_[_0xf4e8('0x36')]({},_0x470b3e,_0x58fca4[_0xf4e8('0x37')]);var _0x5aed64={'where':_0x470b3e[_0xf4e8('0x31')]};return db[_0xf4e8('0x22')]['count'](_0x5aed64)[_0xf4e8('0x1f')](function(_0x7e88c0){_0x6ac4b5[_0xf4e8('0x18')]=_0x7e88c0;if(_0x58fca4[_0xf4e8('0x26')]['includeAll']){_0x470b3e[_0xf4e8('0x38')]=[{'all':!![]}];}return db[_0xf4e8('0x22')][_0xf4e8('0x39')](_0x470b3e);})[_0xf4e8('0x1f')](function(_0x4cb5b6){_0x6ac4b5[_0xf4e8('0x3a')]=_0x4cb5b6;return _0x6ac4b5;})['then'](respondWithFilteredResult(_0x5883e6,_0x470b3e))[_0xf4e8('0x3b')](handleError(_0x5883e6,null));};exports[_0xf4e8('0x3c')]=function(_0x2c8fa2,_0x463d06){var _0x393d70={'raw':!![],'where':{'id':_0x2c8fa2[_0xf4e8('0x3d')]['id']}},_0x4601d9={};_0x4601d9['model']=_[_0xf4e8('0x3e')](db[_0xf4e8('0x22')][_0xf4e8('0x23')]);_0x4601d9[_0xf4e8('0x26')]=_[_0xf4e8('0x3e')](_0x2c8fa2[_0xf4e8('0x26')]);_0x4601d9['filters']=_[_0xf4e8('0x28')](_0x4601d9[_0xf4e8('0x29')],_0x4601d9['query']);_0x393d70[_0xf4e8('0x2a')]=_[_0xf4e8('0x28')](_0x4601d9[_0xf4e8('0x29')],qs[_0xf4e8('0x2b')](_0x2c8fa2[_0xf4e8('0x26')][_0xf4e8('0x2b')]));_0x393d70[_0xf4e8('0x2a')]=_0x393d70['attributes']['length']?_0x393d70[_0xf4e8('0x2a')]:_0x4601d9[_0xf4e8('0x29')];if(_0x2c8fa2[_0xf4e8('0x26')][_0xf4e8('0x3f')]){_0x393d70['include']=[{'all':!![]}];}_0x393d70=_[_0xf4e8('0x36')]({},_0x393d70,_0x2c8fa2[_0xf4e8('0x37')]);return db[_0xf4e8('0x22')][_0xf4e8('0x40')](_0x393d70)[_0xf4e8('0x1f')](handleEntityNotFound(_0x463d06,null))[_0xf4e8('0x1f')](respondWithResult(_0x463d06,null))[_0xf4e8('0x3b')](handleError(_0x463d06,null));};exports['create']=function(_0x21a57f,_0x1193ea){return db[_0xf4e8('0x22')]['create'](_0x21a57f[_0xf4e8('0x41')],{})['then'](respondWithResult(_0x1193ea,0xc9))[_0xf4e8('0x3b')](handleError(_0x1193ea,null));};exports['update']=function(_0x4b1f74,_0x716d92){if(_0x4b1f74['body']['id']){delete _0x4b1f74[_0xf4e8('0x41')]['id'];}return db[_0xf4e8('0x22')][_0xf4e8('0x40')]({'where':{'id':_0x4b1f74[_0xf4e8('0x3d')]['id']}})['then'](handleEntityNotFound(_0x716d92,null))[_0xf4e8('0x1f')](saveUpdates(_0x4b1f74[_0xf4e8('0x41')],null))[_0xf4e8('0x1f')](respondWithResult(_0x716d92,null))['catch'](handleError(_0x716d92,null));};exports[_0xf4e8('0x1e')]=function(_0x33156b,_0x27b8b4){return db['DeskField'][_0xf4e8('0x40')]({'where':{'id':_0x33156b['params']['id']}})[_0xf4e8('0x1f')](handleEntityNotFound(_0x27b8b4,null))[_0xf4e8('0x1f')](removeEntity(_0x27b8b4,null))[_0xf4e8('0x3b')](handleError(_0x27b8b4,null));};