215d53c1e3ec3bc13c05e29b5d44838e5887fc6e
[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 _0xd714=['error','stack','name','send','rawAttributes','type','key','model','map','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','merge','where','VIRTUAL','options','Disposition','includeAll','include','findAll','rows','catch','show','params','keys','length','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','eml-format','rimraf','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','limit','undefined','count','offset','set','Content-Range','apply','reject','save','update','then','get','Dispositions','UserProfileResource','end'];(function(_0x222f67,_0x317376){var _0x19db56=function(_0xe49d8a){while(--_0xe49d8a){_0x222f67['push'](_0x222f67['shift']());}};_0x19db56(++_0x317376);}(_0xd714,0x1e4));var _0x4d71=function(_0x2c7dc6,_0x3c4ce0){_0x2c7dc6=_0x2c7dc6-0x0;var _0x10002b=_0xd714[_0x2c7dc6];return _0x10002b;};'use strict';var emlformat=require(_0x4d71('0x0'));var rimraf=require(_0x4d71('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4d71('0x2'));var rp=require(_0x4d71('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x4d71('0x4'));var util=require(_0x4d71('0x5'));var path=require(_0x4d71('0x6'));var sox=require(_0x4d71('0x7'));var csv=require(_0x4d71('0x8'));var ejs=require(_0x4d71('0x9'));var fs=require('fs');var fs_extra=require(_0x4d71('0xa'));var _=require(_0x4d71('0xb'));var squel=require(_0x4d71('0xc'));var crypto=require(_0x4d71('0xd'));var jsforce=require(_0x4d71('0xe'));var deskjs=require(_0x4d71('0xf'));var toCsv=require(_0x4d71('0x8'));var querystring=require(_0x4d71('0x10'));var Papa=require(_0x4d71('0x11'));var Redis=require(_0x4d71('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x4d71('0x13'));var as=require(_0x4d71('0x14'));var hardwareService=require(_0x4d71('0x15'));var logger=require(_0x4d71('0x16'))('api');var utils=require(_0x4d71('0x17'));var config=require(_0x4d71('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x4d71('0x19'))['db'];function respondWithStatusCode(_0x1351e3,_0x29af32){_0x29af32=_0x29af32||0xcc;return function(_0x3008cb){if(_0x3008cb){return _0x1351e3[_0x4d71('0x1a')](_0x29af32);}return _0x1351e3[_0x4d71('0x1b')](_0x29af32)['end']();};}function respondWithResult(_0x25f613,_0x2297fc){_0x2297fc=_0x2297fc||0xc8;return function(_0x21af4c){if(_0x21af4c){return _0x25f613['status'](_0x2297fc)[_0x4d71('0x1c')](_0x21af4c);}};}function respondWithFilteredResult(_0x2e4136,_0x3eb264){return function(_0x1b610a){if(_0x1b610a){var _0x4f02d1=typeof _0x3eb264['offset']==='undefined'&&typeof _0x3eb264[_0x4d71('0x1d')]===_0x4d71('0x1e');var _0x37d4f2=_0x1b610a[_0x4d71('0x1f')];var _0xdb5f1d=_0x4f02d1?0x0:_0x3eb264['offset'];var _0x9e1747=_0x4f02d1?_0x1b610a[_0x4d71('0x1f')]:_0x3eb264[_0x4d71('0x20')]+_0x3eb264['limit'];var _0x163b33;if(_0x9e1747>=_0x37d4f2){_0x9e1747=_0x37d4f2;_0x163b33=0xc8;}else{_0x163b33=0xce;}_0x2e4136['status'](_0x163b33);return _0x2e4136[_0x4d71('0x21')](_0x4d71('0x22'),_0xdb5f1d+'-'+_0x9e1747+'/'+_0x37d4f2)[_0x4d71('0x1c')](_0x1b610a);}return null;};}function patchUpdates(_0x184dbe){return function(_0xfbeb3e){try{jsonpatch[_0x4d71('0x23')](_0xfbeb3e,_0x184dbe,!![]);}catch(_0x3aed7b){return BPromise[_0x4d71('0x24')](_0x3aed7b);}return _0xfbeb3e[_0x4d71('0x25')]();};}function saveUpdates(_0x3c080d,_0x590234){return function(_0xe2bb99){if(_0xe2bb99){return _0xe2bb99[_0x4d71('0x26')](_0x3c080d)[_0x4d71('0x27')](function(_0x43f1a1){return _0x43f1a1;});}return null;};}function removeEntity(_0x34aa15,_0x127224){return function(_0x246989){if(_0x246989){return _0x246989['destroy']()[_0x4d71('0x27')](function(){var _0x289e5e=_0x246989[_0x4d71('0x28')]({'plain':!![]});var _0x3d7c1d=_0x4d71('0x29');return db[_0x4d71('0x2a')]['destroy']({'where':{'type':_0x3d7c1d,'resourceId':_0x289e5e['id']}})[_0x4d71('0x27')](function(){return _0x246989;});})[_0x4d71('0x27')](function(){_0x34aa15[_0x4d71('0x1b')](0xcc)[_0x4d71('0x2b')]();});}};}function handleEntityNotFound(_0x378628,_0x370199){return function(_0x2a245e){if(!_0x2a245e){_0x378628[_0x4d71('0x1a')](0x194);}return _0x2a245e;};}function handleError(_0x3c4d0a,_0x21f6f2){_0x21f6f2=_0x21f6f2||0x1f4;return function(_0x47755e){logger[_0x4d71('0x2c')](_0x47755e[_0x4d71('0x2d')]);if(_0x47755e[_0x4d71('0x2e')]){delete _0x47755e[_0x4d71('0x2e')];}_0x3c4d0a[_0x4d71('0x1b')](_0x21f6f2)[_0x4d71('0x2f')](_0x47755e);};}exports['index']=function(_0x167c16,_0x157374){var _0x316226={},_0x3c278f={},_0x143d04={'count':0x0,'rows':[]};var _0x4cd811=_['map'](db['Disposition'][_0x4d71('0x30')],function(_0x44895a){return{'name':_0x44895a['fieldName'],'type':_0x44895a[_0x4d71('0x31')][_0x4d71('0x32')]};});_0x3c278f[_0x4d71('0x33')]=_[_0x4d71('0x34')](_0x4cd811,'name');_0x3c278f[_0x4d71('0x35')]=_['keys'](_0x167c16[_0x4d71('0x35')]);_0x3c278f[_0x4d71('0x36')]=_[_0x4d71('0x37')](_0x3c278f['model'],_0x3c278f[_0x4d71('0x35')]);_0x316226[_0x4d71('0x38')]=_[_0x4d71('0x37')](_0x3c278f[_0x4d71('0x33')],qs[_0x4d71('0x39')](_0x167c16['query'][_0x4d71('0x39')]));_0x316226[_0x4d71('0x38')]=_0x316226[_0x4d71('0x38')]['length']?_0x316226[_0x4d71('0x38')]:_0x3c278f[_0x4d71('0x33')];if(!_0x167c16[_0x4d71('0x35')][_0x4d71('0x3a')](_0x4d71('0x3b'))){_0x316226['limit']=qs[_0x4d71('0x1d')](_0x167c16['query']['limit']);_0x316226[_0x4d71('0x20')]=qs[_0x4d71('0x20')](_0x167c16[_0x4d71('0x35')]['offset']);}_0x316226[_0x4d71('0x3c')]=qs[_0x4d71('0x3d')](_0x167c16[_0x4d71('0x35')]['sort']);_0x316226['where']=qs[_0x4d71('0x36')](_[_0x4d71('0x3e')](_0x167c16[_0x4d71('0x35')],_0x3c278f['filters']),_0x4cd811);if(_0x167c16[_0x4d71('0x35')]['filter']){_0x316226['where']=_[_0x4d71('0x3f')](_0x316226[_0x4d71('0x40')],{'$or':_[_0x4d71('0x34')](_0x4cd811,function(_0x1e5620){if(_0x1e5620[_0x4d71('0x31')]!==_0x4d71('0x41')){var _0x83fbf8={};_0x83fbf8[_0x1e5620[_0x4d71('0x2e')]]={'$like':'%'+_0x167c16[_0x4d71('0x35')]['filter']+'%'};return _0x83fbf8;}})});}_0x316226=_[_0x4d71('0x3f')]({},_0x316226,_0x167c16[_0x4d71('0x42')]);var _0x2ae396={'where':_0x316226[_0x4d71('0x40')]};return db[_0x4d71('0x43')][_0x4d71('0x1f')](_0x2ae396)[_0x4d71('0x27')](function(_0x3bc5c7){_0x143d04[_0x4d71('0x1f')]=_0x3bc5c7;if(_0x167c16[_0x4d71('0x35')][_0x4d71('0x44')]){_0x316226[_0x4d71('0x45')]=[{'all':!![]}];}return db[_0x4d71('0x43')][_0x4d71('0x46')](_0x316226);})[_0x4d71('0x27')](function(_0x4024a9){_0x143d04[_0x4d71('0x47')]=_0x4024a9;return _0x143d04;})['then'](respondWithFilteredResult(_0x157374,_0x316226))[_0x4d71('0x48')](handleError(_0x157374,null));};exports[_0x4d71('0x49')]=function(_0x144cbf,_0x254aa2){var _0x5e2410={'raw':!![],'where':{'id':_0x144cbf[_0x4d71('0x4a')]['id']}},_0x2bc8ba={};_0x2bc8ba[_0x4d71('0x33')]=_[_0x4d71('0x4b')](db[_0x4d71('0x43')][_0x4d71('0x30')]);_0x2bc8ba[_0x4d71('0x35')]=_['keys'](_0x144cbf[_0x4d71('0x35')]);_0x2bc8ba[_0x4d71('0x36')]=_['intersection'](_0x2bc8ba[_0x4d71('0x33')],_0x2bc8ba['query']);_0x5e2410[_0x4d71('0x38')]=_[_0x4d71('0x37')](_0x2bc8ba[_0x4d71('0x33')],qs[_0x4d71('0x39')](_0x144cbf['query'][_0x4d71('0x39')]));_0x5e2410[_0x4d71('0x38')]=_0x5e2410['attributes'][_0x4d71('0x4c')]?_0x5e2410[_0x4d71('0x38')]:_0x2bc8ba[_0x4d71('0x33')];if(_0x144cbf[_0x4d71('0x35')][_0x4d71('0x44')]){_0x5e2410['include']=[{'all':!![]}];}_0x5e2410=_[_0x4d71('0x3f')]({},_0x5e2410,_0x144cbf[_0x4d71('0x42')]);return db[_0x4d71('0x43')]['find'](_0x5e2410)[_0x4d71('0x27')](handleEntityNotFound(_0x254aa2,null))['then'](respondWithResult(_0x254aa2,null))['catch'](handleError(_0x254aa2,null));};exports[_0x4d71('0x4d')]=function(_0x157e57,_0x9d2616){return db['Disposition'][_0x4d71('0x4d')](_0x157e57[_0x4d71('0x4e')],{})[_0x4d71('0x27')](function(_0x182c61){var _0x44d92b=_0x157e57[_0x4d71('0x4f')][_0x4d71('0x28')]({'plain':!![]});if(!_0x44d92b)throw new Error(_0x4d71('0x50'));if(_0x44d92b[_0x4d71('0x51')]===_0x4d71('0x4f')){var _0x298c15=_0x182c61[_0x4d71('0x28')]({'plain':!![]});var _0x43fe1e=_0x4d71('0x29');return db[_0x4d71('0x52')][_0x4d71('0x53')]({'where':{'name':_0x43fe1e,'userProfileId':_0x44d92b[_0x4d71('0x54')]},'raw':!![]})[_0x4d71('0x27')](function(_0x2b678a){if(_0x2b678a&&_0x2b678a[_0x4d71('0x55')]===0x0){return db[_0x4d71('0x2a')]['create']({'name':_0x298c15[_0x4d71('0x2e')],'resourceId':_0x298c15['id'],'type':_0x2b678a['name'],'sectionId':_0x2b678a['id']},{})[_0x4d71('0x27')](function(){return _0x182c61;});}else{return _0x182c61;}})[_0x4d71('0x48')](function(_0x3d2fdd){logger[_0x4d71('0x2c')](_0x4d71('0x56'),_0x3d2fdd);throw _0x3d2fdd;});}return _0x182c61;})['then'](respondWithResult(_0x9d2616,0xc9))[_0x4d71('0x48')](handleError(_0x9d2616,null));};exports[_0x4d71('0x26')]=function(_0x4c56aa,_0x20c125){if(_0x4c56aa['body']['id']){delete _0x4c56aa['body']['id'];}return db[_0x4d71('0x43')]['find']({'where':{'id':_0x4c56aa[_0x4d71('0x4a')]['id']}})[_0x4d71('0x27')](handleEntityNotFound(_0x20c125,null))['then'](saveUpdates(_0x4c56aa[_0x4d71('0x4e')],null))[_0x4d71('0x27')](respondWithResult(_0x20c125,null))['catch'](handleError(_0x20c125,null));};exports[_0x4d71('0x57')]=function(_0x356639,_0x296c8a){return db[_0x4d71('0x43')][_0x4d71('0x53')]({'where':{'id':_0x356639[_0x4d71('0x4a')]['id']}})['then'](handleEntityNotFound(_0x296c8a,null))[_0x4d71('0x27')](removeEntity(_0x296c8a,null))['catch'](handleError(_0x296c8a,null));};