a3cf8a6363bf8226d8fbbc86f99ebfb1b7691e82
[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 _0x9ade=['../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','save','then','destroy','get','Dispositions','UserProfileResource','error','name','send','index','map','Disposition','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','rows','catch','show','params','keys','include','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware'];(function(_0x3926c4,_0xee03f6){var _0x42250b=function(_0x2944ca){while(--_0x2944ca){_0x3926c4['push'](_0x3926c4['shift']());}};_0x42250b(++_0xee03f6);}(_0x9ade,0x8e));var _0xe9ad=function(_0x98417d,_0x2d249c){_0x98417d=_0x98417d-0x0;var _0x51ee3c=_0x9ade[_0x98417d];return _0x51ee3c;};'use strict';var emlformat=require(_0xe9ad('0x0'));var rimraf=require(_0xe9ad('0x1'));var zipdir=require(_0xe9ad('0x2'));var jsonpatch=require(_0xe9ad('0x3'));var rp=require(_0xe9ad('0x4'));var moment=require(_0xe9ad('0x5'));var BPromise=require(_0xe9ad('0x6'));var Mustache=require(_0xe9ad('0x7'));var util=require(_0xe9ad('0x8'));var path=require(_0xe9ad('0x9'));var sox=require('sox');var csv=require(_0xe9ad('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe9ad('0xb'));var squel=require(_0xe9ad('0xc'));var crypto=require(_0xe9ad('0xd'));var jsforce=require(_0xe9ad('0xe'));var deskjs=require(_0xe9ad('0xf'));var toCsv=require(_0xe9ad('0xa'));var querystring=require(_0xe9ad('0x10'));var Papa=require(_0xe9ad('0x11'));var Redis=require(_0xe9ad('0x12'));var authService=require(_0xe9ad('0x13'));var qs=require(_0xe9ad('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe9ad('0x15'));var logger=require(_0xe9ad('0x16'))('api');var utils=require(_0xe9ad('0x17'));var config=require(_0xe9ad('0x18'));var licenseUtil=require(_0xe9ad('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x436bd2,_0x4c25c3){_0x4c25c3=_0x4c25c3||0xcc;return function(_0x51ac8e){if(_0x51ac8e){return _0x436bd2[_0xe9ad('0x1a')](_0x4c25c3);}return _0x436bd2[_0xe9ad('0x1b')](_0x4c25c3)[_0xe9ad('0x1c')]();};}function respondWithResult(_0xe57dbe,_0x1c5cef){_0x1c5cef=_0x1c5cef||0xc8;return function(_0x338052){if(_0x338052){return _0xe57dbe[_0xe9ad('0x1b')](_0x1c5cef)[_0xe9ad('0x1d')](_0x338052);}};}function respondWithFilteredResult(_0x59ac31,_0x7c6fb8){return function(_0x448616){if(_0x448616){var _0x37c6a9=typeof _0x7c6fb8[_0xe9ad('0x1e')]===_0xe9ad('0x1f')&&typeof _0x7c6fb8[_0xe9ad('0x20')]==='undefined';var _0x30e5ed=_0x448616[_0xe9ad('0x21')];var _0x2e3691=_0x37c6a9?0x0:_0x7c6fb8[_0xe9ad('0x1e')];var _0x42a934=_0x37c6a9?_0x448616[_0xe9ad('0x21')]:_0x7c6fb8[_0xe9ad('0x1e')]+_0x7c6fb8[_0xe9ad('0x20')];var _0x473aef;if(_0x42a934>=_0x30e5ed){_0x42a934=_0x30e5ed;_0x473aef=0xc8;}else{_0x473aef=0xce;}_0x59ac31[_0xe9ad('0x1b')](_0x473aef);return _0x59ac31[_0xe9ad('0x22')]('Content-Range',_0x2e3691+'-'+_0x42a934+'/'+_0x30e5ed)[_0xe9ad('0x1d')](_0x448616);}return null;};}function patchUpdates(_0x5e775f){return function(_0x3fff1e){try{jsonpatch['apply'](_0x3fff1e,_0x5e775f,!![]);}catch(_0x3c1911){return BPromise['reject'](_0x3c1911);}return _0x3fff1e[_0xe9ad('0x23')]();};}function saveUpdates(_0x37089a,_0x2c43fb){return function(_0x4f3d4e){if(_0x4f3d4e){return _0x4f3d4e['update'](_0x37089a)[_0xe9ad('0x24')](function(_0x39c9b6){return _0x39c9b6;});}return null;};}function removeEntity(_0x533f57,_0x6d555f){return function(_0x7454cb){if(_0x7454cb){return _0x7454cb[_0xe9ad('0x25')]()['then'](function(){var _0x19c705=_0x7454cb[_0xe9ad('0x26')]({'plain':!![]});var _0x1cce72=_0xe9ad('0x27');return db[_0xe9ad('0x28')]['destroy']({'where':{'type':_0x1cce72,'resourceId':_0x19c705['id']}})[_0xe9ad('0x24')](function(){return _0x7454cb;});})[_0xe9ad('0x24')](function(){_0x533f57[_0xe9ad('0x1b')](0xcc)[_0xe9ad('0x1c')]();});}};}function handleEntityNotFound(_0x20ee77,_0x27b0eb){return function(_0x58b582){if(!_0x58b582){_0x20ee77['sendStatus'](0x194);}return _0x58b582;};}function handleError(_0x276303,_0x4a9916){_0x4a9916=_0x4a9916||0x1f4;return function(_0x23cd32){logger[_0xe9ad('0x29')](_0x23cd32['stack']);if(_0x23cd32[_0xe9ad('0x2a')]){delete _0x23cd32[_0xe9ad('0x2a')];}_0x276303[_0xe9ad('0x1b')](_0x4a9916)[_0xe9ad('0x2b')](_0x23cd32);};}exports[_0xe9ad('0x2c')]=function(_0x1d9928,_0x1e2003){var _0x562cb5={},_0x193cf2={},_0x26d1c7={'count':0x0,'rows':[]};var _0x2b0a6f=_[_0xe9ad('0x2d')](db[_0xe9ad('0x2e')][_0xe9ad('0x2f')],function(_0x249c78){return{'name':_0x249c78['fieldName'],'type':_0x249c78[_0xe9ad('0x30')][_0xe9ad('0x31')]};});_0x193cf2[_0xe9ad('0x32')]=_[_0xe9ad('0x2d')](_0x2b0a6f,'name');_0x193cf2[_0xe9ad('0x33')]=_['keys'](_0x1d9928[_0xe9ad('0x33')]);_0x193cf2[_0xe9ad('0x34')]=_[_0xe9ad('0x35')](_0x193cf2[_0xe9ad('0x32')],_0x193cf2[_0xe9ad('0x33')]);_0x562cb5[_0xe9ad('0x36')]=_['intersection'](_0x193cf2[_0xe9ad('0x32')],qs[_0xe9ad('0x37')](_0x1d9928[_0xe9ad('0x33')][_0xe9ad('0x37')]));_0x562cb5[_0xe9ad('0x36')]=_0x562cb5['attributes'][_0xe9ad('0x38')]?_0x562cb5[_0xe9ad('0x36')]:_0x193cf2[_0xe9ad('0x32')];if(!_0x1d9928[_0xe9ad('0x33')]['hasOwnProperty']('nolimit')){_0x562cb5[_0xe9ad('0x20')]=qs[_0xe9ad('0x20')](_0x1d9928['query'][_0xe9ad('0x20')]);_0x562cb5[_0xe9ad('0x1e')]=qs['offset'](_0x1d9928[_0xe9ad('0x33')]['offset']);}_0x562cb5[_0xe9ad('0x39')]=qs[_0xe9ad('0x3a')](_0x1d9928[_0xe9ad('0x33')]['sort']);_0x562cb5[_0xe9ad('0x3b')]=qs['filters'](_[_0xe9ad('0x3c')](_0x1d9928[_0xe9ad('0x33')],_0x193cf2[_0xe9ad('0x34')]),_0x2b0a6f);if(_0x1d9928[_0xe9ad('0x33')][_0xe9ad('0x3d')]){_0x562cb5['where']=_[_0xe9ad('0x3e')](_0x562cb5['where'],{'$or':_[_0xe9ad('0x2d')](_0x2b0a6f,function(_0x873a5a){if(_0x873a5a['type']!==_0xe9ad('0x3f')){var _0x551d25={};_0x551d25[_0x873a5a['name']]={'$like':'%'+_0x1d9928[_0xe9ad('0x33')][_0xe9ad('0x3d')]+'%'};return _0x551d25;}})});}_0x562cb5=_[_0xe9ad('0x3e')]({},_0x562cb5,_0x1d9928['options']);var _0x1b4cae={'where':_0x562cb5['where']};return db['Disposition'][_0xe9ad('0x21')](_0x1b4cae)[_0xe9ad('0x24')](function(_0x1cfffc){_0x26d1c7[_0xe9ad('0x21')]=_0x1cfffc;if(_0x1d9928[_0xe9ad('0x33')][_0xe9ad('0x40')]){_0x562cb5['include']=[{'all':!![]}];}return db['Disposition']['findAll'](_0x562cb5);})[_0xe9ad('0x24')](function(_0x13fd26){_0x26d1c7[_0xe9ad('0x41')]=_0x13fd26;return _0x26d1c7;})[_0xe9ad('0x24')](respondWithFilteredResult(_0x1e2003,_0x562cb5))[_0xe9ad('0x42')](handleError(_0x1e2003,null));};exports[_0xe9ad('0x43')]=function(_0x4afd4c,_0x2e7885){var _0x5f4e42={'raw':!![],'where':{'id':_0x4afd4c[_0xe9ad('0x44')]['id']}},_0x18733f={};_0x18733f['model']=_[_0xe9ad('0x45')](db[_0xe9ad('0x2e')]['rawAttributes']);_0x18733f[_0xe9ad('0x33')]=_['keys'](_0x4afd4c['query']);_0x18733f[_0xe9ad('0x34')]=_[_0xe9ad('0x35')](_0x18733f['model'],_0x18733f[_0xe9ad('0x33')]);_0x5f4e42[_0xe9ad('0x36')]=_[_0xe9ad('0x35')](_0x18733f[_0xe9ad('0x32')],qs[_0xe9ad('0x37')](_0x4afd4c[_0xe9ad('0x33')][_0xe9ad('0x37')]));_0x5f4e42[_0xe9ad('0x36')]=_0x5f4e42[_0xe9ad('0x36')][_0xe9ad('0x38')]?_0x5f4e42[_0xe9ad('0x36')]:_0x18733f[_0xe9ad('0x32')];if(_0x4afd4c[_0xe9ad('0x33')][_0xe9ad('0x40')]){_0x5f4e42[_0xe9ad('0x46')]=[{'all':!![]}];}_0x5f4e42=_[_0xe9ad('0x3e')]({},_0x5f4e42,_0x4afd4c[_0xe9ad('0x47')]);return db[_0xe9ad('0x2e')][_0xe9ad('0x48')](_0x5f4e42)[_0xe9ad('0x24')](handleEntityNotFound(_0x2e7885,null))[_0xe9ad('0x24')](respondWithResult(_0x2e7885,null))[_0xe9ad('0x42')](handleError(_0x2e7885,null));};exports['create']=function(_0x436772,_0x2f123c){return db[_0xe9ad('0x2e')][_0xe9ad('0x49')](_0x436772[_0xe9ad('0x4a')],{})['then'](function(_0x595f84){var _0x315403=_0x436772[_0xe9ad('0x4b')][_0xe9ad('0x26')]({'plain':!![]});if(!_0x315403)throw new Error(_0xe9ad('0x4c'));if(_0x315403['role']==='user'){var _0x2a5c9f=_0x595f84[_0xe9ad('0x26')]({'plain':!![]});var _0x2feb01=_0xe9ad('0x27');return db[_0xe9ad('0x4d')][_0xe9ad('0x48')]({'where':{'name':_0x2feb01,'userProfileId':_0x315403[_0xe9ad('0x4e')]},'raw':!![]})['then'](function(_0x2b1812){if(_0x2b1812&&_0x2b1812[_0xe9ad('0x4f')]===0x0){return db['UserProfileResource']['create']({'name':_0x2a5c9f[_0xe9ad('0x2a')],'resourceId':_0x2a5c9f['id'],'type':_0x2b1812['name'],'sectionId':_0x2b1812['id']},{})[_0xe9ad('0x24')](function(){return _0x595f84;});}else{return _0x595f84;}})[_0xe9ad('0x42')](function(_0x202590){logger[_0xe9ad('0x29')](_0xe9ad('0x50'),_0x202590);throw _0x202590;});}return _0x595f84;})['then'](respondWithResult(_0x2f123c,0xc9))['catch'](handleError(_0x2f123c,null));};exports[_0xe9ad('0x51')]=function(_0x4669ec,_0x5f3be7){if(_0x4669ec[_0xe9ad('0x4a')]['id']){delete _0x4669ec[_0xe9ad('0x4a')]['id'];}return db[_0xe9ad('0x2e')][_0xe9ad('0x48')]({'where':{'id':_0x4669ec[_0xe9ad('0x44')]['id']}})[_0xe9ad('0x24')](handleEntityNotFound(_0x5f3be7,null))['then'](saveUpdates(_0x4669ec[_0xe9ad('0x4a')],null))[_0xe9ad('0x24')](respondWithResult(_0x5f3be7,null))[_0xe9ad('0x42')](handleError(_0x5f3be7,null));};exports[_0xe9ad('0x25')]=function(_0x279310,_0x38d9ad){return db['Disposition']['find']({'where':{'id':_0x279310[_0xe9ad('0x44')]['id']}})['then'](handleEntityNotFound(_0x38d9ad,null))[_0xe9ad('0x24')](removeEntity(_0x38d9ad,null))[_0xe9ad('0x42')](handleError(_0x38d9ad,null));};