Built motion from commit (unavailable).|2.4.15
[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 _0x8ef6=['crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','json','offset','set','apply','reject','save','update','get','Dispositions','UserProfileResource','destroy','then','end','error','stack','send','index','map','Disposition','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','nolimit','limit','order','sort','where','pick','filter','merge','type','VIRTUAL','name','options','count','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','user','UserProfileSection','userProfileId','autoAssociation','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','lodash','squel'];(function(_0x402731,_0x43c115){var _0x111736=function(_0x5a7044){while(--_0x5a7044){_0x402731['push'](_0x402731['shift']());}};_0x111736(++_0x43c115);}(_0x8ef6,0xf2));var _0x68ef=function(_0x126a4f,_0xb26214){_0x126a4f=_0x126a4f-0x0;var _0x4d4ccb=_0x8ef6[_0x126a4f];return _0x4d4ccb;};'use strict';var pdf=require(_0x68ef('0x0'));var emlformat=require(_0x68ef('0x1'));var rimraf=require(_0x68ef('0x2'));var zipdir=require(_0x68ef('0x3'));var jsonpatch=require(_0x68ef('0x4'));var rp=require(_0x68ef('0x5'));var moment=require(_0x68ef('0x6'));var BPromise=require('bluebird');var Mustache=require(_0x68ef('0x7'));var util=require(_0x68ef('0x8'));var path=require(_0x68ef('0x9'));var sox=require(_0x68ef('0xa'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x68ef('0xb'));var squel=require(_0x68ef('0xc'));var crypto=require(_0x68ef('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x68ef('0xe'));var toCsv=require(_0x68ef('0xf'));var querystring=require(_0x68ef('0x10'));var Papa=require(_0x68ef('0x11'));var Redis=require(_0x68ef('0x12'));var authService=require(_0x68ef('0x13'));var qs=require(_0x68ef('0x14'));var as=require(_0x68ef('0x15'));var hardwareService=require(_0x68ef('0x16'));var logger=require(_0x68ef('0x17'))(_0x68ef('0x18'));var utils=require(_0x68ef('0x19'));var config=require('../../config/environment');var db=require(_0x68ef('0x1a'))['db'];function respondWithStatusCode(_0x46356f,_0x1e117a){_0x1e117a=_0x1e117a||0xcc;return function(_0x454ef4){if(_0x454ef4){return _0x46356f[_0x68ef('0x1b')](_0x1e117a);}return _0x46356f[_0x68ef('0x1c')](_0x1e117a)['end']();};}function respondWithResult(_0x3b48dd,_0xc50cce){_0xc50cce=_0xc50cce||0xc8;return function(_0x2657c5){if(_0x2657c5){return _0x3b48dd['status'](_0xc50cce)[_0x68ef('0x1d')](_0x2657c5);}};}function respondWithFilteredResult(_0x1764de,_0x24682d){return function(_0x5005ba){if(_0x5005ba){var _0x35493d=_0x5005ba['count'],_0x37c4cc=_0x24682d[_0x68ef('0x1e')],_0x3d1e90=_0x24682d['offset']+_0x24682d['limit'],_0x3780a4;if(_0x3d1e90>=_0x35493d){_0x3d1e90=_0x35493d;_0x3780a4=0xc8;}else{_0x3780a4=0xce;}_0x1764de[_0x68ef('0x1c')](_0x3780a4);return _0x1764de[_0x68ef('0x1f')]('Content-Range',_0x37c4cc+'-'+_0x3d1e90+'/'+_0x35493d)['json'](_0x5005ba);}return null;};}function patchUpdates(_0x3c4c1f){return function(_0x2cd92c){try{jsonpatch[_0x68ef('0x20')](_0x2cd92c,_0x3c4c1f,!![]);}catch(_0x4fad1c){return BPromise[_0x68ef('0x21')](_0x4fad1c);}return _0x2cd92c[_0x68ef('0x22')]();};}function saveUpdates(_0x183f5f,_0x5b246b){return function(_0x3c46d4){if(_0x3c46d4){return _0x3c46d4[_0x68ef('0x23')](_0x183f5f)['then'](function(_0x399da4){return _0x399da4;});}return null;};}function removeEntity(_0xf4760f,_0x19aa3d){return function(_0x5ddec7){if(_0x5ddec7){return _0x5ddec7['destroy']()['then'](function(){var _0x26018d=_0x5ddec7[_0x68ef('0x24')]({'plain':!![]});var _0x312cc9=_0x68ef('0x25');return db[_0x68ef('0x26')][_0x68ef('0x27')]({'where':{'type':_0x312cc9,'resourceId':_0x26018d['id']}})[_0x68ef('0x28')](function(){return _0x5ddec7;});})[_0x68ef('0x28')](function(){_0xf4760f[_0x68ef('0x1c')](0xcc)[_0x68ef('0x29')]();});}};}function handleEntityNotFound(_0x5e4dbe,_0x178460){return function(_0x57f9ee){if(!_0x57f9ee){_0x5e4dbe['sendStatus'](0x194);}return _0x57f9ee;};}function handleError(_0x55d8b0,_0x1a7ce1){_0x1a7ce1=_0x1a7ce1||0x1f4;return function(_0x268f32){logger[_0x68ef('0x2a')](_0x268f32[_0x68ef('0x2b')]);if(_0x268f32['name']){delete _0x268f32['name'];}_0x55d8b0[_0x68ef('0x1c')](_0x1a7ce1)[_0x68ef('0x2c')](_0x268f32);};}exports[_0x68ef('0x2d')]=function(_0x263b30,_0x22ef25){var _0x201884={},_0x26288a={},_0x4579cb={'count':0x0,'rows':[]};var _0x5a6dfd=_[_0x68ef('0x2e')](db[_0x68ef('0x2f')][_0x68ef('0x30')],function(_0x4c25aa){return{'name':_0x4c25aa[_0x68ef('0x31')],'type':_0x4c25aa['type'][_0x68ef('0x32')]};});_0x26288a[_0x68ef('0x33')]=_['map'](_0x5a6dfd,'name');_0x26288a[_0x68ef('0x34')]=_[_0x68ef('0x35')](_0x263b30['query']);_0x26288a[_0x68ef('0x36')]=_[_0x68ef('0x37')](_0x26288a[_0x68ef('0x33')],_0x26288a[_0x68ef('0x34')]);_0x201884['attributes']=_[_0x68ef('0x37')](_0x26288a[_0x68ef('0x33')],qs['fields'](_0x263b30[_0x68ef('0x34')]['fields']));_0x201884[_0x68ef('0x38')]=_0x201884[_0x68ef('0x38')]['length']?_0x201884[_0x68ef('0x38')]:_0x26288a['model'];if(!_0x263b30[_0x68ef('0x34')]['hasOwnProperty'](_0x68ef('0x39'))){_0x201884[_0x68ef('0x3a')]=qs[_0x68ef('0x3a')](_0x263b30['query'][_0x68ef('0x3a')]);_0x201884['offset']=qs[_0x68ef('0x1e')](_0x263b30['query'][_0x68ef('0x1e')]);}_0x201884[_0x68ef('0x3b')]=qs[_0x68ef('0x3c')](_0x263b30[_0x68ef('0x34')][_0x68ef('0x3c')]);_0x201884[_0x68ef('0x3d')]=qs['filters'](_[_0x68ef('0x3e')](_0x263b30[_0x68ef('0x34')],_0x26288a[_0x68ef('0x36')]));if(_0x263b30['query'][_0x68ef('0x3f')]){_0x201884[_0x68ef('0x3d')]=_[_0x68ef('0x40')](_0x201884['where'],{'$or':_['map'](_0x5a6dfd,function(_0x14f0fc){if(_0x14f0fc[_0x68ef('0x41')]!==_0x68ef('0x42')){var _0x42fc8c={};_0x42fc8c[_0x14f0fc[_0x68ef('0x43')]]={'$like':'%'+_0x263b30[_0x68ef('0x34')][_0x68ef('0x3f')]+'%'};return _0x42fc8c;}})});}_0x201884=_['merge']({},_0x201884,_0x263b30[_0x68ef('0x44')]);var _0xd7f9ca={'where':_0x201884[_0x68ef('0x3d')]};return db[_0x68ef('0x2f')]['count'](_0xd7f9ca)[_0x68ef('0x28')](function(_0x3a2f53){_0x4579cb[_0x68ef('0x45')]=_0x3a2f53;if(_0x263b30[_0x68ef('0x34')][_0x68ef('0x46')]){_0x201884[_0x68ef('0x47')]=[{'all':!![]}];}return db['Disposition'][_0x68ef('0x48')](_0x201884);})[_0x68ef('0x28')](function(_0xf5010c){_0x4579cb[_0x68ef('0x49')]=_0xf5010c;return _0x4579cb;})[_0x68ef('0x28')](respondWithFilteredResult(_0x22ef25,_0x201884))[_0x68ef('0x4a')](handleError(_0x22ef25,null));};exports[_0x68ef('0x4b')]=function(_0xd6a0b5,_0xc687ab){var _0x531096={'raw':!![],'where':{'id':_0xd6a0b5[_0x68ef('0x4c')]['id']}},_0xad1a28={};_0xad1a28[_0x68ef('0x33')]=_[_0x68ef('0x35')](db[_0x68ef('0x2f')][_0x68ef('0x30')]);_0xad1a28[_0x68ef('0x34')]=_['keys'](_0xd6a0b5[_0x68ef('0x34')]);_0xad1a28['filters']=_[_0x68ef('0x37')](_0xad1a28[_0x68ef('0x33')],_0xad1a28[_0x68ef('0x34')]);_0x531096[_0x68ef('0x38')]=_['intersection'](_0xad1a28[_0x68ef('0x33')],qs['fields'](_0xd6a0b5[_0x68ef('0x34')]['fields']));_0x531096[_0x68ef('0x38')]=_0x531096[_0x68ef('0x38')][_0x68ef('0x4d')]?_0x531096['attributes']:_0xad1a28['model'];if(_0xd6a0b5[_0x68ef('0x34')][_0x68ef('0x46')]){_0x531096['include']=[{'all':!![]}];}_0x531096=_['merge']({},_0x531096,_0xd6a0b5['options']);return db[_0x68ef('0x2f')][_0x68ef('0x4e')](_0x531096)[_0x68ef('0x28')](handleEntityNotFound(_0xc687ab,null))[_0x68ef('0x28')](respondWithResult(_0xc687ab,null))[_0x68ef('0x4a')](handleError(_0xc687ab,null));};exports['create']=function(_0x55f385,_0xc39f5b){return db[_0x68ef('0x2f')][_0x68ef('0x4f')](_0x55f385[_0x68ef('0x50')],{})['then'](function(_0x810685){var _0x474e5a=_0x55f385[_0x68ef('0x51')][_0x68ef('0x24')]({'plain':!![]});if(!_0x474e5a)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x474e5a['role']===_0x68ef('0x51')){var _0x3c3074=_0x810685['get']({'plain':!![]});var _0xfc7a74=_0x68ef('0x25');return db[_0x68ef('0x52')][_0x68ef('0x4e')]({'where':{'name':_0xfc7a74,'userProfileId':_0x474e5a[_0x68ef('0x53')]},'raw':!![]})['then'](function(_0x35d6bd){if(_0x35d6bd&&_0x35d6bd[_0x68ef('0x54')]===0x0){return db[_0x68ef('0x26')]['create']({'name':_0x3c3074[_0x68ef('0x43')],'resourceId':_0x3c3074['id'],'type':_0x35d6bd[_0x68ef('0x43')],'sectionId':_0x35d6bd['id']},{})[_0x68ef('0x28')](function(){return _0x810685;});}else{return _0x810685;}})['catch'](function(_0x7dce90){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x7dce90);throw _0x7dce90;});}return _0x810685;})[_0x68ef('0x28')](respondWithResult(_0xc39f5b,0xc9))['catch'](handleError(_0xc39f5b,null));};exports[_0x68ef('0x23')]=function(_0xb33afd,_0x53ebd){if(_0xb33afd[_0x68ef('0x50')]['id']){delete _0xb33afd[_0x68ef('0x50')]['id'];}return db[_0x68ef('0x2f')][_0x68ef('0x4e')]({'where':{'id':_0xb33afd[_0x68ef('0x4c')]['id']}})[_0x68ef('0x28')](handleEntityNotFound(_0x53ebd,null))[_0x68ef('0x28')](saveUpdates(_0xb33afd['body'],null))['then'](respondWithResult(_0x53ebd,null))[_0x68ef('0x4a')](handleError(_0x53ebd,null));};exports[_0x68ef('0x27')]=function(_0x317b79,_0xdc83f4){return db[_0x68ef('0x2f')][_0x68ef('0x4e')]({'where':{'id':_0x317b79[_0x68ef('0x4c')]['id']}})[_0x68ef('0x28')](handleEntityNotFound(_0xdc83f4,null))[_0x68ef('0x28')](removeEntity(_0xdc83f4,null))['catch'](handleError(_0xdc83f4,null));};