80d9d4728f12b39bc23cd6543eee297fdd3c291b
[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 _0xd983=['send','index','map','Disposition','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','offset','order','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','show','params','includeAll','create','user','role','UserProfileSection','find','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','end','status','json','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','get','UserProfileResource','error','stack','name'];(function(_0x1bcce9,_0x1b953e){var _0x4b2cbb=function(_0x3ed9ca){while(--_0x3ed9ca){_0x1bcce9['push'](_0x1bcce9['shift']());}};_0x4b2cbb(++_0x1b953e);}(_0xd983,0x7d));var _0x3d98=function(_0x198622,_0x5a611a){_0x198622=_0x198622-0x0;var _0x5a524d=_0xd983[_0x198622];return _0x5a524d;};'use strict';var emlformat=require(_0x3d98('0x0'));var rimraf=require(_0x3d98('0x1'));var zipdir=require(_0x3d98('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3d98('0x3'));var moment=require(_0x3d98('0x4'));var BPromise=require(_0x3d98('0x5'));var Mustache=require(_0x3d98('0x6'));var util=require(_0x3d98('0x7'));var path=require(_0x3d98('0x8'));var sox=require(_0x3d98('0x9'));var csv=require(_0x3d98('0xa'));var ejs=require(_0x3d98('0xb'));var fs=require('fs');var fs_extra=require(_0x3d98('0xc'));var _=require(_0x3d98('0xd'));var squel=require(_0x3d98('0xe'));var crypto=require(_0x3d98('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x3d98('0x10'));var toCsv=require(_0x3d98('0xa'));var querystring=require('querystring');var Papa=require(_0x3d98('0x11'));var Redis=require(_0x3d98('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x3d98('0x13'));var as=require(_0x3d98('0x14'));var hardwareService=require(_0x3d98('0x15'));var logger=require(_0x3d98('0x16'))(_0x3d98('0x17'));var utils=require(_0x3d98('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x3d98('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xf4f3da,_0x4209ea){_0x4209ea=_0x4209ea||0xcc;return function(_0x930427){if(_0x930427){return _0xf4f3da[_0x3d98('0x1a')](_0x4209ea);}return _0xf4f3da['status'](_0x4209ea)[_0x3d98('0x1b')]();};}function respondWithResult(_0x478da8,_0xc92387){_0xc92387=_0xc92387||0xc8;return function(_0x5bc61f){if(_0x5bc61f){return _0x478da8[_0x3d98('0x1c')](_0xc92387)[_0x3d98('0x1d')](_0x5bc61f);}};}function respondWithFilteredResult(_0x626f0b,_0xd9bea7){return function(_0x34241d){if(_0x34241d){var _0x18d737=typeof _0xd9bea7['offset']===_0x3d98('0x1e')&&typeof _0xd9bea7[_0x3d98('0x1f')]===_0x3d98('0x1e');var _0x4dfb91=_0x34241d[_0x3d98('0x20')];var _0x100ad0=_0x18d737?0x0:_0xd9bea7['offset'];var _0x5e8a24=_0x18d737?_0x34241d[_0x3d98('0x20')]:_0xd9bea7['offset']+_0xd9bea7[_0x3d98('0x1f')];var _0x3147af;if(_0x5e8a24>=_0x4dfb91){_0x5e8a24=_0x4dfb91;_0x3147af=0xc8;}else{_0x3147af=0xce;}_0x626f0b[_0x3d98('0x1c')](_0x3147af);return _0x626f0b[_0x3d98('0x21')](_0x3d98('0x22'),_0x100ad0+'-'+_0x5e8a24+'/'+_0x4dfb91)['json'](_0x34241d);}return null;};}function patchUpdates(_0x332701){return function(_0x32d9a6){try{jsonpatch[_0x3d98('0x23')](_0x32d9a6,_0x332701,!![]);}catch(_0x57b4ca){return BPromise[_0x3d98('0x24')](_0x57b4ca);}return _0x32d9a6['save']();};}function saveUpdates(_0x163b4d,_0x1953d1){return function(_0x5e33b2){if(_0x5e33b2){return _0x5e33b2[_0x3d98('0x25')](_0x163b4d)[_0x3d98('0x26')](function(_0x4e3540){return _0x4e3540;});}return null;};}function removeEntity(_0x84fc59,_0xa8f877){return function(_0x4aad7b){if(_0x4aad7b){return _0x4aad7b[_0x3d98('0x27')]()['then'](function(){var _0x324690=_0x4aad7b[_0x3d98('0x28')]({'plain':!![]});var _0x20d22f='Dispositions';return db[_0x3d98('0x29')][_0x3d98('0x27')]({'where':{'type':_0x20d22f,'resourceId':_0x324690['id']}})[_0x3d98('0x26')](function(){return _0x4aad7b;});})[_0x3d98('0x26')](function(){_0x84fc59[_0x3d98('0x1c')](0xcc)[_0x3d98('0x1b')]();});}};}function handleEntityNotFound(_0x5d77b4,_0x306400){return function(_0x3dc524){if(!_0x3dc524){_0x5d77b4[_0x3d98('0x1a')](0x194);}return _0x3dc524;};}function handleError(_0x32ac39,_0x20ee0a){_0x20ee0a=_0x20ee0a||0x1f4;return function(_0x40ba72){logger[_0x3d98('0x2a')](_0x40ba72[_0x3d98('0x2b')]);if(_0x40ba72[_0x3d98('0x2c')]){delete _0x40ba72[_0x3d98('0x2c')];}_0x32ac39[_0x3d98('0x1c')](_0x20ee0a)[_0x3d98('0x2d')](_0x40ba72);};}exports[_0x3d98('0x2e')]=function(_0x1831ee,_0x5f3969){var _0x1a50e8={},_0x5f1a17={},_0x3b2666={'count':0x0,'rows':[]};var _0xc16247=_[_0x3d98('0x2f')](db[_0x3d98('0x30')][_0x3d98('0x31')],function(_0x381101){return{'name':_0x381101[_0x3d98('0x32')],'type':_0x381101[_0x3d98('0x33')][_0x3d98('0x34')]};});_0x5f1a17[_0x3d98('0x35')]=_[_0x3d98('0x2f')](_0xc16247,_0x3d98('0x2c'));_0x5f1a17[_0x3d98('0x36')]=_[_0x3d98('0x37')](_0x1831ee['query']);_0x5f1a17[_0x3d98('0x38')]=_['intersection'](_0x5f1a17[_0x3d98('0x35')],_0x5f1a17[_0x3d98('0x36')]);_0x1a50e8[_0x3d98('0x39')]=_[_0x3d98('0x3a')](_0x5f1a17[_0x3d98('0x35')],qs[_0x3d98('0x3b')](_0x1831ee[_0x3d98('0x36')]['fields']));_0x1a50e8[_0x3d98('0x39')]=_0x1a50e8[_0x3d98('0x39')][_0x3d98('0x3c')]?_0x1a50e8['attributes']:_0x5f1a17[_0x3d98('0x35')];if(!_0x1831ee[_0x3d98('0x36')][_0x3d98('0x3d')](_0x3d98('0x3e'))){_0x1a50e8[_0x3d98('0x1f')]=qs[_0x3d98('0x1f')](_0x1831ee[_0x3d98('0x36')][_0x3d98('0x1f')]);_0x1a50e8[_0x3d98('0x3f')]=qs['offset'](_0x1831ee['query'][_0x3d98('0x3f')]);}_0x1a50e8[_0x3d98('0x40')]=qs['sort'](_0x1831ee[_0x3d98('0x36')]['sort']);_0x1a50e8[_0x3d98('0x41')]=qs[_0x3d98('0x38')](_[_0x3d98('0x42')](_0x1831ee['query'],_0x5f1a17[_0x3d98('0x38')]),_0xc16247);if(_0x1831ee['query'][_0x3d98('0x43')]){_0x1a50e8['where']=_[_0x3d98('0x44')](_0x1a50e8[_0x3d98('0x41')],{'$or':_['map'](_0xc16247,function(_0x51a44c){if(_0x51a44c[_0x3d98('0x33')]!==_0x3d98('0x45')){var _0x428ce0={};_0x428ce0[_0x51a44c[_0x3d98('0x2c')]]={'$like':'%'+_0x1831ee[_0x3d98('0x36')][_0x3d98('0x43')]+'%'};return _0x428ce0;}})});}_0x1a50e8=_[_0x3d98('0x44')]({},_0x1a50e8,_0x1831ee[_0x3d98('0x46')]);var _0x2ce389={'where':_0x1a50e8[_0x3d98('0x41')]};return db[_0x3d98('0x30')][_0x3d98('0x20')](_0x2ce389)['then'](function(_0x56da58){_0x3b2666['count']=_0x56da58;if(_0x1831ee['query']['includeAll']){_0x1a50e8[_0x3d98('0x47')]=[{'all':!![]}];}return db[_0x3d98('0x30')][_0x3d98('0x48')](_0x1a50e8);})['then'](function(_0x127b53){_0x3b2666[_0x3d98('0x49')]=_0x127b53;return _0x3b2666;})[_0x3d98('0x26')](respondWithFilteredResult(_0x5f3969,_0x1a50e8))['catch'](handleError(_0x5f3969,null));};exports[_0x3d98('0x4a')]=function(_0x2b377b,_0x53fdbb){var _0x5d8bed={'raw':!![],'where':{'id':_0x2b377b[_0x3d98('0x4b')]['id']}},_0x2428fc={};_0x2428fc[_0x3d98('0x35')]=_['keys'](db['Disposition'][_0x3d98('0x31')]);_0x2428fc[_0x3d98('0x36')]=_[_0x3d98('0x37')](_0x2b377b[_0x3d98('0x36')]);_0x2428fc[_0x3d98('0x38')]=_[_0x3d98('0x3a')](_0x2428fc[_0x3d98('0x35')],_0x2428fc[_0x3d98('0x36')]);_0x5d8bed[_0x3d98('0x39')]=_[_0x3d98('0x3a')](_0x2428fc[_0x3d98('0x35')],qs['fields'](_0x2b377b[_0x3d98('0x36')]['fields']));_0x5d8bed[_0x3d98('0x39')]=_0x5d8bed['attributes'][_0x3d98('0x3c')]?_0x5d8bed[_0x3d98('0x39')]:_0x2428fc['model'];if(_0x2b377b[_0x3d98('0x36')][_0x3d98('0x4c')]){_0x5d8bed[_0x3d98('0x47')]=[{'all':!![]}];}_0x5d8bed=_[_0x3d98('0x44')]({},_0x5d8bed,_0x2b377b[_0x3d98('0x46')]);return db[_0x3d98('0x30')]['find'](_0x5d8bed)[_0x3d98('0x26')](handleEntityNotFound(_0x53fdbb,null))[_0x3d98('0x26')](respondWithResult(_0x53fdbb,null))['catch'](handleError(_0x53fdbb,null));};exports[_0x3d98('0x4d')]=function(_0x59e851,_0x4be629){return db[_0x3d98('0x30')][_0x3d98('0x4d')](_0x59e851['body'],{})[_0x3d98('0x26')](function(_0x121cef){var _0x6d4e71=_0x59e851[_0x3d98('0x4e')][_0x3d98('0x28')]({'plain':!![]});if(!_0x6d4e71)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x6d4e71[_0x3d98('0x4f')]===_0x3d98('0x4e')){var _0x174745=_0x121cef[_0x3d98('0x28')]({'plain':!![]});var _0x1a3711='Dispositions';return db[_0x3d98('0x50')][_0x3d98('0x51')]({'where':{'name':_0x1a3711,'userProfileId':_0x6d4e71['userProfileId']},'raw':!![]})[_0x3d98('0x26')](function(_0x22c1a9){if(_0x22c1a9&&_0x22c1a9['autoAssociation']===0x0){return db[_0x3d98('0x29')][_0x3d98('0x4d')]({'name':_0x174745[_0x3d98('0x2c')],'resourceId':_0x174745['id'],'type':_0x22c1a9[_0x3d98('0x2c')],'sectionId':_0x22c1a9['id']},{})[_0x3d98('0x26')](function(){return _0x121cef;});}else{return _0x121cef;}})[_0x3d98('0x52')](function(_0x30f9f6){logger[_0x3d98('0x2a')](_0x3d98('0x53'),_0x30f9f6);throw _0x30f9f6;});}return _0x121cef;})[_0x3d98('0x26')](respondWithResult(_0x4be629,0xc9))[_0x3d98('0x52')](handleError(_0x4be629,null));};exports[_0x3d98('0x25')]=function(_0x30082b,_0x12dae4){if(_0x30082b['body']['id']){delete _0x30082b[_0x3d98('0x54')]['id'];}return db[_0x3d98('0x30')][_0x3d98('0x51')]({'where':{'id':_0x30082b[_0x3d98('0x4b')]['id']}})[_0x3d98('0x26')](handleEntityNotFound(_0x12dae4,null))[_0x3d98('0x26')](saveUpdates(_0x30082b[_0x3d98('0x54')],null))['then'](respondWithResult(_0x12dae4,null))[_0x3d98('0x52')](handleError(_0x12dae4,null));};exports['destroy']=function(_0x1ab69e,_0x1c0735){return db[_0x3d98('0x30')][_0x3d98('0x51')]({'where':{'id':_0x1ab69e['params']['id']}})['then'](handleEntityNotFound(_0x1c0735,null))[_0x3d98('0x26')](removeEntity(_0x1c0735,null))[_0x3d98('0x52')](handleError(_0x1c0735,null));};