c44e7b319a5a7c4a652ede7f8de524fe5fdf280c
[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 _0x36c7=['role','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addUsers','find','ids','removeUsers','userSquareProject:remove','emit','findOne','User','getUsers','eml-format','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./squareProject.socket','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','reject','update','then','destroy','get','SquareProjects','stack','name','send','index','map','SquareProject','rawAttributes','fieldName','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','findAll','catch','show','params','include','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user'];(function(_0x88cd7b,_0x4c884c){var _0x56fcc8=function(_0x513b3d){while(--_0x513b3d){_0x88cd7b['push'](_0x88cd7b['shift']());}};_0x56fcc8(++_0x4c884c);}(_0x36c7,0x186));var _0x736c=function(_0x2e4fd9,_0x25ea75){_0x2e4fd9=_0x2e4fd9-0x0;var _0x1618bb=_0x36c7[_0x2e4fd9];return _0x1618bb;};'use strict';var emlformat=require(_0x736c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x736c('0x1'));var jsonpatch=require(_0x736c('0x2'));var rp=require('request-promise');var moment=require(_0x736c('0x3'));var BPromise=require(_0x736c('0x4'));var Mustache=require('mustache');var util=require(_0x736c('0x5'));var path=require(_0x736c('0x6'));var sox=require(_0x736c('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x736c('0x8'));var _=require(_0x736c('0x9'));var squel=require(_0x736c('0xa'));var crypto=require(_0x736c('0xb'));var jsforce=require(_0x736c('0xc'));var deskjs=require(_0x736c('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x736c('0xe'));var Redis=require(_0x736c('0xf'));var authService=require(_0x736c('0x10'));var qs=require(_0x736c('0x11'));var as=require(_0x736c('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x736c('0x13'))(_0x736c('0x14'));var utils=require(_0x736c('0x15'));var config=require(_0x736c('0x16'));var licenseUtil=require(_0x736c('0x17'));var db=require(_0x736c('0x18'))['db'];config[_0x736c('0x19')]=_['defaults'](config[_0x736c('0x19')],{'host':_0x736c('0x1a'),'port':0x18eb});var socket=require(_0x736c('0x1b'))(new Redis(config[_0x736c('0x19')]));require(_0x736c('0x1c'))[_0x736c('0x1d')](socket);function respondWithStatusCode(_0x490746,_0x7ba6d1){_0x7ba6d1=_0x7ba6d1||0xcc;return function(_0x78903c){if(_0x78903c){return _0x490746[_0x736c('0x1e')](_0x7ba6d1);}return _0x490746[_0x736c('0x1f')](_0x7ba6d1)[_0x736c('0x20')]();};}function respondWithResult(_0x2943ab,_0x2691a9){_0x2691a9=_0x2691a9||0xc8;return function(_0x52f6c7){if(_0x52f6c7){return _0x2943ab[_0x736c('0x1f')](_0x2691a9)[_0x736c('0x21')](_0x52f6c7);}};}function respondWithFilteredResult(_0x4ff27f,_0x27f9fd){return function(_0x13c1e1){if(_0x13c1e1){var _0x12c8f9=_0x13c1e1[_0x736c('0x22')],_0x247a44=_0x27f9fd[_0x736c('0x23')],_0x311d91=_0x27f9fd['offset']+_0x27f9fd[_0x736c('0x24')],_0x67cb87;if(_0x311d91>=_0x12c8f9){_0x311d91=_0x12c8f9;_0x67cb87=0xc8;}else{_0x67cb87=0xce;}_0x4ff27f['status'](_0x67cb87);return _0x4ff27f[_0x736c('0x25')](_0x736c('0x26'),_0x247a44+'-'+_0x311d91+'/'+_0x12c8f9)[_0x736c('0x21')](_0x13c1e1);}return null;};}function patchUpdates(_0x443e98){return function(_0x35364a){try{jsonpatch['apply'](_0x35364a,_0x443e98,!![]);}catch(_0x5cdab4){return BPromise[_0x736c('0x27')](_0x5cdab4);}return _0x35364a['save']();};}function saveUpdates(_0x2f4ef5,_0xc73eb5){return function(_0x1c5d1b){if(_0x1c5d1b){return _0x1c5d1b[_0x736c('0x28')](_0x2f4ef5)[_0x736c('0x29')](function(_0x22d21f){return _0x22d21f;});}return null;};}function removeEntity(_0x4ad085,_0x1ad484){return function(_0x5aa088){if(_0x5aa088){return _0x5aa088[_0x736c('0x2a')]()[_0x736c('0x29')](function(){var _0x13a6f2=_0x5aa088[_0x736c('0x2b')]({'plain':!![]});var _0x1c852a=_0x736c('0x2c');return db['UserProfileResource'][_0x736c('0x2a')]({'where':{'type':_0x1c852a,'resourceId':_0x13a6f2['id']}})[_0x736c('0x29')](function(){return _0x5aa088;});})[_0x736c('0x29')](function(){_0x4ad085[_0x736c('0x1f')](0xcc)[_0x736c('0x20')]();});}};}function handleEntityNotFound(_0x4074f4,_0x2cf5ad){return function(_0x3dd7bf){if(!_0x3dd7bf){_0x4074f4['sendStatus'](0x194);}return _0x3dd7bf;};}function handleError(_0x5cc472,_0x3428a7){_0x3428a7=_0x3428a7||0x1f4;return function(_0x5e2ad4){logger['error'](_0x5e2ad4[_0x736c('0x2d')]);if(_0x5e2ad4[_0x736c('0x2e')]){delete _0x5e2ad4[_0x736c('0x2e')];}_0x5cc472[_0x736c('0x1f')](_0x3428a7)[_0x736c('0x2f')](_0x5e2ad4);};}exports[_0x736c('0x30')]=function(_0x1e4a99,_0x353ff5){var _0x1975e4={},_0x41fc38={},_0x4e0d94={'count':0x0,'rows':[]};var _0xef61fb=_[_0x736c('0x31')](db[_0x736c('0x32')][_0x736c('0x33')],function(_0x264607){return{'name':_0x264607[_0x736c('0x34')],'type':_0x264607['type']['key']};});_0x41fc38[_0x736c('0x35')]=_[_0x736c('0x31')](_0xef61fb,_0x736c('0x2e'));_0x41fc38[_0x736c('0x36')]=_[_0x736c('0x37')](_0x1e4a99[_0x736c('0x36')]);_0x41fc38['filters']=_[_0x736c('0x38')](_0x41fc38[_0x736c('0x35')],_0x41fc38[_0x736c('0x36')]);_0x1975e4[_0x736c('0x39')]=_[_0x736c('0x38')](_0x41fc38[_0x736c('0x35')],qs[_0x736c('0x3a')](_0x1e4a99[_0x736c('0x36')][_0x736c('0x3a')]));_0x1975e4[_0x736c('0x39')]=_0x1975e4[_0x736c('0x39')][_0x736c('0x3b')]?_0x1975e4[_0x736c('0x39')]:_0x41fc38['model'];if(!_0x1e4a99[_0x736c('0x36')][_0x736c('0x3c')](_0x736c('0x3d'))){_0x1975e4[_0x736c('0x24')]=qs[_0x736c('0x24')](_0x1e4a99[_0x736c('0x36')][_0x736c('0x24')]);_0x1975e4[_0x736c('0x23')]=qs[_0x736c('0x23')](_0x1e4a99[_0x736c('0x36')][_0x736c('0x23')]);}_0x1975e4['order']=qs[_0x736c('0x3e')](_0x1e4a99[_0x736c('0x36')][_0x736c('0x3e')]);_0x1975e4[_0x736c('0x3f')]=qs[_0x736c('0x40')](_[_0x736c('0x41')](_0x1e4a99[_0x736c('0x36')],_0x41fc38[_0x736c('0x40')]),_0xef61fb);if(_0x1e4a99[_0x736c('0x36')][_0x736c('0x42')]){_0x1975e4['where']=_[_0x736c('0x43')](_0x1975e4[_0x736c('0x3f')],{'$or':_[_0x736c('0x31')](_0xef61fb,function(_0x4e5bc2){if(_0x4e5bc2['type']!==_0x736c('0x44')){var _0x44aef5={};_0x44aef5[_0x4e5bc2[_0x736c('0x2e')]]={'$like':'%'+_0x1e4a99[_0x736c('0x36')][_0x736c('0x42')]+'%'};return _0x44aef5;}})});}_0x1975e4=_[_0x736c('0x43')]({},_0x1975e4,_0x1e4a99[_0x736c('0x45')]);var _0x3cabd2={'where':_0x1975e4['where']};return db[_0x736c('0x32')][_0x736c('0x22')](_0x3cabd2)[_0x736c('0x29')](function(_0x328a1f){_0x4e0d94[_0x736c('0x22')]=_0x328a1f;if(_0x1e4a99[_0x736c('0x36')][_0x736c('0x46')]){_0x1975e4['include']=[{'all':!![]}];}return db[_0x736c('0x32')][_0x736c('0x47')](_0x1975e4);})['then'](function(_0x2c1a37){_0x4e0d94['rows']=_0x2c1a37;return _0x4e0d94;})['then'](respondWithFilteredResult(_0x353ff5,_0x1975e4))[_0x736c('0x48')](handleError(_0x353ff5,null));};exports[_0x736c('0x49')]=function(_0x31ee18,_0x4ee7da){var _0x4da76b={'raw':![],'where':{'id':_0x31ee18[_0x736c('0x4a')]['id']}},_0x30ed6d={};_0x30ed6d[_0x736c('0x35')]=_[_0x736c('0x37')](db[_0x736c('0x32')][_0x736c('0x33')]);_0x30ed6d['query']=_['keys'](_0x31ee18[_0x736c('0x36')]);_0x30ed6d[_0x736c('0x40')]=_[_0x736c('0x38')](_0x30ed6d[_0x736c('0x35')],_0x30ed6d['query']);_0x4da76b[_0x736c('0x39')]=_[_0x736c('0x38')](_0x30ed6d[_0x736c('0x35')],qs[_0x736c('0x3a')](_0x31ee18[_0x736c('0x36')][_0x736c('0x3a')]));_0x4da76b[_0x736c('0x39')]=_0x4da76b[_0x736c('0x39')]['length']?_0x4da76b[_0x736c('0x39')]:_0x30ed6d[_0x736c('0x35')];if(_0x31ee18[_0x736c('0x36')]['includeAll']){_0x4da76b[_0x736c('0x4b')]=[{'all':!![]}];}_0x4da76b=_[_0x736c('0x43')]({},_0x4da76b,_0x31ee18[_0x736c('0x45')]);return db[_0x736c('0x32')]['find'](_0x4da76b)[_0x736c('0x29')](handleEntityNotFound(_0x4ee7da,null))[_0x736c('0x29')](respondWithResult(_0x4ee7da,null))[_0x736c('0x48')](handleError(_0x4ee7da,null));};exports[_0x736c('0x4c')]=function(_0x3d04b5,_0x279a52){return db[_0x736c('0x32')][_0x736c('0x4c')](_0x3d04b5[_0x736c('0x4d')],{})['then'](function(_0x2e1c06){var _0x4e9fa3=_0x3d04b5[_0x736c('0x4e')]['get']({'plain':!![]});if(!_0x4e9fa3)throw new Error(_0x736c('0x4f'));if(_0x4e9fa3[_0x736c('0x50')]===_0x736c('0x4e')){var _0x25baa4=_0x2e1c06[_0x736c('0x2b')]({'plain':!![]});var _0x19896c=_0x736c('0x2c');return db[_0x736c('0x51')]['find']({'where':{'name':_0x19896c,'userProfileId':_0x4e9fa3[_0x736c('0x52')]},'raw':!![]})['then'](function(_0xad0014){if(_0xad0014&&_0xad0014['autoAssociation']===0x0){return db['UserProfileResource'][_0x736c('0x4c')]({'name':_0x25baa4[_0x736c('0x2e')],'resourceId':_0x25baa4['id'],'type':_0xad0014[_0x736c('0x2e')],'sectionId':_0xad0014['id']},{})[_0x736c('0x29')](function(){return _0x2e1c06;});}else{return _0x2e1c06;}})[_0x736c('0x48')](function(_0x9bdbd5){logger[_0x736c('0x53')](_0x736c('0x54'),_0x9bdbd5);throw _0x9bdbd5;});}return _0x2e1c06;})[_0x736c('0x29')](respondWithResult(_0x279a52,0xc9))['catch'](handleError(_0x279a52,null));};exports[_0x736c('0x28')]=function(_0x4db490,_0x3ec466){if(_0x4db490[_0x736c('0x4d')]['id']){delete _0x4db490['body']['id'];}return db[_0x736c('0x32')]['find']({'where':{'id':_0x4db490[_0x736c('0x4a')]['id']}})[_0x736c('0x29')](handleEntityNotFound(_0x3ec466,null))[_0x736c('0x29')](saveUpdates(_0x4db490['body'],null))['then'](respondWithResult(_0x3ec466,null))[_0x736c('0x48')](handleError(_0x3ec466,null));};exports[_0x736c('0x2a')]=function(_0x3fdad7,_0x4d1651){return db[_0x736c('0x32')]['find']({'where':{'id':_0x3fdad7[_0x736c('0x4a')]['id']}})['then'](handleEntityNotFound(_0x4d1651,null))['then'](removeEntity(_0x4d1651,null))['catch'](handleError(_0x4d1651,null));};exports[_0x736c('0x55')]=function(_0x4be483,_0x279e24,_0x260c5c){return db['SquareProject'][_0x736c('0x56')]({'where':{'id':_0x4be483[_0x736c('0x4a')]['id']}})[_0x736c('0x29')](handleEntityNotFound(_0x279e24,null))['then'](function(_0x248d8e){if(_0x248d8e){return _0x248d8e[_0x736c('0x55')](_0x4be483[_0x736c('0x4d')][_0x736c('0x57')],_['omit'](_0x4be483['body'],[_0x736c('0x57'),'id'])||{});}})[_0x736c('0x29')](respondWithResult(_0x279e24,null))[_0x736c('0x48')](handleError(_0x279e24,null));};exports[_0x736c('0x58')]=function(_0x102846,_0x155027,_0x6ad42a){return db[_0x736c('0x32')][_0x736c('0x56')]({'where':{'id':_0x102846[_0x736c('0x4a')]['id']}})[_0x736c('0x29')](handleEntityNotFound(_0x155027,null))[_0x736c('0x29')](function(_0x1039a0){if(_0x1039a0){return _0x1039a0[_0x736c('0x58')](_0x102846['query']['ids'])[_0x736c('0x29')](function(){if(_['isArray'](_0x102846['query'][_0x736c('0x57')])){for(var _0x294b8b=0x0;_0x294b8b<_0x102846[_0x736c('0x36')][_0x736c('0x57')]['length'];_0x294b8b+=0x1){socket['emit'](_0x736c('0x59'),{'UserId':Number(_0x102846[_0x736c('0x36')]['ids'][_0x294b8b]),'SquareProjectId':Number(_0x102846[_0x736c('0x4a')]['id'])});}}else{socket[_0x736c('0x5a')](_0x736c('0x59'),{'UserId':Number(_0x102846[_0x736c('0x36')][_0x736c('0x57')]),'SquareProjectId':Number(_0x102846[_0x736c('0x4a')]['id'])});}});}})['then'](respondWithStatusCode(_0x155027,null))[_0x736c('0x48')](handleError(_0x155027,null));};exports['getUsers']=function(_0x2f91fe,_0x4d9753,_0x6143a){var _0x1f185e={};var _0x49e070={};var _0x54086e;var _0x415f3b;return db[_0x736c('0x32')][_0x736c('0x5b')]({'where':{'id':_0x2f91fe[_0x736c('0x4a')]['id']}})[_0x736c('0x29')](handleEntityNotFound(_0x4d9753,null))[_0x736c('0x29')](function(_0x4e625c){if(_0x4e625c){_0x54086e=_0x4e625c;_0x49e070['model']=_[_0x736c('0x37')](db[_0x736c('0x5c')]['rawAttributes']);_0x49e070[_0x736c('0x36')]=_[_0x736c('0x37')](_0x2f91fe[_0x736c('0x36')]);_0x49e070[_0x736c('0x40')]=_[_0x736c('0x38')](_0x49e070[_0x736c('0x35')],_0x49e070[_0x736c('0x36')]);_0x1f185e[_0x736c('0x39')]=_['intersection'](_0x49e070[_0x736c('0x35')],qs[_0x736c('0x3a')](_0x2f91fe[_0x736c('0x36')][_0x736c('0x3a')]));_0x1f185e['attributes']=_0x1f185e[_0x736c('0x39')][_0x736c('0x3b')]?_0x1f185e[_0x736c('0x39')]:_0x49e070[_0x736c('0x35')];_0x1f185e['order']=qs[_0x736c('0x3e')](_0x2f91fe[_0x736c('0x36')][_0x736c('0x3e')]);_0x1f185e['where']=qs[_0x736c('0x40')](_['pick'](_0x2f91fe['query'],_0x49e070['filters']));if(_0x2f91fe[_0x736c('0x36')][_0x736c('0x42')]){_0x1f185e['where']=_['merge'](_0x1f185e[_0x736c('0x3f')],{'$or':_[_0x736c('0x31')](_0x1f185e[_0x736c('0x39')],function(_0x4a1f42){var _0x2c9b04={};_0x2c9b04[_0x4a1f42]={'$like':'%'+_0x2f91fe['query']['filter']+'%'};return _0x2c9b04;})});}_0x1f185e=_[_0x736c('0x43')]({},_0x1f185e,_0x2f91fe['options']);return _0x54086e[_0x736c('0x5d')](_0x1f185e);}})[_0x736c('0x29')](function(_0x242d27){if(_0x242d27){_0x415f3b=_0x242d27[_0x736c('0x3b')];if(!_0x2f91fe[_0x736c('0x36')][_0x736c('0x3c')](_0x736c('0x3d'))){_0x1f185e[_0x736c('0x24')]=qs['limit'](_0x2f91fe['query'][_0x736c('0x24')]);_0x1f185e[_0x736c('0x23')]=qs['offset'](_0x2f91fe[_0x736c('0x36')]['offset']);}return _0x54086e['getUsers'](_0x1f185e);}})[_0x736c('0x29')](function(_0x5e35d7){if(_0x5e35d7){return _0x5e35d7?{'count':_0x415f3b,'rows':_0x5e35d7}:null;}})[_0x736c('0x29')](respondWithResult(_0x4d9753,null))[_0x736c('0x48')](handleError(_0x4d9753,null));};