Built motion from commit d5e4af8c.|2.6.23
[motion2.git] / server / api / disposition / disposition.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 _0x114b=['count','set','Content-Range','apply','reject','save','update','then','destroy','get','Dispositions','UserProfileResource','error','stack','name','send','index','rawAttributes','fieldName','type','key','model','map','keys','query','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','merge','options','includeAll','Disposition','findAll','rows','catch','show','params','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit'];(function(_0x2f59e3,_0x1209b3){var _0x393520=function(_0xf93809){while(--_0xf93809){_0x2f59e3['push'](_0x2f59e3['shift']());}};_0x393520(++_0x1209b3);}(_0x114b,0x1e9));var _0xb114=function(_0x123013,_0x5568d3){_0x123013=_0x123013-0x0;var _0x1caf78=_0x114b[_0x123013];return _0x1caf78;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb114('0x0'));var zipdir=require(_0xb114('0x1'));var jsonpatch=require(_0xb114('0x2'));var rp=require(_0xb114('0x3'));var moment=require(_0xb114('0x4'));var BPromise=require(_0xb114('0x5'));var Mustache=require(_0xb114('0x6'));var util=require('util');var path=require(_0xb114('0x7'));var sox=require(_0xb114('0x8'));var csv=require(_0xb114('0x9'));var ejs=require(_0xb114('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xb114('0xb'));var crypto=require(_0xb114('0xc'));var jsforce=require(_0xb114('0xd'));var deskjs=require(_0xb114('0xe'));var toCsv=require(_0xb114('0x9'));var querystring=require(_0xb114('0xf'));var Papa=require(_0xb114('0x10'));var Redis=require(_0xb114('0x11'));var authService=require(_0xb114('0x12'));var qs=require(_0xb114('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb114('0x14'));var logger=require(_0xb114('0x15'))(_0xb114('0x16'));var utils=require('../../config/utils');var config=require(_0xb114('0x17'));var licenseUtil=require(_0xb114('0x18'));var db=require(_0xb114('0x19'))['db'];function respondWithStatusCode(_0x23d40e,_0x4a8410){_0x4a8410=_0x4a8410||0xcc;return function(_0x5a32c1){if(_0x5a32c1){return _0x23d40e[_0xb114('0x1a')](_0x4a8410);}return _0x23d40e[_0xb114('0x1b')](_0x4a8410)[_0xb114('0x1c')]();};}function respondWithResult(_0x514efe,_0x6f587a){_0x6f587a=_0x6f587a||0xc8;return function(_0x5836aa){if(_0x5836aa){return _0x514efe['status'](_0x6f587a)[_0xb114('0x1d')](_0x5836aa);}};}function respondWithFilteredResult(_0x15db33,_0xeaab75){return function(_0x1e3238){if(_0x1e3238){var _0x7508ee=typeof _0xeaab75[_0xb114('0x1e')]===_0xb114('0x1f')&&typeof _0xeaab75[_0xb114('0x20')]===_0xb114('0x1f');var _0x29f58c=_0x1e3238[_0xb114('0x21')];var _0x152f7d=_0x7508ee?0x0:_0xeaab75[_0xb114('0x1e')];var _0x5b8062=_0x7508ee?_0x1e3238[_0xb114('0x21')]:_0xeaab75[_0xb114('0x1e')]+_0xeaab75[_0xb114('0x20')];var _0xf76fa7;if(_0x5b8062>=_0x29f58c){_0x5b8062=_0x29f58c;_0xf76fa7=0xc8;}else{_0xf76fa7=0xce;}_0x15db33[_0xb114('0x1b')](_0xf76fa7);return _0x15db33[_0xb114('0x22')](_0xb114('0x23'),_0x152f7d+'-'+_0x5b8062+'/'+_0x29f58c)[_0xb114('0x1d')](_0x1e3238);}return null;};}function patchUpdates(_0x1f83ee){return function(_0x12d66d){try{jsonpatch[_0xb114('0x24')](_0x12d66d,_0x1f83ee,!![]);}catch(_0x2c036d){return BPromise[_0xb114('0x25')](_0x2c036d);}return _0x12d66d[_0xb114('0x26')]();};}function saveUpdates(_0x41ae5a,_0x1e0e32){return function(_0x1c30a1){if(_0x1c30a1){return _0x1c30a1[_0xb114('0x27')](_0x41ae5a)[_0xb114('0x28')](function(_0x35395f){return _0x35395f;});}return null;};}function removeEntity(_0xe2ac2c,_0x5ead94){return function(_0x54032b){if(_0x54032b){return _0x54032b[_0xb114('0x29')]()[_0xb114('0x28')](function(){var _0x3a2bf2=_0x54032b[_0xb114('0x2a')]({'plain':!![]});var _0x26a203=_0xb114('0x2b');return db[_0xb114('0x2c')]['destroy']({'where':{'type':_0x26a203,'resourceId':_0x3a2bf2['id']}})[_0xb114('0x28')](function(){return _0x54032b;});})[_0xb114('0x28')](function(){_0xe2ac2c[_0xb114('0x1b')](0xcc)[_0xb114('0x1c')]();});}};}function handleEntityNotFound(_0x2a74e7,_0x21776f){return function(_0x48631c){if(!_0x48631c){_0x2a74e7[_0xb114('0x1a')](0x194);}return _0x48631c;};}function handleError(_0x4e66de,_0x5ac5eb){_0x5ac5eb=_0x5ac5eb||0x1f4;return function(_0x5cae5c){logger[_0xb114('0x2d')](_0x5cae5c[_0xb114('0x2e')]);if(_0x5cae5c[_0xb114('0x2f')]){delete _0x5cae5c[_0xb114('0x2f')];}_0x4e66de[_0xb114('0x1b')](_0x5ac5eb)[_0xb114('0x30')](_0x5cae5c);};}exports[_0xb114('0x31')]=function(_0x3f5f95,_0x234926){var _0x3cee8b={},_0x3c480f={},_0x49c4a3={'count':0x0,'rows':[]};var _0x2cf9b4=_['map'](db['Disposition'][_0xb114('0x32')],function(_0x5c8688){return{'name':_0x5c8688[_0xb114('0x33')],'type':_0x5c8688[_0xb114('0x34')][_0xb114('0x35')]};});_0x3c480f[_0xb114('0x36')]=_[_0xb114('0x37')](_0x2cf9b4,'name');_0x3c480f['query']=_[_0xb114('0x38')](_0x3f5f95[_0xb114('0x39')]);_0x3c480f[_0xb114('0x3a')]=_[_0xb114('0x3b')](_0x3c480f[_0xb114('0x36')],_0x3c480f['query']);_0x3cee8b[_0xb114('0x3c')]=_[_0xb114('0x3b')](_0x3c480f['model'],qs[_0xb114('0x3d')](_0x3f5f95['query'][_0xb114('0x3d')]));_0x3cee8b['attributes']=_0x3cee8b[_0xb114('0x3c')][_0xb114('0x3e')]?_0x3cee8b[_0xb114('0x3c')]:_0x3c480f['model'];if(!_0x3f5f95[_0xb114('0x39')]['hasOwnProperty']('nolimit')){_0x3cee8b[_0xb114('0x20')]=qs['limit'](_0x3f5f95[_0xb114('0x39')][_0xb114('0x20')]);_0x3cee8b[_0xb114('0x1e')]=qs[_0xb114('0x1e')](_0x3f5f95[_0xb114('0x39')][_0xb114('0x1e')]);}_0x3cee8b[_0xb114('0x3f')]=qs[_0xb114('0x40')](_0x3f5f95[_0xb114('0x39')][_0xb114('0x40')]);_0x3cee8b[_0xb114('0x41')]=qs['filters'](_[_0xb114('0x42')](_0x3f5f95[_0xb114('0x39')],_0x3c480f[_0xb114('0x3a')]),_0x2cf9b4);if(_0x3f5f95[_0xb114('0x39')][_0xb114('0x43')]){_0x3cee8b[_0xb114('0x41')]=_['merge'](_0x3cee8b[_0xb114('0x41')],{'$or':_[_0xb114('0x37')](_0x2cf9b4,function(_0x18d0f5){if(_0x18d0f5[_0xb114('0x34')]!=='VIRTUAL'){var _0x4fb73a={};_0x4fb73a[_0x18d0f5['name']]={'$like':'%'+_0x3f5f95['query'][_0xb114('0x43')]+'%'};return _0x4fb73a;}})});}_0x3cee8b=_[_0xb114('0x44')]({},_0x3cee8b,_0x3f5f95[_0xb114('0x45')]);var _0x5d8824={'where':_0x3cee8b[_0xb114('0x41')]};return db['Disposition'][_0xb114('0x21')](_0x5d8824)[_0xb114('0x28')](function(_0x2e0a0e){_0x49c4a3[_0xb114('0x21')]=_0x2e0a0e;if(_0x3f5f95[_0xb114('0x39')][_0xb114('0x46')]){_0x3cee8b['include']=[{'all':!![]}];}return db[_0xb114('0x47')][_0xb114('0x48')](_0x3cee8b);})[_0xb114('0x28')](function(_0x14134b){_0x49c4a3[_0xb114('0x49')]=_0x14134b;return _0x49c4a3;})[_0xb114('0x28')](respondWithFilteredResult(_0x234926,_0x3cee8b))[_0xb114('0x4a')](handleError(_0x234926,null));};exports[_0xb114('0x4b')]=function(_0x309beb,_0x2bc2ff){var _0x119127={'raw':!![],'where':{'id':_0x309beb[_0xb114('0x4c')]['id']}},_0x1f2572={};_0x1f2572['model']=_[_0xb114('0x38')](db['Disposition'][_0xb114('0x32')]);_0x1f2572[_0xb114('0x39')]=_[_0xb114('0x38')](_0x309beb[_0xb114('0x39')]);_0x1f2572[_0xb114('0x3a')]=_[_0xb114('0x3b')](_0x1f2572[_0xb114('0x36')],_0x1f2572['query']);_0x119127[_0xb114('0x3c')]=_[_0xb114('0x3b')](_0x1f2572[_0xb114('0x36')],qs[_0xb114('0x3d')](_0x309beb[_0xb114('0x39')]['fields']));_0x119127[_0xb114('0x3c')]=_0x119127['attributes']['length']?_0x119127[_0xb114('0x3c')]:_0x1f2572[_0xb114('0x36')];if(_0x309beb[_0xb114('0x39')][_0xb114('0x46')]){_0x119127[_0xb114('0x4d')]=[{'all':!![]}];}_0x119127=_[_0xb114('0x44')]({},_0x119127,_0x309beb[_0xb114('0x45')]);return db[_0xb114('0x47')][_0xb114('0x4e')](_0x119127)[_0xb114('0x28')](handleEntityNotFound(_0x2bc2ff,null))[_0xb114('0x28')](respondWithResult(_0x2bc2ff,null))[_0xb114('0x4a')](handleError(_0x2bc2ff,null));};exports[_0xb114('0x4f')]=function(_0x3e8ad1,_0x4f3a18){return db[_0xb114('0x47')][_0xb114('0x4f')](_0x3e8ad1[_0xb114('0x50')],{})[_0xb114('0x28')](function(_0x132ab9){var _0x3ca7a6=_0x3e8ad1[_0xb114('0x51')]['get']({'plain':!![]});if(!_0x3ca7a6)throw new Error(_0xb114('0x52'));if(_0x3ca7a6['role']==='user'){var _0x3947eb=_0x132ab9['get']({'plain':!![]});var _0x59da66=_0xb114('0x2b');return db[_0xb114('0x53')][_0xb114('0x4e')]({'where':{'name':_0x59da66,'userProfileId':_0x3ca7a6[_0xb114('0x54')]},'raw':!![]})[_0xb114('0x28')](function(_0x3e8cf8){if(_0x3e8cf8&&_0x3e8cf8[_0xb114('0x55')]===0x0){return db[_0xb114('0x2c')][_0xb114('0x4f')]({'name':_0x3947eb['name'],'resourceId':_0x3947eb['id'],'type':_0x3e8cf8[_0xb114('0x2f')],'sectionId':_0x3e8cf8['id']},{})['then'](function(){return _0x132ab9;});}else{return _0x132ab9;}})['catch'](function(_0x360f0a){logger['error'](_0xb114('0x56'),_0x360f0a);throw _0x360f0a;});}return _0x132ab9;})['then'](respondWithResult(_0x4f3a18,0xc9))[_0xb114('0x4a')](handleError(_0x4f3a18,null));};exports['update']=function(_0x72d60f,_0x2c893a){if(_0x72d60f['body']['id']){delete _0x72d60f[_0xb114('0x50')]['id'];}return db[_0xb114('0x47')][_0xb114('0x4e')]({'where':{'id':_0x72d60f['params']['id']}})[_0xb114('0x28')](handleEntityNotFound(_0x2c893a,null))[_0xb114('0x28')](saveUpdates(_0x72d60f[_0xb114('0x50')],null))[_0xb114('0x28')](respondWithResult(_0x2c893a,null))[_0xb114('0x4a')](handleError(_0x2c893a,null));};exports[_0xb114('0x29')]=function(_0x19533a,_0x15a7a8){return db[_0xb114('0x47')][_0xb114('0x4e')]({'where':{'id':_0x19533a[_0xb114('0x4c')]['id']}})[_0xb114('0x28')](handleEntityNotFound(_0x15a7a8,null))[_0xb114('0x28')](removeEntity(_0x15a7a8,null))[_0xb114('0x4a')](handleError(_0x15a7a8,null));};