06047d4bb83073d58a5de0e7b6fb491db80f090d
[motion2.git] / server / api / squareProject / squareProject.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 _0x458c=['redis','defaults','localhost','socket.io-emitter','./squareProject.socket','register','sendStatus','json','offset','limit','undefined','count','Content-Range','apply','save','update','then','destroy','get','SquareProjects','UserProfileResource','status','end','error','stack','name','map','SquareProject','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','VIRTUAL','filter','options','includeAll','include','rows','catch','show','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','params','addUsers','ids','isArray','emit','userSquareProject:remove','getUsers','findOne','User','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb'];(function(_0x1e8575,_0x2e0037){var _0x38aae4=function(_0x4c4c9e){while(--_0x4c4c9e){_0x1e8575['push'](_0x1e8575['shift']());}};_0x38aae4(++_0x2e0037);}(_0x458c,0xaa));var _0xc458=function(_0x2e4e19,_0x493b50){_0x2e4e19=_0x2e4e19-0x0;var _0x9ba20b=_0x458c[_0x2e4e19];return _0x9ba20b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc458('0x0'));var zipdir=require(_0xc458('0x1'));var jsonpatch=require(_0xc458('0x2'));var rp=require(_0xc458('0x3'));var moment=require('moment');var BPromise=require(_0xc458('0x4'));var Mustache=require(_0xc458('0x5'));var util=require(_0xc458('0x6'));var path=require(_0xc458('0x7'));var sox=require(_0xc458('0x8'));var csv=require(_0xc458('0x9'));var ejs=require(_0xc458('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc458('0xb'));var squel=require(_0xc458('0xc'));var crypto=require(_0xc458('0xd'));var jsforce=require(_0xc458('0xe'));var deskjs=require(_0xc458('0xf'));var toCsv=require(_0xc458('0x9'));var querystring=require(_0xc458('0x10'));var Papa=require(_0xc458('0x11'));var Redis=require(_0xc458('0x12'));var authService=require(_0xc458('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xc458('0x14'));var hardwareService=require(_0xc458('0x15'));var logger=require(_0xc458('0x16'))('api');var utils=require('../../config/utils');var config=require(_0xc458('0x17'));var licenseUtil=require(_0xc458('0x18'));var db=require(_0xc458('0x19'))['db'];config[_0xc458('0x1a')]=_[_0xc458('0x1b')](config['redis'],{'host':_0xc458('0x1c'),'port':0x18eb});var socket=require(_0xc458('0x1d'))(new Redis(config['redis']));require(_0xc458('0x1e'))[_0xc458('0x1f')](socket);function respondWithStatusCode(_0x261df3,_0x453b34){_0x453b34=_0x453b34||0xcc;return function(_0x4a02f0){if(_0x4a02f0){return _0x261df3[_0xc458('0x20')](_0x453b34);}return _0x261df3['status'](_0x453b34)['end']();};}function respondWithResult(_0x31f28c,_0x281d74){_0x281d74=_0x281d74||0xc8;return function(_0x1dff13){if(_0x1dff13){return _0x31f28c['status'](_0x281d74)[_0xc458('0x21')](_0x1dff13);}};}function respondWithFilteredResult(_0x53f7b8,_0x160c15){return function(_0x3c66dd){if(_0x3c66dd){var _0x147d82=typeof _0x160c15[_0xc458('0x22')]==='undefined'&&typeof _0x160c15[_0xc458('0x23')]===_0xc458('0x24');var _0x381adb=_0x3c66dd[_0xc458('0x25')];var _0x3ccf7a=_0x147d82?0x0:_0x160c15[_0xc458('0x22')];var _0x502bfb=_0x147d82?_0x3c66dd['count']:_0x160c15['offset']+_0x160c15[_0xc458('0x23')];var _0x5b8699;if(_0x502bfb>=_0x381adb){_0x502bfb=_0x381adb;_0x5b8699=0xc8;}else{_0x5b8699=0xce;}_0x53f7b8['status'](_0x5b8699);return _0x53f7b8['set'](_0xc458('0x26'),_0x3ccf7a+'-'+_0x502bfb+'/'+_0x381adb)[_0xc458('0x21')](_0x3c66dd);}return null;};}function patchUpdates(_0x4d75cc){return function(_0x42481f){try{jsonpatch[_0xc458('0x27')](_0x42481f,_0x4d75cc,!![]);}catch(_0x462113){return BPromise['reject'](_0x462113);}return _0x42481f[_0xc458('0x28')]();};}function saveUpdates(_0x5899f6,_0x4210f8){return function(_0x202ad5){if(_0x202ad5){return _0x202ad5[_0xc458('0x29')](_0x5899f6)[_0xc458('0x2a')](function(_0x48fc2e){return _0x48fc2e;});}return null;};}function removeEntity(_0x42d889,_0x3cc037){return function(_0x242c97){if(_0x242c97){return _0x242c97[_0xc458('0x2b')]()[_0xc458('0x2a')](function(){var _0x445a2e=_0x242c97[_0xc458('0x2c')]({'plain':!![]});var _0x286290=_0xc458('0x2d');return db[_0xc458('0x2e')][_0xc458('0x2b')]({'where':{'type':_0x286290,'resourceId':_0x445a2e['id']}})[_0xc458('0x2a')](function(){return _0x242c97;});})[_0xc458('0x2a')](function(){_0x42d889[_0xc458('0x2f')](0xcc)[_0xc458('0x30')]();});}};}function handleEntityNotFound(_0x2489f6,_0x29ef15){return function(_0x2774ca){if(!_0x2774ca){_0x2489f6[_0xc458('0x20')](0x194);}return _0x2774ca;};}function handleError(_0x46938b,_0xdd8696){_0xdd8696=_0xdd8696||0x1f4;return function(_0x4e989d){logger[_0xc458('0x31')](_0x4e989d[_0xc458('0x32')]);if(_0x4e989d[_0xc458('0x33')]){delete _0x4e989d['name'];}_0x46938b[_0xc458('0x2f')](_0xdd8696)['send'](_0x4e989d);};}exports['index']=function(_0x56f4ce,_0x245d67){var _0x3e9b88={},_0x4b3e1e={},_0x34aabb={'count':0x0,'rows':[]};var _0x211bdb=_[_0xc458('0x34')](db[_0xc458('0x35')][_0xc458('0x36')],function(_0x4c3dc1){return{'name':_0x4c3dc1[_0xc458('0x37')],'type':_0x4c3dc1[_0xc458('0x38')][_0xc458('0x39')]};});_0x4b3e1e[_0xc458('0x3a')]=_['map'](_0x211bdb,_0xc458('0x33'));_0x4b3e1e[_0xc458('0x3b')]=_[_0xc458('0x3c')](_0x56f4ce[_0xc458('0x3b')]);_0x4b3e1e[_0xc458('0x3d')]=_['intersection'](_0x4b3e1e[_0xc458('0x3a')],_0x4b3e1e[_0xc458('0x3b')]);_0x3e9b88[_0xc458('0x3e')]=_[_0xc458('0x3f')](_0x4b3e1e[_0xc458('0x3a')],qs[_0xc458('0x40')](_0x56f4ce[_0xc458('0x3b')][_0xc458('0x40')]));_0x3e9b88['attributes']=_0x3e9b88[_0xc458('0x3e')][_0xc458('0x41')]?_0x3e9b88[_0xc458('0x3e')]:_0x4b3e1e[_0xc458('0x3a')];if(!_0x56f4ce[_0xc458('0x3b')][_0xc458('0x42')](_0xc458('0x43'))){_0x3e9b88[_0xc458('0x23')]=qs[_0xc458('0x23')](_0x56f4ce[_0xc458('0x3b')][_0xc458('0x23')]);_0x3e9b88[_0xc458('0x22')]=qs[_0xc458('0x22')](_0x56f4ce[_0xc458('0x3b')][_0xc458('0x22')]);}_0x3e9b88[_0xc458('0x44')]=qs[_0xc458('0x45')](_0x56f4ce[_0xc458('0x3b')][_0xc458('0x45')]);_0x3e9b88['where']=qs[_0xc458('0x3d')](_[_0xc458('0x46')](_0x56f4ce['query'],_0x4b3e1e[_0xc458('0x3d')]),_0x211bdb);if(_0x56f4ce['query']['filter']){_0x3e9b88[_0xc458('0x47')]=_[_0xc458('0x48')](_0x3e9b88[_0xc458('0x47')],{'$or':_[_0xc458('0x34')](_0x211bdb,function(_0x9f7887){if(_0x9f7887['type']!==_0xc458('0x49')){var _0x37d35a={};_0x37d35a[_0x9f7887[_0xc458('0x33')]]={'$like':'%'+_0x56f4ce[_0xc458('0x3b')][_0xc458('0x4a')]+'%'};return _0x37d35a;}})});}_0x3e9b88=_[_0xc458('0x48')]({},_0x3e9b88,_0x56f4ce[_0xc458('0x4b')]);var _0x2b06c5={'where':_0x3e9b88['where']};return db[_0xc458('0x35')]['count'](_0x2b06c5)[_0xc458('0x2a')](function(_0x4389c9){_0x34aabb['count']=_0x4389c9;if(_0x56f4ce[_0xc458('0x3b')][_0xc458('0x4c')]){_0x3e9b88[_0xc458('0x4d')]=[{'all':!![]}];}return db[_0xc458('0x35')]['findAll'](_0x3e9b88);})['then'](function(_0x3b0a54){_0x34aabb[_0xc458('0x4e')]=_0x3b0a54;return _0x34aabb;})[_0xc458('0x2a')](respondWithFilteredResult(_0x245d67,_0x3e9b88))[_0xc458('0x4f')](handleError(_0x245d67,null));};exports[_0xc458('0x50')]=function(_0x1eafb6,_0x2e3ded){var _0x3fda43={'raw':![],'where':{'id':_0x1eafb6['params']['id']}},_0x24438d={};_0x24438d['model']=_[_0xc458('0x3c')](db['SquareProject'][_0xc458('0x36')]);_0x24438d[_0xc458('0x3b')]=_[_0xc458('0x3c')](_0x1eafb6[_0xc458('0x3b')]);_0x24438d['filters']=_[_0xc458('0x3f')](_0x24438d[_0xc458('0x3a')],_0x24438d['query']);_0x3fda43['attributes']=_[_0xc458('0x3f')](_0x24438d[_0xc458('0x3a')],qs[_0xc458('0x40')](_0x1eafb6[_0xc458('0x3b')][_0xc458('0x40')]));_0x3fda43['attributes']=_0x3fda43[_0xc458('0x3e')][_0xc458('0x41')]?_0x3fda43[_0xc458('0x3e')]:_0x24438d[_0xc458('0x3a')];if(_0x1eafb6['query']['includeAll']){_0x3fda43[_0xc458('0x4d')]=[{'all':!![]}];}_0x3fda43=_['merge']({},_0x3fda43,_0x1eafb6[_0xc458('0x4b')]);return db[_0xc458('0x35')][_0xc458('0x51')](_0x3fda43)['then'](handleEntityNotFound(_0x2e3ded,null))[_0xc458('0x2a')](respondWithResult(_0x2e3ded,null))[_0xc458('0x4f')](handleError(_0x2e3ded,null));};exports[_0xc458('0x52')]=function(_0x58ecb6,_0x295370){return db['SquareProject'][_0xc458('0x52')](_0x58ecb6[_0xc458('0x53')],{})['then'](function(_0x18abf8){var _0xb82715=_0x58ecb6[_0xc458('0x54')][_0xc458('0x2c')]({'plain':!![]});if(!_0xb82715)throw new Error(_0xc458('0x55'));if(_0xb82715['role']===_0xc458('0x54')){var _0x44300e=_0x18abf8[_0xc458('0x2c')]({'plain':!![]});var _0x27f9bf=_0xc458('0x2d');return db[_0xc458('0x56')][_0xc458('0x51')]({'where':{'name':_0x27f9bf,'userProfileId':_0xb82715[_0xc458('0x57')]},'raw':!![]})[_0xc458('0x2a')](function(_0x1caee3){if(_0x1caee3&&_0x1caee3[_0xc458('0x58')]===0x0){return db[_0xc458('0x2e')][_0xc458('0x52')]({'name':_0x44300e[_0xc458('0x33')],'resourceId':_0x44300e['id'],'type':_0x1caee3[_0xc458('0x33')],'sectionId':_0x1caee3['id']},{})[_0xc458('0x2a')](function(){return _0x18abf8;});}else{return _0x18abf8;}})['catch'](function(_0x32a712){logger[_0xc458('0x31')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x32a712);throw _0x32a712;});}return _0x18abf8;})[_0xc458('0x2a')](respondWithResult(_0x295370,0xc9))[_0xc458('0x4f')](handleError(_0x295370,null));};exports[_0xc458('0x29')]=function(_0x833071,_0x35a8ae){if(_0x833071[_0xc458('0x53')]['id']){delete _0x833071[_0xc458('0x53')]['id'];}return db[_0xc458('0x35')][_0xc458('0x51')]({'where':{'id':_0x833071[_0xc458('0x59')]['id']}})[_0xc458('0x2a')](handleEntityNotFound(_0x35a8ae,null))[_0xc458('0x2a')](saveUpdates(_0x833071[_0xc458('0x53')],null))[_0xc458('0x2a')](respondWithResult(_0x35a8ae,null))[_0xc458('0x4f')](handleError(_0x35a8ae,null));};exports['destroy']=function(_0xb6c47a,_0x1e9c56){return db[_0xc458('0x35')][_0xc458('0x51')]({'where':{'id':_0xb6c47a['params']['id']}})[_0xc458('0x2a')](handleEntityNotFound(_0x1e9c56,null))[_0xc458('0x2a')](removeEntity(_0x1e9c56,null))[_0xc458('0x4f')](handleError(_0x1e9c56,null));};exports[_0xc458('0x5a')]=function(_0x16c21a,_0x1d93be,_0x450326){return db[_0xc458('0x35')]['find']({'where':{'id':_0x16c21a['params']['id']}})['then'](handleEntityNotFound(_0x1d93be,null))[_0xc458('0x2a')](function(_0x2d1adf){if(_0x2d1adf){return _0x2d1adf[_0xc458('0x5a')](_0x16c21a[_0xc458('0x53')][_0xc458('0x5b')],_['omit'](_0x16c21a[_0xc458('0x53')],[_0xc458('0x5b'),'id'])||{});}})[_0xc458('0x2a')](respondWithResult(_0x1d93be,null))[_0xc458('0x4f')](handleError(_0x1d93be,null));};exports['removeUsers']=function(_0x3c9ce6,_0x9fd6ae,_0xc07a8d){return db[_0xc458('0x35')][_0xc458('0x51')]({'where':{'id':_0x3c9ce6['params']['id']}})['then'](handleEntityNotFound(_0x9fd6ae,null))[_0xc458('0x2a')](function(_0x2e8a34){if(_0x2e8a34){return _0x2e8a34['removeUsers'](_0x3c9ce6[_0xc458('0x3b')][_0xc458('0x5b')])[_0xc458('0x2a')](function(){if(_[_0xc458('0x5c')](_0x3c9ce6[_0xc458('0x3b')][_0xc458('0x5b')])){for(var _0x161376=0x0;_0x161376<_0x3c9ce6[_0xc458('0x3b')][_0xc458('0x5b')][_0xc458('0x41')];_0x161376+=0x1){socket[_0xc458('0x5d')](_0xc458('0x5e'),{'UserId':Number(_0x3c9ce6['query']['ids'][_0x161376]),'SquareProjectId':Number(_0x3c9ce6[_0xc458('0x59')]['id'])});}}else{socket[_0xc458('0x5d')](_0xc458('0x5e'),{'UserId':Number(_0x3c9ce6[_0xc458('0x3b')][_0xc458('0x5b')]),'SquareProjectId':Number(_0x3c9ce6[_0xc458('0x59')]['id'])});}});}})[_0xc458('0x2a')](respondWithStatusCode(_0x9fd6ae,null))[_0xc458('0x4f')](handleError(_0x9fd6ae,null));};exports[_0xc458('0x5f')]=function(_0x1e02f2,_0x13d9de,_0x4dfdd5){var _0x354d72={};var _0x32c526={};var _0x79c27b;var _0x17cb13;return db[_0xc458('0x35')][_0xc458('0x60')]({'where':{'id':_0x1e02f2['params']['id']}})[_0xc458('0x2a')](handleEntityNotFound(_0x13d9de,null))[_0xc458('0x2a')](function(_0x4def60){if(_0x4def60){_0x79c27b=_0x4def60;_0x32c526[_0xc458('0x3a')]=_[_0xc458('0x3c')](db[_0xc458('0x61')]['rawAttributes']);_0x32c526[_0xc458('0x3b')]=_[_0xc458('0x3c')](_0x1e02f2['query']);_0x32c526[_0xc458('0x3d')]=_['intersection'](_0x32c526['model'],_0x32c526['query']);_0x354d72[_0xc458('0x3e')]=_[_0xc458('0x3f')](_0x32c526[_0xc458('0x3a')],qs[_0xc458('0x40')](_0x1e02f2['query'][_0xc458('0x40')]));_0x354d72[_0xc458('0x3e')]=_0x354d72['attributes'][_0xc458('0x41')]?_0x354d72[_0xc458('0x3e')]:_0x32c526['model'];_0x354d72[_0xc458('0x44')]=qs[_0xc458('0x45')](_0x1e02f2['query'][_0xc458('0x45')]);_0x354d72['where']=qs[_0xc458('0x3d')](_[_0xc458('0x46')](_0x1e02f2[_0xc458('0x3b')],_0x32c526[_0xc458('0x3d')]));if(_0x1e02f2[_0xc458('0x3b')][_0xc458('0x4a')]){_0x354d72[_0xc458('0x47')]=_[_0xc458('0x48')](_0x354d72[_0xc458('0x47')],{'$or':_[_0xc458('0x34')](_0x354d72[_0xc458('0x3e')],function(_0x590ebf){var _0x12da1c={};_0x12da1c[_0x590ebf]={'$like':'%'+_0x1e02f2[_0xc458('0x3b')][_0xc458('0x4a')]+'%'};return _0x12da1c;})});}_0x354d72=_[_0xc458('0x48')]({},_0x354d72,_0x1e02f2[_0xc458('0x4b')]);return _0x79c27b[_0xc458('0x5f')](_0x354d72);}})['then'](function(_0x1c5448){if(_0x1c5448){_0x17cb13=_0x1c5448[_0xc458('0x41')];if(!_0x1e02f2['query']['hasOwnProperty'](_0xc458('0x43'))){_0x354d72['limit']=qs['limit'](_0x1e02f2[_0xc458('0x3b')][_0xc458('0x23')]);_0x354d72[_0xc458('0x22')]=qs['offset'](_0x1e02f2[_0xc458('0x3b')][_0xc458('0x22')]);}return _0x79c27b[_0xc458('0x5f')](_0x354d72);}})[_0xc458('0x2a')](function(_0x2164f0){if(_0x2164f0){return _0x2164f0?{'count':_0x17cb13,'rows':_0x2164f0}:null;}})[_0xc458('0x2a')](respondWithResult(_0x13d9de,null))[_0xc458('0x4f')](handleError(_0x13d9de,null));};