7c3a9382c97766c5d00fd0b33cee4b229f44b810
[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 _0xb3f4=['./squareProject.socket','register','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','then','destroy','get','UserProfileResource','error','stack','name','index','map','SquareProject','fieldName','type','model','keys','query','intersection','attributes','fields','length','nolimit','limit','order','sort','where','filters','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','params','rawAttributes','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','find','addUsers','ids','removeUsers','isArray','emit','userSquareProject:remove','getUsers','findOne','hasOwnProperty','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','squel','crypto','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter'];(function(_0x58a4ac,_0x43fd42){var _0x545810=function(_0x308e65){while(--_0x308e65){_0x58a4ac['push'](_0x58a4ac['shift']());}};_0x545810(++_0x43fd42);}(_0xb3f4,0x168));var _0x4b3f=function(_0x4dd1dc,_0x1a2ab6){_0x4dd1dc=_0x4dd1dc-0x0;var _0x7d08ce=_0xb3f4[_0x4dd1dc];return _0x7d08ce;};'use strict';var pdf=require(_0x4b3f('0x0'));var emlformat=require(_0x4b3f('0x1'));var rimraf=require(_0x4b3f('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4b3f('0x3'));var rp=require(_0x4b3f('0x4'));var moment=require(_0x4b3f('0x5'));var BPromise=require(_0x4b3f('0x6'));var Mustache=require(_0x4b3f('0x7'));var util=require(_0x4b3f('0x8'));var path=require(_0x4b3f('0x9'));var sox=require(_0x4b3f('0xa'));var csv=require(_0x4b3f('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x4b3f('0xc'));var crypto=require(_0x4b3f('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x4b3f('0xe'));var toCsv=require(_0x4b3f('0xb'));var querystring=require('querystring');var Papa=require(_0x4b3f('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x4b3f('0x10'));var as=require(_0x4b3f('0x11'));var hardwareService=require(_0x4b3f('0x12'));var logger=require(_0x4b3f('0x13'))(_0x4b3f('0x14'));var utils=require(_0x4b3f('0x15'));var config=require(_0x4b3f('0x16'));var licenseUtil=require(_0x4b3f('0x17'));var db=require('../../mysqldb')['db'];config[_0x4b3f('0x18')]=_[_0x4b3f('0x19')](config[_0x4b3f('0x18')],{'host':_0x4b3f('0x1a'),'port':0x18eb});var socket=require(_0x4b3f('0x1b'))(new Redis(config[_0x4b3f('0x18')]));require(_0x4b3f('0x1c'))[_0x4b3f('0x1d')](socket);function respondWithStatusCode(_0x563c26,_0x5bc7c1){_0x5bc7c1=_0x5bc7c1||0xcc;return function(_0x452244){if(_0x452244){return _0x563c26[_0x4b3f('0x1e')](_0x5bc7c1);}return _0x563c26[_0x4b3f('0x1f')](_0x5bc7c1)[_0x4b3f('0x20')]();};}function respondWithResult(_0x221354,_0x46fd4b){_0x46fd4b=_0x46fd4b||0xc8;return function(_0x55e33e){if(_0x55e33e){return _0x221354[_0x4b3f('0x1f')](_0x46fd4b)[_0x4b3f('0x21')](_0x55e33e);}};}function respondWithFilteredResult(_0xac154e,_0x57897d){return function(_0x57c6b6){if(_0x57c6b6){var _0x58a7db=_0x57c6b6[_0x4b3f('0x22')],_0x51196c=_0x57897d['offset'],_0x1d6580=_0x57897d[_0x4b3f('0x23')]+_0x57897d['limit'],_0x1cd77d;if(_0x1d6580>=_0x58a7db){_0x1d6580=_0x58a7db;_0x1cd77d=0xc8;}else{_0x1cd77d=0xce;}_0xac154e['status'](_0x1cd77d);return _0xac154e[_0x4b3f('0x24')](_0x4b3f('0x25'),_0x51196c+'-'+_0x1d6580+'/'+_0x58a7db)['json'](_0x57c6b6);}return null;};}function patchUpdates(_0x11e2d0){return function(_0x3c5247){try{jsonpatch[_0x4b3f('0x26')](_0x3c5247,_0x11e2d0,!![]);}catch(_0x313667){return BPromise[_0x4b3f('0x27')](_0x313667);}return _0x3c5247['save']();};}function saveUpdates(_0x3773ff,_0x52eb36){return function(_0x22fc23){if(_0x22fc23){return _0x22fc23['update'](_0x3773ff)[_0x4b3f('0x28')](function(_0x201503){return _0x201503;});}return null;};}function removeEntity(_0x3bfa08,_0x5b566c){return function(_0x1934e2){if(_0x1934e2){return _0x1934e2[_0x4b3f('0x29')]()[_0x4b3f('0x28')](function(){var _0x3fa33d=_0x1934e2[_0x4b3f('0x2a')]({'plain':!![]});var _0x2327f8='SquareProjects';return db[_0x4b3f('0x2b')][_0x4b3f('0x29')]({'where':{'type':_0x2327f8,'resourceId':_0x3fa33d['id']}})[_0x4b3f('0x28')](function(){return _0x1934e2;});})[_0x4b3f('0x28')](function(){_0x3bfa08[_0x4b3f('0x1f')](0xcc)[_0x4b3f('0x20')]();});}};}function handleEntityNotFound(_0x2e5d91,_0x58509e){return function(_0x50c159){if(!_0x50c159){_0x2e5d91['sendStatus'](0x194);}return _0x50c159;};}function handleError(_0x46481f,_0x37061c){_0x37061c=_0x37061c||0x1f4;return function(_0x4a6bc0){logger[_0x4b3f('0x2c')](_0x4a6bc0[_0x4b3f('0x2d')]);if(_0x4a6bc0['name']){delete _0x4a6bc0[_0x4b3f('0x2e')];}_0x46481f[_0x4b3f('0x1f')](_0x37061c)['send'](_0x4a6bc0);};}exports[_0x4b3f('0x2f')]=function(_0x1fb04d,_0x318c58){var _0x5e5ad7={},_0x4f52e8={},_0x2bfb79={'count':0x0,'rows':[]};var _0x2be2dd=_[_0x4b3f('0x30')](db[_0x4b3f('0x31')]['rawAttributes'],function(_0x4cfe82){return{'name':_0x4cfe82[_0x4b3f('0x32')],'type':_0x4cfe82[_0x4b3f('0x33')]['key']};});_0x4f52e8[_0x4b3f('0x34')]=_[_0x4b3f('0x30')](_0x2be2dd,_0x4b3f('0x2e'));_0x4f52e8['query']=_[_0x4b3f('0x35')](_0x1fb04d[_0x4b3f('0x36')]);_0x4f52e8['filters']=_[_0x4b3f('0x37')](_0x4f52e8[_0x4b3f('0x34')],_0x4f52e8[_0x4b3f('0x36')]);_0x5e5ad7[_0x4b3f('0x38')]=_[_0x4b3f('0x37')](_0x4f52e8[_0x4b3f('0x34')],qs[_0x4b3f('0x39')](_0x1fb04d[_0x4b3f('0x36')]['fields']));_0x5e5ad7[_0x4b3f('0x38')]=_0x5e5ad7[_0x4b3f('0x38')][_0x4b3f('0x3a')]?_0x5e5ad7[_0x4b3f('0x38')]:_0x4f52e8['model'];if(!_0x1fb04d['query']['hasOwnProperty'](_0x4b3f('0x3b'))){_0x5e5ad7[_0x4b3f('0x3c')]=qs[_0x4b3f('0x3c')](_0x1fb04d['query']['limit']);_0x5e5ad7[_0x4b3f('0x23')]=qs[_0x4b3f('0x23')](_0x1fb04d[_0x4b3f('0x36')][_0x4b3f('0x23')]);}_0x5e5ad7[_0x4b3f('0x3d')]=qs['sort'](_0x1fb04d[_0x4b3f('0x36')][_0x4b3f('0x3e')]);_0x5e5ad7[_0x4b3f('0x3f')]=qs[_0x4b3f('0x40')](_[_0x4b3f('0x41')](_0x1fb04d['query'],_0x4f52e8[_0x4b3f('0x40')]),_0x2be2dd);if(_0x1fb04d[_0x4b3f('0x36')]['filter']){_0x5e5ad7['where']=_[_0x4b3f('0x42')](_0x5e5ad7[_0x4b3f('0x3f')],{'$or':_[_0x4b3f('0x30')](_0x2be2dd,function(_0x282b85){if(_0x282b85[_0x4b3f('0x33')]!==_0x4b3f('0x43')){var _0x42178e={};_0x42178e[_0x282b85[_0x4b3f('0x2e')]]={'$like':'%'+_0x1fb04d[_0x4b3f('0x36')][_0x4b3f('0x44')]+'%'};return _0x42178e;}})});}_0x5e5ad7=_[_0x4b3f('0x42')]({},_0x5e5ad7,_0x1fb04d[_0x4b3f('0x45')]);var _0x23ab4b={'where':_0x5e5ad7[_0x4b3f('0x3f')]};return db[_0x4b3f('0x31')][_0x4b3f('0x22')](_0x23ab4b)['then'](function(_0x856d4f){_0x2bfb79[_0x4b3f('0x22')]=_0x856d4f;if(_0x1fb04d[_0x4b3f('0x36')][_0x4b3f('0x46')]){_0x5e5ad7[_0x4b3f('0x47')]=[{'all':!![]}];}return db[_0x4b3f('0x31')][_0x4b3f('0x48')](_0x5e5ad7);})[_0x4b3f('0x28')](function(_0xa22b95){_0x2bfb79[_0x4b3f('0x49')]=_0xa22b95;return _0x2bfb79;})[_0x4b3f('0x28')](respondWithFilteredResult(_0x318c58,_0x5e5ad7))['catch'](handleError(_0x318c58,null));};exports['show']=function(_0x1cf9d1,_0xcb4205){var _0x794d05={'raw':![],'where':{'id':_0x1cf9d1[_0x4b3f('0x4a')]['id']}},_0x22cea5={};_0x22cea5[_0x4b3f('0x34')]=_['keys'](db[_0x4b3f('0x31')][_0x4b3f('0x4b')]);_0x22cea5['query']=_[_0x4b3f('0x35')](_0x1cf9d1[_0x4b3f('0x36')]);_0x22cea5[_0x4b3f('0x40')]=_[_0x4b3f('0x37')](_0x22cea5['model'],_0x22cea5['query']);_0x794d05[_0x4b3f('0x38')]=_['intersection'](_0x22cea5[_0x4b3f('0x34')],qs[_0x4b3f('0x39')](_0x1cf9d1[_0x4b3f('0x36')]['fields']));_0x794d05[_0x4b3f('0x38')]=_0x794d05['attributes'][_0x4b3f('0x3a')]?_0x794d05[_0x4b3f('0x38')]:_0x22cea5['model'];if(_0x1cf9d1['query'][_0x4b3f('0x46')]){_0x794d05[_0x4b3f('0x47')]=[{'all':!![]}];}_0x794d05=_[_0x4b3f('0x42')]({},_0x794d05,_0x1cf9d1[_0x4b3f('0x45')]);return db[_0x4b3f('0x31')]['find'](_0x794d05)['then'](handleEntityNotFound(_0xcb4205,null))[_0x4b3f('0x28')](respondWithResult(_0xcb4205,null))[_0x4b3f('0x4c')](handleError(_0xcb4205,null));};exports['create']=function(_0x4a6306,_0x5a671c){return db['SquareProject'][_0x4b3f('0x4d')](_0x4a6306[_0x4b3f('0x4e')],{})[_0x4b3f('0x28')](function(_0x50eff7){var _0x5bd9d8=_0x4a6306[_0x4b3f('0x4f')][_0x4b3f('0x2a')]({'plain':!![]});if(!_0x5bd9d8)throw new Error(_0x4b3f('0x50'));if(_0x5bd9d8[_0x4b3f('0x51')]===_0x4b3f('0x4f')){var _0x187ecb=_0x50eff7[_0x4b3f('0x2a')]({'plain':!![]});var _0x3fa248='SquareProjects';return db[_0x4b3f('0x52')]['find']({'where':{'name':_0x3fa248,'userProfileId':_0x5bd9d8[_0x4b3f('0x53')]},'raw':!![]})[_0x4b3f('0x28')](function(_0x36b2ce){if(_0x36b2ce&&_0x36b2ce[_0x4b3f('0x54')]===0x0){return db[_0x4b3f('0x2b')][_0x4b3f('0x4d')]({'name':_0x187ecb[_0x4b3f('0x2e')],'resourceId':_0x187ecb['id'],'type':_0x36b2ce[_0x4b3f('0x2e')],'sectionId':_0x36b2ce['id']},{})[_0x4b3f('0x28')](function(){return _0x50eff7;});}else{return _0x50eff7;}})[_0x4b3f('0x4c')](function(_0x202885){logger['error'](_0x4b3f('0x55'),_0x202885);throw _0x202885;});}return _0x50eff7;})[_0x4b3f('0x28')](respondWithResult(_0x5a671c,0xc9))[_0x4b3f('0x4c')](handleError(_0x5a671c,null));};exports[_0x4b3f('0x56')]=function(_0x480186,_0xa2836){if(_0x480186[_0x4b3f('0x4e')]['id']){delete _0x480186['body']['id'];}return db['SquareProject'][_0x4b3f('0x57')]({'where':{'id':_0x480186['params']['id']}})[_0x4b3f('0x28')](handleEntityNotFound(_0xa2836,null))['then'](saveUpdates(_0x480186[_0x4b3f('0x4e')],null))['then'](respondWithResult(_0xa2836,null))['catch'](handleError(_0xa2836,null));};exports[_0x4b3f('0x29')]=function(_0x2c2f60,_0x1f9b7a){return db[_0x4b3f('0x31')]['find']({'where':{'id':_0x2c2f60[_0x4b3f('0x4a')]['id']}})[_0x4b3f('0x28')](handleEntityNotFound(_0x1f9b7a,null))[_0x4b3f('0x28')](removeEntity(_0x1f9b7a,null))[_0x4b3f('0x4c')](handleError(_0x1f9b7a,null));};exports['addUsers']=function(_0x455733,_0x2689bf,_0x54a183){return db[_0x4b3f('0x31')]['find']({'where':{'id':_0x455733[_0x4b3f('0x4a')]['id']}})[_0x4b3f('0x28')](handleEntityNotFound(_0x2689bf,null))[_0x4b3f('0x28')](function(_0xce210f){if(_0xce210f){return _0xce210f[_0x4b3f('0x58')](_0x455733['body'][_0x4b3f('0x59')],_['omit'](_0x455733[_0x4b3f('0x4e')],['ids','id'])||{});}})[_0x4b3f('0x28')](respondWithResult(_0x2689bf,null))[_0x4b3f('0x4c')](handleError(_0x2689bf,null));};exports[_0x4b3f('0x5a')]=function(_0x66c734,_0x71ae7a,_0xf45be4){return db['SquareProject'][_0x4b3f('0x57')]({'where':{'id':_0x66c734[_0x4b3f('0x4a')]['id']}})[_0x4b3f('0x28')](handleEntityNotFound(_0x71ae7a,null))[_0x4b3f('0x28')](function(_0x2df05e){if(_0x2df05e){return _0x2df05e[_0x4b3f('0x5a')](_0x66c734[_0x4b3f('0x36')][_0x4b3f('0x59')])['then'](function(){if(_[_0x4b3f('0x5b')](_0x66c734[_0x4b3f('0x36')][_0x4b3f('0x59')])){for(var _0x1eb87b=0x0;_0x1eb87b<_0x66c734[_0x4b3f('0x36')][_0x4b3f('0x59')][_0x4b3f('0x3a')];_0x1eb87b+=0x1){socket[_0x4b3f('0x5c')](_0x4b3f('0x5d'),{'UserId':Number(_0x66c734[_0x4b3f('0x36')][_0x4b3f('0x59')][_0x1eb87b]),'SquareProjectId':Number(_0x66c734['params']['id'])});}}else{socket[_0x4b3f('0x5c')](_0x4b3f('0x5d'),{'UserId':Number(_0x66c734['query'][_0x4b3f('0x59')]),'SquareProjectId':Number(_0x66c734['params']['id'])});}});}})[_0x4b3f('0x28')](respondWithStatusCode(_0x71ae7a,null))[_0x4b3f('0x4c')](handleError(_0x71ae7a,null));};exports[_0x4b3f('0x5e')]=function(_0x47e503,_0x1fa0f3,_0x3d6b4b){var _0x2e046a={};var _0x563552={};var _0x5ee832;var _0x243e15;return db['SquareProject'][_0x4b3f('0x5f')]({'where':{'id':_0x47e503[_0x4b3f('0x4a')]['id']}})[_0x4b3f('0x28')](handleEntityNotFound(_0x1fa0f3,null))[_0x4b3f('0x28')](function(_0x197be8){if(_0x197be8){_0x5ee832=_0x197be8;_0x563552[_0x4b3f('0x34')]=_[_0x4b3f('0x35')](db['User']['rawAttributes']);_0x563552[_0x4b3f('0x36')]=_['keys'](_0x47e503[_0x4b3f('0x36')]);_0x563552['filters']=_[_0x4b3f('0x37')](_0x563552[_0x4b3f('0x34')],_0x563552[_0x4b3f('0x36')]);_0x2e046a['attributes']=_[_0x4b3f('0x37')](_0x563552[_0x4b3f('0x34')],qs[_0x4b3f('0x39')](_0x47e503[_0x4b3f('0x36')][_0x4b3f('0x39')]));_0x2e046a['attributes']=_0x2e046a['attributes'][_0x4b3f('0x3a')]?_0x2e046a['attributes']:_0x563552[_0x4b3f('0x34')];_0x2e046a[_0x4b3f('0x3d')]=qs['sort'](_0x47e503['query'][_0x4b3f('0x3e')]);_0x2e046a[_0x4b3f('0x3f')]=qs[_0x4b3f('0x40')](_['pick'](_0x47e503[_0x4b3f('0x36')],_0x563552[_0x4b3f('0x40')]));if(_0x47e503[_0x4b3f('0x36')]['filter']){_0x2e046a[_0x4b3f('0x3f')]=_[_0x4b3f('0x42')](_0x2e046a[_0x4b3f('0x3f')],{'$or':_[_0x4b3f('0x30')](_0x2e046a[_0x4b3f('0x38')],function(_0x622a9f){var _0x277af4={};_0x277af4[_0x622a9f]={'$like':'%'+_0x47e503[_0x4b3f('0x36')][_0x4b3f('0x44')]+'%'};return _0x277af4;})});}_0x2e046a=_[_0x4b3f('0x42')]({},_0x2e046a,_0x47e503['options']);return _0x5ee832[_0x4b3f('0x5e')](_0x2e046a);}})['then'](function(_0x131a12){if(_0x131a12){_0x243e15=_0x131a12[_0x4b3f('0x3a')];if(!_0x47e503[_0x4b3f('0x36')][_0x4b3f('0x60')](_0x4b3f('0x3b'))){_0x2e046a[_0x4b3f('0x3c')]=qs[_0x4b3f('0x3c')](_0x47e503[_0x4b3f('0x36')][_0x4b3f('0x3c')]);_0x2e046a[_0x4b3f('0x23')]=qs[_0x4b3f('0x23')](_0x47e503['query'][_0x4b3f('0x23')]);}return _0x5ee832[_0x4b3f('0x5e')](_0x2e046a);}})[_0x4b3f('0x28')](function(_0x19981b){if(_0x19981b){return _0x19981b?{'count':_0x243e15,'rows':_0x19981b}:null;}})[_0x4b3f('0x28')](respondWithResult(_0x1fa0f3,null))[_0x4b3f('0x4c')](handleError(_0x1fa0f3,null));};