53d2235f2fab60fdea1c64e7129ae7c2b244c9f6
[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 _0xd970=['../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','limit','undefined','count','set','apply','reject','update','then','destroy','end','error','stack','name','send','render','merge','body','contact','agent','account','DeskField','rawAttributes','fieldName','type','key','model','map','query','intersection','fields','attributes','length','hasOwnProperty','sort','where','filters','VIRTUAL','filter','options','findAll','rows','catch','show','params','keys','include','find','create','rimraf','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils'];(function(_0x477bb3,_0x1af649){var _0x3a2f31=function(_0x1ba1c4){while(--_0x1ba1c4){_0x477bb3['push'](_0x477bb3['shift']());}};_0x3a2f31(++_0x1af649);}(_0xd970,0x114));var _0x0d97=function(_0x136c99,_0x468cbd){_0x136c99=_0x136c99-0x0;var _0x38e6c1=_0xd970[_0x136c99];return _0x38e6c1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0d97('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0d97('0x1'));var moment=require(_0x0d97('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x0d97('0x3'));var util=require(_0x0d97('0x4'));var path=require(_0x0d97('0x5'));var sox=require(_0x0d97('0x6'));var csv=require(_0x0d97('0x7'));var ejs=require(_0x0d97('0x8'));var fs=require('fs');var fs_extra=require(_0x0d97('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x0d97('0xa'));var jsforce=require(_0x0d97('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x0d97('0x7'));var querystring=require(_0x0d97('0xc'));var Papa=require(_0x0d97('0xd'));var Redis=require(_0x0d97('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x0d97('0xf'));var as=require(_0x0d97('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0d97('0x11'))(_0x0d97('0x12'));var utils=require(_0x0d97('0x13'));var config=require(_0x0d97('0x14'));var licenseUtil=require(_0x0d97('0x15'));var db=require(_0x0d97('0x16'))['db'];function respondWithStatusCode(_0x2985db,_0x3a6973){_0x3a6973=_0x3a6973||0xcc;return function(_0x92f912){if(_0x92f912){return _0x2985db[_0x0d97('0x17')](_0x3a6973);}return _0x2985db[_0x0d97('0x18')](_0x3a6973)['end']();};}function respondWithResult(_0x26739f,_0x14dedb){_0x14dedb=_0x14dedb||0xc8;return function(_0x5e01ca){if(_0x5e01ca){return _0x26739f[_0x0d97('0x18')](_0x14dedb)['json'](_0x5e01ca);}};}function respondWithFilteredResult(_0x138d5a,_0x466c88){return function(_0x347857){if(_0x347857){var _0x467cef=typeof _0x466c88[_0x0d97('0x19')]==='undefined'&&typeof _0x466c88[_0x0d97('0x1a')]===_0x0d97('0x1b');var _0x25e783=_0x347857[_0x0d97('0x1c')];var _0x4564d8=_0x467cef?0x0:_0x466c88['offset'];var _0x56a1a1=_0x467cef?_0x347857['count']:_0x466c88[_0x0d97('0x19')]+_0x466c88[_0x0d97('0x1a')];var _0x409a4f;if(_0x56a1a1>=_0x25e783){_0x56a1a1=_0x25e783;_0x409a4f=0xc8;}else{_0x409a4f=0xce;}_0x138d5a['status'](_0x409a4f);return _0x138d5a[_0x0d97('0x1d')]('Content-Range',_0x4564d8+'-'+_0x56a1a1+'/'+_0x25e783)['json'](_0x347857);}return null;};}function patchUpdates(_0x2ba41b){return function(_0x5db2c7){try{jsonpatch[_0x0d97('0x1e')](_0x5db2c7,_0x2ba41b,!![]);}catch(_0x4e13ed){return BPromise[_0x0d97('0x1f')](_0x4e13ed);}return _0x5db2c7['save']();};}function saveUpdates(_0x3ebfa4,_0x4e183e){return function(_0x32b2bc){if(_0x32b2bc){return _0x32b2bc[_0x0d97('0x20')](_0x3ebfa4)[_0x0d97('0x21')](function(_0x49c062){return _0x49c062;});}return null;};}function removeEntity(_0x4bfbb5,_0x5cb063){return function(_0x486f9e){if(_0x486f9e){return _0x486f9e[_0x0d97('0x22')]()[_0x0d97('0x21')](function(){_0x4bfbb5['status'](0xcc)[_0x0d97('0x23')]();});}};}function handleEntityNotFound(_0x4c51cf,_0x22eece){return function(_0x47ac48){if(!_0x47ac48){_0x4c51cf[_0x0d97('0x17')](0x194);}return _0x47ac48;};}function handleError(_0x39a3f9,_0x57be80){_0x57be80=_0x57be80||0x1f4;return function(_0x4ed90c){logger[_0x0d97('0x24')](_0x4ed90c[_0x0d97('0x25')]);if(_0x4ed90c[_0x0d97('0x26')]){delete _0x4ed90c['name'];}_0x39a3f9[_0x0d97('0x18')](_0x57be80)[_0x0d97('0x27')](_0x4ed90c);};}function getMustacheRender(_0x13745b,_0x3f0623){return Mustache[_0x0d97('0x28')](_0x13745b,_[_0x0d97('0x29')](_0x3f0623[_0x0d97('0x2a')],{'contact':_0x3f0623[_0x0d97('0x2b')],'message':_0x3f0623['message'],'agent':_0x3f0623[_0x0d97('0x2c')],'interaction':_0x3f0623['interaction'],'account':_0x3f0623[_0x0d97('0x2d')]}))||'';}exports['index']=function(_0x17910f,_0x5529c6){var _0x4c4331={},_0x4c9e69={},_0x35464e={'count':0x0,'rows':[]};var _0x3c68df=_['map'](db[_0x0d97('0x2e')][_0x0d97('0x2f')],function(_0x534ecc){return{'name':_0x534ecc[_0x0d97('0x30')],'type':_0x534ecc[_0x0d97('0x31')][_0x0d97('0x32')]};});_0x4c9e69[_0x0d97('0x33')]=_[_0x0d97('0x34')](_0x3c68df,_0x0d97('0x26'));_0x4c9e69[_0x0d97('0x35')]=_['keys'](_0x17910f['query']);_0x4c9e69['filters']=_[_0x0d97('0x36')](_0x4c9e69[_0x0d97('0x33')],_0x4c9e69[_0x0d97('0x35')]);_0x4c4331['attributes']=_[_0x0d97('0x36')](_0x4c9e69[_0x0d97('0x33')],qs[_0x0d97('0x37')](_0x17910f['query'][_0x0d97('0x37')]));_0x4c4331[_0x0d97('0x38')]=_0x4c4331['attributes'][_0x0d97('0x39')]?_0x4c4331[_0x0d97('0x38')]:_0x4c9e69['model'];if(!_0x17910f[_0x0d97('0x35')][_0x0d97('0x3a')]('nolimit')){_0x4c4331[_0x0d97('0x1a')]=qs[_0x0d97('0x1a')](_0x17910f[_0x0d97('0x35')]['limit']);_0x4c4331[_0x0d97('0x19')]=qs[_0x0d97('0x19')](_0x17910f[_0x0d97('0x35')]['offset']);}_0x4c4331['order']=qs['sort'](_0x17910f[_0x0d97('0x35')][_0x0d97('0x3b')]);_0x4c4331[_0x0d97('0x3c')]=qs['filters'](_['pick'](_0x17910f[_0x0d97('0x35')],_0x4c9e69[_0x0d97('0x3d')]),_0x3c68df);if(_0x17910f[_0x0d97('0x35')]['filter']){_0x4c4331['where']=_[_0x0d97('0x29')](_0x4c4331[_0x0d97('0x3c')],{'$or':_[_0x0d97('0x34')](_0x3c68df,function(_0x6778b4){if(_0x6778b4[_0x0d97('0x31')]!==_0x0d97('0x3e')){var _0x2836f8={};_0x2836f8[_0x6778b4[_0x0d97('0x26')]]={'$like':'%'+_0x17910f[_0x0d97('0x35')][_0x0d97('0x3f')]+'%'};return _0x2836f8;}})});}_0x4c4331=_[_0x0d97('0x29')]({},_0x4c4331,_0x17910f[_0x0d97('0x40')]);var _0x5e1507={'where':_0x4c4331[_0x0d97('0x3c')]};return db['DeskField']['count'](_0x5e1507)[_0x0d97('0x21')](function(_0x38058f){_0x35464e['count']=_0x38058f;if(_0x17910f[_0x0d97('0x35')]['includeAll']){_0x4c4331['include']=[{'all':!![]}];}return db['DeskField'][_0x0d97('0x41')](_0x4c4331);})[_0x0d97('0x21')](function(_0x1a6a0a){_0x35464e[_0x0d97('0x42')]=_0x1a6a0a;return _0x35464e;})[_0x0d97('0x21')](respondWithFilteredResult(_0x5529c6,_0x4c4331))[_0x0d97('0x43')](handleError(_0x5529c6,null));};exports[_0x0d97('0x44')]=function(_0x3d4610,_0x200642){var _0x47c2a5={'raw':!![],'where':{'id':_0x3d4610[_0x0d97('0x45')]['id']}},_0x257c70={};_0x257c70[_0x0d97('0x33')]=_[_0x0d97('0x46')](db['DeskField'][_0x0d97('0x2f')]);_0x257c70[_0x0d97('0x35')]=_[_0x0d97('0x46')](_0x3d4610[_0x0d97('0x35')]);_0x257c70['filters']=_[_0x0d97('0x36')](_0x257c70[_0x0d97('0x33')],_0x257c70['query']);_0x47c2a5[_0x0d97('0x38')]=_[_0x0d97('0x36')](_0x257c70[_0x0d97('0x33')],qs[_0x0d97('0x37')](_0x3d4610[_0x0d97('0x35')][_0x0d97('0x37')]));_0x47c2a5[_0x0d97('0x38')]=_0x47c2a5['attributes'][_0x0d97('0x39')]?_0x47c2a5[_0x0d97('0x38')]:_0x257c70[_0x0d97('0x33')];if(_0x3d4610[_0x0d97('0x35')]['includeAll']){_0x47c2a5[_0x0d97('0x47')]=[{'all':!![]}];}_0x47c2a5=_['merge']({},_0x47c2a5,_0x3d4610['options']);return db[_0x0d97('0x2e')][_0x0d97('0x48')](_0x47c2a5)['then'](handleEntityNotFound(_0x200642,null))['then'](respondWithResult(_0x200642,null))['catch'](handleError(_0x200642,null));};exports[_0x0d97('0x49')]=function(_0x1527d5,_0x218d14){return db[_0x0d97('0x2e')]['create'](_0x1527d5['body'],{})[_0x0d97('0x21')](respondWithResult(_0x218d14,0xc9))['catch'](handleError(_0x218d14,null));};exports['update']=function(_0x169bb5,_0x1924ad){if(_0x169bb5[_0x0d97('0x2a')]['id']){delete _0x169bb5[_0x0d97('0x2a')]['id'];}return db[_0x0d97('0x2e')][_0x0d97('0x48')]({'where':{'id':_0x169bb5[_0x0d97('0x45')]['id']}})[_0x0d97('0x21')](handleEntityNotFound(_0x1924ad,null))[_0x0d97('0x21')](saveUpdates(_0x169bb5['body'],null))[_0x0d97('0x21')](respondWithResult(_0x1924ad,null))[_0x0d97('0x43')](handleError(_0x1924ad,null));};exports['destroy']=function(_0x25c0af,_0x55577e){return db[_0x0d97('0x2e')][_0x0d97('0x48')]({'where':{'id':_0x25c0af['params']['id']}})[_0x0d97('0x21')](handleEntityNotFound(_0x55577e,null))['then'](removeEntity(_0x55577e,null))[_0x0d97('0x43')](handleError(_0x55577e,null));};