7cd0e8f0c294af775025e7f88ea150669fa49945
[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 _0x924a=['Disposition','rawAttributes','fieldName','type','key','name','keys','query','filters','intersection','model','fields','attributes','length','nolimit','limit','sort','pick','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','html-pdf','eml-format','fast-json-patch','util','path','sox','to-csv','ejs','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','save','update','destroy','then','get','Dispositions','UserProfileResource','stack','send','index','map'];(function(_0x52feb7,_0x52048d){var _0x1923f5=function(_0x2b1bbf){while(--_0x2b1bbf){_0x52feb7['push'](_0x52feb7['shift']());}};_0x1923f5(++_0x52048d);}(_0x924a,0x117));var _0xa924=function(_0x1f8396,_0x8f5e3d){_0x1f8396=_0x1f8396-0x0;var _0x2501e7=_0x924a[_0x1f8396];return _0x2501e7;};'use strict';var pdf=require(_0xa924('0x0'));var emlformat=require(_0xa924('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xa924('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xa924('0x3'));var path=require(_0xa924('0x4'));var sox=require(_0xa924('0x5'));var csv=require(_0xa924('0x6'));var ejs=require(_0xa924('0x7'));var fs=require('fs');var _=require('lodash');var squel=require(_0xa924('0x8'));var crypto=require(_0xa924('0x9'));var jsforce=require('jsforce');var deskjs=require(_0xa924('0xa'));var toCsv=require(_0xa924('0x6'));var querystring=require(_0xa924('0xb'));var Papa=require('papaparse');var Redis=require(_0xa924('0xc'));var authService=require(_0xa924('0xd'));var qs=require(_0xa924('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa924('0xf'));var logger=require(_0xa924('0x10'))(_0xa924('0x11'));var utils=require('../../config/utils');var config=require(_0xa924('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0xa924('0x13'))['db'];function respondWithStatusCode(_0x2917f0,_0x1b2908){_0x1b2908=_0x1b2908||0xcc;return function(_0x1a11eb){if(_0x1a11eb){return _0x2917f0[_0xa924('0x14')](_0x1b2908);}return _0x2917f0[_0xa924('0x15')](_0x1b2908)[_0xa924('0x16')]();};}function respondWithResult(_0x10ca1a,_0xa2f8f8){_0xa2f8f8=_0xa2f8f8||0xc8;return function(_0x3c7927){if(_0x3c7927){return _0x10ca1a[_0xa924('0x15')](_0xa2f8f8)[_0xa924('0x17')](_0x3c7927);}};}function respondWithFilteredResult(_0x55bd2a,_0x43c360){return function(_0x1768a4){if(_0x1768a4){var _0x2f68a=_0x1768a4[_0xa924('0x18')],_0x4164cd=_0x43c360[_0xa924('0x19')],_0x4327ea=_0x43c360['offset']+_0x43c360['limit'],_0x5a8bb4;if(_0x4327ea>=_0x2f68a){_0x4327ea=_0x2f68a;_0x5a8bb4=0xc8;}else{_0x5a8bb4=0xce;}_0x55bd2a[_0xa924('0x15')](_0x5a8bb4);return _0x55bd2a[_0xa924('0x1a')](_0xa924('0x1b'),_0x4164cd+'-'+_0x4327ea+'/'+_0x2f68a)[_0xa924('0x17')](_0x1768a4);}return null;};}function patchUpdates(_0x52fcbd){return function(_0x9ef8da){try{jsonpatch[_0xa924('0x1c')](_0x9ef8da,_0x52fcbd,!![]);}catch(_0x10186f){return BPromise[_0xa924('0x1d')](_0x10186f);}return _0x9ef8da[_0xa924('0x1e')]();};}function saveUpdates(_0x29bbaa,_0x473b57){return function(_0x4c7681){if(_0x4c7681){return _0x4c7681[_0xa924('0x1f')](_0x29bbaa)['then'](function(_0x182171){return _0x182171;});}return null;};}function removeEntity(_0x13b22a,_0x5ec03f){return function(_0x87f45c){if(_0x87f45c){return _0x87f45c[_0xa924('0x20')]()[_0xa924('0x21')](function(){var _0x3fcb40=_0x87f45c[_0xa924('0x22')]({'plain':!![]});var _0x765fcd=_0xa924('0x23');return db[_0xa924('0x24')][_0xa924('0x20')]({'where':{'type':_0x765fcd,'resourceId':_0x3fcb40['id']}})[_0xa924('0x21')](function(){return _0x87f45c;});})['then'](function(){_0x13b22a[_0xa924('0x15')](0xcc)[_0xa924('0x16')]();});}};}function handleEntityNotFound(_0x258919,_0x2da9bc){return function(_0x41ecda){if(!_0x41ecda){_0x258919[_0xa924('0x14')](0x194);}return _0x41ecda;};}function handleError(_0x50e1a0,_0x27bf2b){_0x27bf2b=_0x27bf2b||0x1f4;return function(_0x30b572){logger['error'](_0x30b572[_0xa924('0x25')]);if(_0x30b572['name']){delete _0x30b572['name'];}_0x50e1a0[_0xa924('0x15')](_0x27bf2b)[_0xa924('0x26')](_0x30b572);};}exports[_0xa924('0x27')]=function(_0x2a4a91,_0x2daa2a){var _0x4a89f5={},_0x54b38a={},_0x582d17={'count':0x0,'rows':[]};var _0x1bca1d=_[_0xa924('0x28')](db[_0xa924('0x29')][_0xa924('0x2a')],function(_0x32debe){return{'name':_0x32debe[_0xa924('0x2b')],'type':_0x32debe[_0xa924('0x2c')][_0xa924('0x2d')]};});_0x54b38a['model']=_[_0xa924('0x28')](_0x1bca1d,_0xa924('0x2e'));_0x54b38a['query']=_[_0xa924('0x2f')](_0x2a4a91[_0xa924('0x30')]);_0x54b38a[_0xa924('0x31')]=_[_0xa924('0x32')](_0x54b38a['model'],_0x54b38a[_0xa924('0x30')]);_0x4a89f5['attributes']=_['intersection'](_0x54b38a[_0xa924('0x33')],qs[_0xa924('0x34')](_0x2a4a91[_0xa924('0x30')]['fields']));_0x4a89f5[_0xa924('0x35')]=_0x4a89f5['attributes'][_0xa924('0x36')]?_0x4a89f5[_0xa924('0x35')]:_0x54b38a[_0xa924('0x33')];if(!_0x2a4a91['query']['hasOwnProperty'](_0xa924('0x37'))){_0x4a89f5[_0xa924('0x38')]=qs[_0xa924('0x38')](_0x2a4a91[_0xa924('0x30')][_0xa924('0x38')]);_0x4a89f5[_0xa924('0x19')]=qs[_0xa924('0x19')](_0x2a4a91[_0xa924('0x30')]['offset']);}_0x4a89f5['order']=qs['sort'](_0x2a4a91[_0xa924('0x30')][_0xa924('0x39')]);_0x4a89f5['where']=qs[_0xa924('0x31')](_[_0xa924('0x3a')](_0x2a4a91[_0xa924('0x30')],_0x54b38a[_0xa924('0x31')]),_0x1bca1d);if(_0x2a4a91[_0xa924('0x30')]['filter']){_0x4a89f5[_0xa924('0x3b')]=_[_0xa924('0x3c')](_0x4a89f5[_0xa924('0x3b')],{'$or':_[_0xa924('0x28')](_0x1bca1d,function(_0x1576d2){if(_0x1576d2[_0xa924('0x2c')]!==_0xa924('0x3d')){var _0x58e9e0={};_0x58e9e0[_0x1576d2[_0xa924('0x2e')]]={'$like':'%'+_0x2a4a91['query'][_0xa924('0x3e')]+'%'};return _0x58e9e0;}})});}_0x4a89f5=_[_0xa924('0x3c')]({},_0x4a89f5,_0x2a4a91[_0xa924('0x3f')]);var _0x3e1075={'where':_0x4a89f5[_0xa924('0x3b')]};return db['Disposition']['count'](_0x3e1075)[_0xa924('0x21')](function(_0x27e8ab){_0x582d17[_0xa924('0x18')]=_0x27e8ab;if(_0x2a4a91[_0xa924('0x30')][_0xa924('0x40')]){_0x4a89f5[_0xa924('0x41')]=[{'all':!![]}];}return db[_0xa924('0x29')][_0xa924('0x42')](_0x4a89f5);})['then'](function(_0x5654c2){_0x582d17[_0xa924('0x43')]=_0x5654c2;return _0x582d17;})[_0xa924('0x21')](respondWithFilteredResult(_0x2daa2a,_0x4a89f5))[_0xa924('0x44')](handleError(_0x2daa2a,null));};exports[_0xa924('0x45')]=function(_0x22922d,_0x5d2281){var _0x5afc4d={'raw':!![],'where':{'id':_0x22922d[_0xa924('0x46')]['id']}},_0x5d74ef={};_0x5d74ef[_0xa924('0x33')]=_[_0xa924('0x2f')](db[_0xa924('0x29')][_0xa924('0x2a')]);_0x5d74ef[_0xa924('0x30')]=_['keys'](_0x22922d[_0xa924('0x30')]);_0x5d74ef[_0xa924('0x31')]=_['intersection'](_0x5d74ef[_0xa924('0x33')],_0x5d74ef[_0xa924('0x30')]);_0x5afc4d[_0xa924('0x35')]=_[_0xa924('0x32')](_0x5d74ef[_0xa924('0x33')],qs[_0xa924('0x34')](_0x22922d[_0xa924('0x30')][_0xa924('0x34')]));_0x5afc4d[_0xa924('0x35')]=_0x5afc4d[_0xa924('0x35')]['length']?_0x5afc4d['attributes']:_0x5d74ef[_0xa924('0x33')];if(_0x22922d['query'][_0xa924('0x40')]){_0x5afc4d[_0xa924('0x41')]=[{'all':!![]}];}_0x5afc4d=_[_0xa924('0x3c')]({},_0x5afc4d,_0x22922d['options']);return db[_0xa924('0x29')][_0xa924('0x47')](_0x5afc4d)[_0xa924('0x21')](handleEntityNotFound(_0x5d2281,null))[_0xa924('0x21')](respondWithResult(_0x5d2281,null))[_0xa924('0x44')](handleError(_0x5d2281,null));};exports[_0xa924('0x48')]=function(_0x2039b2,_0x12c4ff){return db[_0xa924('0x29')]['create'](_0x2039b2[_0xa924('0x49')],{})[_0xa924('0x21')](function(_0x192e54){var _0x5e1ad9=_0x2039b2[_0xa924('0x4a')][_0xa924('0x22')]({'plain':!![]});if(!_0x5e1ad9)throw new Error(_0xa924('0x4b'));if(_0x5e1ad9[_0xa924('0x4c')]===_0xa924('0x4a')){var _0x4bda23=_0x192e54[_0xa924('0x22')]({'plain':!![]});var _0x539761=_0xa924('0x23');return db[_0xa924('0x4d')][_0xa924('0x47')]({'where':{'name':_0x539761,'userProfileId':_0x5e1ad9['userProfileId']},'raw':!![]})[_0xa924('0x21')](function(_0x48e946){if(_0x48e946&&_0x48e946['autoAssociation']===0x0){return db[_0xa924('0x24')]['create']({'name':_0x4bda23['name'],'resourceId':_0x4bda23['id'],'type':_0x48e946[_0xa924('0x2e')],'sectionId':_0x48e946['id']},{})[_0xa924('0x21')](function(){return _0x192e54;});}else{return _0x192e54;}})[_0xa924('0x44')](function(_0x5dfee4){logger[_0xa924('0x4e')](_0xa924('0x4f'),_0x5dfee4);throw _0x5dfee4;});}return _0x192e54;})[_0xa924('0x21')](respondWithResult(_0x12c4ff,0xc9))[_0xa924('0x44')](handleError(_0x12c4ff,null));};exports['update']=function(_0x3d414e,_0x37f1b9){if(_0x3d414e[_0xa924('0x49')]['id']){delete _0x3d414e['body']['id'];}return db[_0xa924('0x29')][_0xa924('0x47')]({'where':{'id':_0x3d414e[_0xa924('0x46')]['id']}})[_0xa924('0x21')](handleEntityNotFound(_0x37f1b9,null))[_0xa924('0x21')](saveUpdates(_0x3d414e[_0xa924('0x49')],null))[_0xa924('0x21')](respondWithResult(_0x37f1b9,null))[_0xa924('0x44')](handleError(_0x37f1b9,null));};exports[_0xa924('0x20')]=function(_0x250af7,_0x3ebd89){return db[_0xa924('0x29')][_0xa924('0x47')]({'where':{'id':_0x250af7[_0xa924('0x46')]['id']}})[_0xa924('0x21')](handleEntityNotFound(_0x3ebd89,null))[_0xa924('0x21')](removeEntity(_0x3ebd89,null))[_0xa924('0x44')](handleError(_0x3ebd89,null));};