diff --git a/config/environments/development.js b/config/environments/development.js index 6b94542..4a85377 100644 --- a/config/environments/development.js +++ b/config/environments/development.js @@ -7,6 +7,12 @@ module.exports = { dialect: 'mysql', }, + cache: { + enabled: false, + defaultDuration: '1 minute', + debug: true, + }, + session: { secret_token: process.env.SECRET_TOKEN || "B57J=7B`NQ$y98|~5;hc715bo09^5oz8NR+]n9r~215B91Nd9P%25_N6r!GHcOKp|18y5-73Dr5^@9k7n]5l<-41D1o", token_expires_in: '365d' diff --git a/config/environments/production.js b/config/environments/production.js index 695ebac..7cdbdd8 100644 --- a/config/environments/production.js +++ b/config/environments/production.js @@ -15,6 +15,13 @@ module.exports = { */ }, + cache: { + enabled: false, + defaultDuration: '1 minute', + debug: true, + }, + + session: { secret_token: process.env.SECRET_TOKEN || "B57J=7B`NQ$y98|~5;hc715bo09^5oz8NR+]n9r~215B91Nd9P%25_N6r!GHcOKp|18y5-73Dr5^@9k7n]5l<-41D1o", token_expires_in: '365d' diff --git a/core/passport.js b/core/passport.js index b354b00..f6f1402 100644 --- a/core/passport.js +++ b/core/passport.js @@ -98,7 +98,6 @@ console.log('PASSPORT - local-phone'); // JWT passport.use('jwt', new CustomStrategy(async (req, done) => { -console.log('PASSPORT - JWTTTTTTTTTTT'); const token = ((req && req.headers && req.headers['x-access-token']) ? req.headers['x-access-token'] : null); if (!token) { diff --git a/middlewares/cache.js b/middlewares/cache.js index fb5fe99..950569c 100644 --- a/middlewares/cache.js +++ b/middlewares/cache.js @@ -1,10 +1,13 @@ const apicache = require('apicache'); const redis = require('redis'); +const config = require('../config'); + const cacheWithRedis = apicache .options({ - debug: true, - defaultDuration: '1 minute', + debug: config.cache.debug, + defaultDuration: config.cache.defaultDuration, + enabled: config.cache.enabled, //redisClient: redis.createClient(), //appendKey: (req, res) => req.user ? req.user.id : '', }); diff --git a/modules/blog/blog.routes.js b/modules/blog/blog.routes.js index 657dc4a..6d4474c 100644 --- a/modules/blog/blog.routes.js +++ b/modules/blog/blog.routes.js @@ -2,7 +2,7 @@ const routes = require('express').Router(); /*const postService = require('./post.service')(models.Post); const postController = require('./post.controller')(postService);*/ - +const { cacheSuccesses } = require('../../middlewares/cache'); const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator'); const PaginateMiddleware = require('../../middlewares/paginate'); const SortMiddleware = require('../../middlewares/sort'); @@ -11,6 +11,7 @@ const FieldMiddleware = require('../../middlewares/fields'); const blogController = require('./blog.controller') routes.get('/posts', isLoggedUser, + cacheSuccesses('24 hours'), FieldMiddleware.middleware({ invalidFields: ['user', 'createdAt'] }), @@ -22,6 +23,7 @@ routes.get('/posts', isLoggedUser, ); routes.get('/posts/:id', isLoggedUser, + cacheSuccesses('24 hours'), FieldMiddleware.middleware({ invalidFields: ['updatedAt', 'createdAt'] }), diff --git a/modules/entities/entity.routes.js b/modules/entities/entity.routes.js index d08b2f8..a05aa0f 100644 --- a/modules/entities/entity.routes.js +++ b/modules/entities/entity.routes.js @@ -1,5 +1,6 @@ const routes = require('express').Router(); +const { cacheSuccesses } = require('../../middlewares/cache'); const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator'); const SchemaValidator = require('../../middlewares/schemaValidator'); @@ -18,6 +19,7 @@ const generalInvalidFields = [ routes.get('/entities', isLoggedUser, + cacheSuccesses('24 hours'), FieldMiddleware.middleware({ invalidFields: generalInvalidFields }), @@ -30,6 +32,7 @@ routes.get('/entities', routes.get ('/entities/colleges', + cacheSuccesses('24 hours'), // PaginateMiddleware.middleware(), FieldMiddleware.middleware({ invalidFields: generalInvalidFields @@ -41,6 +44,7 @@ routes.get ('/entities/colleges', ); routes.get ('/entities/partners', + cacheSuccesses('24 hours'), // PaginateMiddleware.middleware(), FieldMiddleware.middleware({ invalidFields: generalInvalidFields diff --git a/modules/events/event.routes.js b/modules/events/event.routes.js index 0d28eca..7016c88 100644 --- a/modules/events/event.routes.js +++ b/modules/events/event.routes.js @@ -42,6 +42,7 @@ routes.get('/events', routes.get('/events/cities', isLoggedUser, + cacheSuccesses('24 hours'), eventController.find({ scopes: ['CitiesOfEvents'] }) @@ -63,8 +64,9 @@ routes.get('/events/next', ); -routes.get('/events/past', cacheSuccesses('24 hours'), +routes.get('/events/past', isLoggedUser, + cacheSuccesses('24 hours'), FieldMiddleware.middleware({ invalidFields: generalInvalidFields }), diff --git a/modules/events/event.service.js b/modules/events/event.service.js index 325d648..1df0cee 100644 --- a/modules/events/event.service.js +++ b/modules/events/event.service.js @@ -31,9 +31,6 @@ const extraMethods = { }, afterFetchOne: (result, params, context) => { - console.log('----------------------------------------------'); - console.log(result); - if (result) result = result.toJSON(); return eventComposer(result, context); diff --git a/modules/locations/location.routes.js b/modules/locations/location.routes.js index a30d523..5bdf0f5 100644 --- a/modules/locations/location.routes.js +++ b/modules/locations/location.routes.js @@ -1,5 +1,6 @@ const routes = require('express').Router(); +const { cacheSuccesses } = require('../../middlewares/cache'); const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator'); const SchemaValidator = require('../../middlewares/schemaValidator'); @@ -10,6 +11,7 @@ const locationController = require('./location.controller'); routes.get('/locations', isLoggedUser, + cacheSuccesses('24 hours'), SortMiddleware.middleware({ default: "city" }), locationController.find({ scopes: ['includeMultimedias'], @@ -18,6 +20,7 @@ routes.get('/locations', routes.get('/locations/:id', isLoggedUser, + cacheSuccesses('24 hours'), //SortMiddleware.middleware({ default: "city" }), locationController.findOne({ scopes: ['includeMultimedias'] diff --git a/modules/multimedia/multimedia.routes.js b/modules/multimedia/multimedia.routes.js index ea0ffab..fdce91a 100644 --- a/modules/multimedia/multimedia.routes.js +++ b/modules/multimedia/multimedia.routes.js @@ -20,8 +20,9 @@ const generalInvalidFields = [ ]; -routes.get('/multimedias', //cacheSuccesses('24 hours'), +routes.get('/multimedias', isLoggedUser, + cacheSuccesses('24 hours'), FieldMiddleware.middleware({ invalidFields: generalInvalidFields }), @@ -32,8 +33,9 @@ routes.get('/multimedias', //cacheSuccesses('24 hours'), }) ); -routes.get('/multimedias/:id', //cacheSuccesses('24 hours'), +routes.get('/multimedias/:id', isLoggedUser, + cacheSuccesses('24 hours'), FieldMiddleware.middleware({ invalidFields: generalInvalidFields }), diff --git a/modules/speakers/speaker.model.js b/modules/speakers/speaker.model.js index 729c939..5a4d5ec 100644 --- a/modules/speakers/speaker.model.js +++ b/modules/speakers/speaker.model.js @@ -47,6 +47,10 @@ module.exports = function (sequelize, DataTypes) { type: DataTypes.UUID, foreignKey: true, }, + featured: { + type: DataTypes.BOOLEAN, + defaultValue: false, + } }, { tableName: 'speakers', freezeTableName: true, @@ -102,9 +106,9 @@ module.exports = function (sequelize, DataTypes) { Speaker.addScope('featured', { - order: [ - ['updatedAt', 'DESC'] - ] + where: { + featured: true + }, }); Speaker.addScope('last', { diff --git a/modules/speakers/speaker.routes.js b/modules/speakers/speaker.routes.js index a929e63..b4f6a45 100644 --- a/modules/speakers/speaker.routes.js +++ b/modules/speakers/speaker.routes.js @@ -2,6 +2,7 @@ const routes = require('express').Router(); const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator'); const SchemaValidator = require('../../middlewares/schemaValidator'); +const { cacheSuccesses } = require('../../middlewares/cache'); const PaginateMiddleware = require('../../middlewares/paginate'); const FieldMiddleware = require('../../middlewares/fields'); @@ -17,6 +18,7 @@ const generalInvalidFields = [ // Todos los ponentes routes.get('/speakers', isLoggedUser, + cacheSuccesses('24 hours'), FieldMiddleware.middleware({ invalidFields: generalInvalidFields }), @@ -30,6 +32,7 @@ routes.get('/speakers', // Ponentes destacados routes.get('/speakers/featured', isLoggedUser, + cacheSuccesses('24 hours'), FieldMiddleware.middleware({ invalidFields: generalInvalidFields }), @@ -56,6 +59,7 @@ routes.get('/speakers/last', // Un ponente routes.get('/speakers/:id', isLoggedUser, + cacheSuccesses('24 hours'), FieldMiddleware.middleware({ invalidFields: generalInvalidFields }), @@ -68,6 +72,7 @@ routes.get('/speakers/:id', // Dar ponentes similares a uno dado routes.get('/speakers/:id/similar', isLoggedUser, + cacheSuccesses('24 hours'), /*FieldMiddleware.middleware({ invalidFields: ['createdAt'] }),*/ diff --git a/modules/values/value.routes.js b/modules/values/value.routes.js index f834f9a..d6130d3 100644 --- a/modules/values/value.routes.js +++ b/modules/values/value.routes.js @@ -1,5 +1,6 @@ const routes = require('express').Router(); +const { cacheSuccesses } = require('../../middlewares/cache'); const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator'); const SchemaValidator = require('../../middlewares/schemaValidator'); @@ -17,6 +18,7 @@ const generalInvalidFields = [ routes.get('/values', isLoggedUser, + cacheSuccesses('24 hours'), FieldMiddleware.middleware({ invalidFields: generalInvalidFields }), @@ -27,6 +29,7 @@ routes.get('/values', routes.get('/values/:id', isLoggedUser, + cacheSuccesses('24 hours'), FieldMiddleware.middleware({ invalidFields: ['createdAt'] }), @@ -34,6 +37,8 @@ routes.get('/values/:id', ); routes.get('/values/:id/speakers', + isLoggedUser, + cacheSuccesses('24 hours'), (req, res, next) => { req.params.association = 'speakers'; next(); diff --git a/modules/venues/venue.routes.js b/modules/venues/venue.routes.js index 39c8fc2..d28b54c 100644 --- a/modules/venues/venue.routes.js +++ b/modules/venues/venue.routes.js @@ -1,5 +1,6 @@ const routes = require('express').Router(); +const { cacheSuccesses } = require('../../middlewares/cache'); const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator'); const SchemaValidator = require('../../middlewares/schemaValidator'); @@ -11,13 +12,15 @@ const VenueValidation = require('./venue.validations'); const venueController = require('./venue.controller'); routes.get('/venues', - isLoggedUser, + isLoggedUser, + cacheSuccesses('24 hours'), SortMiddleware.middleware({ default: "city" }), venueController.find() ); routes.get('/venues/:id', - isLoggedUser, + isLoggedUser, + cacheSuccesses('24 hours'), venueController.findOne() ); @@ -35,6 +38,7 @@ routes.get('/venues/:id/events', routes.get('/venues/count', isLoggedUser, + cacheSuccesses('24 hours'), venueController.count() );