394e58ae8d260c32a1129c1a8b3f86e02ec532c4
[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 _0x36e8=['fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','options','includeAll','findAll','catch','show','rawAttributes','include','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','save','update','then','destroy','get','Dispositions','UserProfileResource','error','stack','name','send','map','Disposition','fieldName','type','key','model','query','keys','filters','intersection','attributes'];(function(_0xab7c7f,_0x3301e4){var _0x175e65=function(_0x5e6def){while(--_0x5e6def){_0xab7c7f['push'](_0xab7c7f['shift']());}};_0x175e65(++_0x3301e4);}(_0x36e8,0x16a));var _0x836e=function(_0x32e89e,_0x43d63f){_0x32e89e=_0x32e89e-0x0;var _0xed0ab=_0x36e8[_0x32e89e];return _0xed0ab;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x836e('0x0'));var zipdir=require(_0x836e('0x1'));var jsonpatch=require(_0x836e('0x2'));var rp=require(_0x836e('0x3'));var moment=require(_0x836e('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x836e('0x5'));var util=require(_0x836e('0x6'));var path=require('path');var sox=require(_0x836e('0x7'));var csv=require('to-csv');var ejs=require(_0x836e('0x8'));var fs=require('fs');var fs_extra=require(_0x836e('0x9'));var _=require(_0x836e('0xa'));var squel=require(_0x836e('0xb'));var crypto=require(_0x836e('0xc'));var jsforce=require(_0x836e('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x836e('0xe'));var querystring=require(_0x836e('0xf'));var Papa=require('papaparse');var Redis=require(_0x836e('0x10'));var authService=require(_0x836e('0x11'));var qs=require(_0x836e('0x12'));var as=require(_0x836e('0x13'));var hardwareService=require(_0x836e('0x14'));var logger=require(_0x836e('0x15'))(_0x836e('0x16'));var utils=require(_0x836e('0x17'));var config=require(_0x836e('0x18'));var licenseUtil=require(_0x836e('0x19'));var db=require(_0x836e('0x1a'))['db'];function respondWithStatusCode(_0x478480,_0x9eaf26){_0x9eaf26=_0x9eaf26||0xcc;return function(_0x175b61){if(_0x175b61){return _0x478480['sendStatus'](_0x9eaf26);}return _0x478480[_0x836e('0x1b')](_0x9eaf26)[_0x836e('0x1c')]();};}function respondWithResult(_0x13a6fa,_0x332719){_0x332719=_0x332719||0xc8;return function(_0x18e5c3){if(_0x18e5c3){return _0x13a6fa['status'](_0x332719)[_0x836e('0x1d')](_0x18e5c3);}};}function respondWithFilteredResult(_0x425f9b,_0x13f088){return function(_0xe088b3){if(_0xe088b3){var _0x244596=typeof _0x13f088[_0x836e('0x1e')]===_0x836e('0x1f')&&typeof _0x13f088[_0x836e('0x20')]===_0x836e('0x1f');var _0x3d799e=_0xe088b3[_0x836e('0x21')];var _0x5dfe13=_0x244596?0x0:_0x13f088['offset'];var _0x35565d=_0x244596?_0xe088b3['count']:_0x13f088[_0x836e('0x1e')]+_0x13f088['limit'];var _0x271c19;if(_0x35565d>=_0x3d799e){_0x35565d=_0x3d799e;_0x271c19=0xc8;}else{_0x271c19=0xce;}_0x425f9b['status'](_0x271c19);return _0x425f9b[_0x836e('0x22')](_0x836e('0x23'),_0x5dfe13+'-'+_0x35565d+'/'+_0x3d799e)[_0x836e('0x1d')](_0xe088b3);}return null;};}function patchUpdates(_0x312bbc){return function(_0x295bb1){try{jsonpatch['apply'](_0x295bb1,_0x312bbc,!![]);}catch(_0x18370e){return BPromise['reject'](_0x18370e);}return _0x295bb1[_0x836e('0x24')]();};}function saveUpdates(_0xcb9c37,_0x5889ee){return function(_0x7b7e72){if(_0x7b7e72){return _0x7b7e72[_0x836e('0x25')](_0xcb9c37)[_0x836e('0x26')](function(_0x12cb61){return _0x12cb61;});}return null;};}function removeEntity(_0x2295ea,_0xceb3d0){return function(_0x24b7fa){if(_0x24b7fa){return _0x24b7fa[_0x836e('0x27')]()[_0x836e('0x26')](function(){var _0x6ea50a=_0x24b7fa[_0x836e('0x28')]({'plain':!![]});var _0xf378d5=_0x836e('0x29');return db[_0x836e('0x2a')][_0x836e('0x27')]({'where':{'type':_0xf378d5,'resourceId':_0x6ea50a['id']}})[_0x836e('0x26')](function(){return _0x24b7fa;});})['then'](function(){_0x2295ea[_0x836e('0x1b')](0xcc)[_0x836e('0x1c')]();});}};}function handleEntityNotFound(_0xf6c447,_0x468c65){return function(_0x5cbeb5){if(!_0x5cbeb5){_0xf6c447['sendStatus'](0x194);}return _0x5cbeb5;};}function handleError(_0x233caa,_0x3592a9){_0x3592a9=_0x3592a9||0x1f4;return function(_0x3e3c19){logger[_0x836e('0x2b')](_0x3e3c19[_0x836e('0x2c')]);if(_0x3e3c19[_0x836e('0x2d')]){delete _0x3e3c19[_0x836e('0x2d')];}_0x233caa[_0x836e('0x1b')](_0x3592a9)[_0x836e('0x2e')](_0x3e3c19);};}exports['index']=function(_0x314e8f,_0xe4e16e){var _0x541d96={},_0xd35f74={},_0x10a69f={'count':0x0,'rows':[]};var _0x3231f7=_[_0x836e('0x2f')](db[_0x836e('0x30')]['rawAttributes'],function(_0x3128fe){return{'name':_0x3128fe[_0x836e('0x31')],'type':_0x3128fe[_0x836e('0x32')][_0x836e('0x33')]};});_0xd35f74[_0x836e('0x34')]=_[_0x836e('0x2f')](_0x3231f7,_0x836e('0x2d'));_0xd35f74[_0x836e('0x35')]=_[_0x836e('0x36')](_0x314e8f['query']);_0xd35f74[_0x836e('0x37')]=_[_0x836e('0x38')](_0xd35f74['model'],_0xd35f74[_0x836e('0x35')]);_0x541d96[_0x836e('0x39')]=_['intersection'](_0xd35f74[_0x836e('0x34')],qs['fields'](_0x314e8f[_0x836e('0x35')][_0x836e('0x3a')]));_0x541d96[_0x836e('0x39')]=_0x541d96[_0x836e('0x39')][_0x836e('0x3b')]?_0x541d96[_0x836e('0x39')]:_0xd35f74['model'];if(!_0x314e8f[_0x836e('0x35')][_0x836e('0x3c')]('nolimit')){_0x541d96[_0x836e('0x20')]=qs['limit'](_0x314e8f[_0x836e('0x35')]['limit']);_0x541d96['offset']=qs['offset'](_0x314e8f['query'][_0x836e('0x1e')]);}_0x541d96[_0x836e('0x3d')]=qs[_0x836e('0x3e')](_0x314e8f['query'][_0x836e('0x3e')]);_0x541d96[_0x836e('0x3f')]=qs[_0x836e('0x37')](_[_0x836e('0x40')](_0x314e8f['query'],_0xd35f74[_0x836e('0x37')]),_0x3231f7);if(_0x314e8f[_0x836e('0x35')][_0x836e('0x41')]){_0x541d96['where']=_[_0x836e('0x42')](_0x541d96[_0x836e('0x3f')],{'$or':_[_0x836e('0x2f')](_0x3231f7,function(_0x4b3a0a){if(_0x4b3a0a['type']!=='VIRTUAL'){var _0x4cc789={};_0x4cc789[_0x4b3a0a[_0x836e('0x2d')]]={'$like':'%'+_0x314e8f[_0x836e('0x35')][_0x836e('0x41')]+'%'};return _0x4cc789;}})});}_0x541d96=_[_0x836e('0x42')]({},_0x541d96,_0x314e8f[_0x836e('0x43')]);var _0x444fb0={'where':_0x541d96[_0x836e('0x3f')]};return db[_0x836e('0x30')][_0x836e('0x21')](_0x444fb0)[_0x836e('0x26')](function(_0x21bfb4){_0x10a69f[_0x836e('0x21')]=_0x21bfb4;if(_0x314e8f[_0x836e('0x35')][_0x836e('0x44')]){_0x541d96['include']=[{'all':!![]}];}return db[_0x836e('0x30')][_0x836e('0x45')](_0x541d96);})[_0x836e('0x26')](function(_0x5c5d3c){_0x10a69f['rows']=_0x5c5d3c;return _0x10a69f;})[_0x836e('0x26')](respondWithFilteredResult(_0xe4e16e,_0x541d96))[_0x836e('0x46')](handleError(_0xe4e16e,null));};exports[_0x836e('0x47')]=function(_0x532695,_0x4e40d2){var _0x29f237={'raw':!![],'where':{'id':_0x532695['params']['id']}},_0x10c249={};_0x10c249['model']=_[_0x836e('0x36')](db[_0x836e('0x30')][_0x836e('0x48')]);_0x10c249[_0x836e('0x35')]=_['keys'](_0x532695[_0x836e('0x35')]);_0x10c249[_0x836e('0x37')]=_[_0x836e('0x38')](_0x10c249[_0x836e('0x34')],_0x10c249['query']);_0x29f237[_0x836e('0x39')]=_[_0x836e('0x38')](_0x10c249[_0x836e('0x34')],qs['fields'](_0x532695[_0x836e('0x35')][_0x836e('0x3a')]));_0x29f237[_0x836e('0x39')]=_0x29f237[_0x836e('0x39')][_0x836e('0x3b')]?_0x29f237['attributes']:_0x10c249[_0x836e('0x34')];if(_0x532695['query'][_0x836e('0x44')]){_0x29f237[_0x836e('0x49')]=[{'all':!![]}];}_0x29f237=_[_0x836e('0x42')]({},_0x29f237,_0x532695[_0x836e('0x43')]);return db[_0x836e('0x30')][_0x836e('0x4a')](_0x29f237)[_0x836e('0x26')](handleEntityNotFound(_0x4e40d2,null))[_0x836e('0x26')](respondWithResult(_0x4e40d2,null))[_0x836e('0x46')](handleError(_0x4e40d2,null));};exports['create']=function(_0x268bc8,_0x3d9ca3){return db['Disposition'][_0x836e('0x4b')](_0x268bc8[_0x836e('0x4c')],{})['then'](function(_0x2c5317){var _0x1e122c=_0x268bc8['user'][_0x836e('0x28')]({'plain':!![]});if(!_0x1e122c)throw new Error(_0x836e('0x4d'));if(_0x1e122c[_0x836e('0x4e')]==='user'){var _0x5f0328=_0x2c5317[_0x836e('0x28')]({'plain':!![]});var _0x1a0a36=_0x836e('0x29');return db[_0x836e('0x4f')]['find']({'where':{'name':_0x1a0a36,'userProfileId':_0x1e122c[_0x836e('0x50')]},'raw':!![]})[_0x836e('0x26')](function(_0x3141cd){if(_0x3141cd&&_0x3141cd[_0x836e('0x51')]===0x0){return db[_0x836e('0x2a')][_0x836e('0x4b')]({'name':_0x5f0328[_0x836e('0x2d')],'resourceId':_0x5f0328['id'],'type':_0x3141cd[_0x836e('0x2d')],'sectionId':_0x3141cd['id']},{})[_0x836e('0x26')](function(){return _0x2c5317;});}else{return _0x2c5317;}})['catch'](function(_0x13e570){logger[_0x836e('0x2b')](_0x836e('0x52'),_0x13e570);throw _0x13e570;});}return _0x2c5317;})['then'](respondWithResult(_0x3d9ca3,0xc9))[_0x836e('0x46')](handleError(_0x3d9ca3,null));};exports[_0x836e('0x25')]=function(_0x207f62,_0x3e9a16){if(_0x207f62[_0x836e('0x4c')]['id']){delete _0x207f62['body']['id'];}return db[_0x836e('0x30')][_0x836e('0x4a')]({'where':{'id':_0x207f62[_0x836e('0x53')]['id']}})[_0x836e('0x26')](handleEntityNotFound(_0x3e9a16,null))[_0x836e('0x26')](saveUpdates(_0x207f62[_0x836e('0x4c')],null))[_0x836e('0x26')](respondWithResult(_0x3e9a16,null))[_0x836e('0x46')](handleError(_0x3e9a16,null));};exports[_0x836e('0x27')]=function(_0x516452,_0x3a4ee4){return db['Disposition'][_0x836e('0x4a')]({'where':{'id':_0x516452['params']['id']}})[_0x836e('0x26')](handleEntityNotFound(_0x3a4ee4,null))[_0x836e('0x26')](removeEntity(_0x3a4ee4,null))['catch'](handleError(_0x3a4ee4,null));};