.
This commit is contained in:
parent
cd5d39bc97
commit
97ee184ec5
@ -17,6 +17,10 @@ module.exports = {
|
|||||||
port: process.env.PORT || 18888
|
port: process.env.PORT || 18888
|
||||||
},
|
},
|
||||||
|
|
||||||
|
cdn: {
|
||||||
|
hostname: "https://cdnapp2.loquedeverdadimporta.org",
|
||||||
|
},
|
||||||
|
|
||||||
paginate: {
|
paginate: {
|
||||||
limit: 10,
|
limit: 10,
|
||||||
maxLimit: 50
|
maxLimit: 50
|
||||||
|
|||||||
@ -15,13 +15,22 @@ module.exports = {
|
|||||||
*/
|
*/
|
||||||
},
|
},
|
||||||
|
|
||||||
session: {
|
session: {
|
||||||
secret_token: process.env.SECRET_TOKEN || "B57J=7B`NQ$y98|~5;hc715bo09^5oz8NR+]n9r~215B91Nd9P%25_N6r!GHcOKp|18y5-73Dr5^@9k7n]5l<-41D1o",
|
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'
|
token_expires_in: '365d'
|
||||||
},
|
},
|
||||||
|
|
||||||
server: {
|
server: {
|
||||||
hostname: process.env.HOSTNAME || '127.0.0.1',
|
hostname: process.env.HOSTNAME || '127.0.0.1',
|
||||||
port: process.env.PORT || 18888
|
port: process.env.PORT || 18888
|
||||||
}
|
},
|
||||||
|
|
||||||
|
cdn: {
|
||||||
|
hostname: "https://cdnapp2.loquedeverdadimporta.org",
|
||||||
|
},
|
||||||
|
|
||||||
|
paginate: {
|
||||||
|
limit: 10,
|
||||||
|
maxLimit: 50
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
31
helpers/cdn.helper.js
Normal file
31
helpers/cdn.helper.js
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
const config = require('../config');
|
||||||
|
|
||||||
|
const assetsUrl = config.cdn.hostname;
|
||||||
|
|
||||||
|
const CDN_PATHS = {
|
||||||
|
BLOG: "blog/",
|
||||||
|
CITIES: "cities/",
|
||||||
|
PROFILE: "profile/",
|
||||||
|
SPEAKERS: "speakers/",
|
||||||
|
WALLPAPERS: "wallpapers/"
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const getCDNMediaUrl = (mediaUri) => {
|
||||||
|
if (mediaUri) {
|
||||||
|
const pathParsed = mediaUri.indexOf("media") == 0 ? mediaUri.substr("media/".length, mediaUri.length) : mediaUri;
|
||||||
|
return encodeURI(encodeURI(`${assetsUrl}/${pathParsed}`));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return encodeURI(dummyMedia);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const getCDNCityMediaUrl = (cityName) => encodeURI(`${assetsUrl}/${CDN_PATHS.CITIES}/${cityName}.jpg`);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
getCDNCityMediaUrl,
|
||||||
|
getCDNMediaUrl
|
||||||
|
}
|
||||||
@ -16,7 +16,7 @@ routes.get('/posts', isLoggedUser,
|
|||||||
}),
|
}),
|
||||||
PaginateMiddleware.middleware(),
|
PaginateMiddleware.middleware(),
|
||||||
SortMiddleware.middleware({ default: "date" }),
|
SortMiddleware.middleware({ default: "date" }),
|
||||||
blogController.find);
|
blogController.find());
|
||||||
|
|
||||||
routes.post('/posts', isAdministratorUser, blogController.create);
|
routes.post('/posts', isAdministratorUser, blogController.create);
|
||||||
|
|
||||||
@ -26,7 +26,8 @@ routes.get('/posts/:id', isLoggedUser,
|
|||||||
}),
|
}),
|
||||||
//PaginateMiddleware.middleware(),
|
//PaginateMiddleware.middleware(),
|
||||||
//SortMiddleware.middleware({ default: "date" }),
|
//SortMiddleware.middleware({ default: "date" }),
|
||||||
blogController.findOne);
|
blogController.findOne()
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
routes.put('/posts/:id', isAdministratorUser, blogController.update);
|
routes.put('/posts/:id', isAdministratorUser, blogController.update);
|
||||||
|
|||||||
@ -54,7 +54,7 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
|
|
||||||
|
|
||||||
Comment.associate = function (models) {
|
Comment.associate = function (models) {
|
||||||
Comment.User = Comment.belongsTo(models.User, { foreignKey: 'userId', constraints: false });
|
Comment.User = Comment.belongsTo(models.User, { foreignKey: 'userId', constraints: false, as: 'user' });
|
||||||
//Comment.Conference = Comment.belongsTo(models.Conference, { foreignKey: 'conferenceId', constraints: false });
|
//Comment.Conference = Comment.belongsTo(models.Conference, { foreignKey: 'conferenceId', constraints: false });
|
||||||
//Comment.Post = Comment.belongsTo(models.Post, { foreignKey: 'postId', constraints: false });
|
//Comment.Post = Comment.belongsTo(models.Post, { foreignKey: 'postId', constraints: false });
|
||||||
//Comment.Speaker = Comment.belongsTo(models.Speaker, { foreignKey: 'speakerId', constraints: false });
|
//Comment.Speaker = Comment.belongsTo(models.Speaker, { foreignKey: 'speakerId', constraints: false });
|
||||||
|
|||||||
@ -6,6 +6,7 @@ const moment = require('moment');
|
|||||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||||
const Sequelize = require('sequelize');
|
const Sequelize = require('sequelize');
|
||||||
const models = require('../../core/models');
|
const models = require('../../core/models');
|
||||||
|
const cdnHelper = require('../../helpers/cdn.helper');
|
||||||
|
|
||||||
|
|
||||||
const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({
|
const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({
|
||||||
@ -17,6 +18,7 @@ const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({
|
|||||||
createdAt: undefined,
|
createdAt: undefined,
|
||||||
updatedAt: undefined,
|
updatedAt: undefined,
|
||||||
userId: undefined,
|
userId: undefined,
|
||||||
|
url: (multimedia.MultimediaFile.provider === 'cdn') ? cdnHelper.getCDNMediaUrl(multimedia.MultimediaFile.url) : multimedia.MultimediaFile.url,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const speakerComposer = (speaker, context) => {
|
const speakerComposer = (speaker, context) => {
|
||||||
@ -32,6 +34,7 @@ const eventComposer = (event, context) => {
|
|||||||
if (context.scopes.includes('includeVenue')) {
|
if (context.scopes.includes('includeVenue')) {
|
||||||
delete event.venue.updatedAt;
|
delete event.venue.updatedAt;
|
||||||
delete event.venue.createdAt;
|
delete event.venue.createdAt;
|
||||||
|
event.venue.image_url = cdnHelper.getCDNCityMediaUrl(event.venue.city);
|
||||||
};
|
};
|
||||||
|
|
||||||
let multimedias = []
|
let multimedias = []
|
||||||
|
|||||||
@ -141,6 +141,10 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
model: sequelize.models.Comment,
|
model: sequelize.models.Comment,
|
||||||
as: 'comments',
|
as: 'comments',
|
||||||
required: false,
|
required: false,
|
||||||
|
include: [{
|
||||||
|
model: sequelize.models.User,
|
||||||
|
as: 'user',
|
||||||
|
}]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -5,6 +5,7 @@ const _ = require('lodash');
|
|||||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||||
const Sequelize = require('sequelize');
|
const Sequelize = require('sequelize');
|
||||||
const models = require('../../core/models');
|
const models = require('../../core/models');
|
||||||
|
const cdnHelper = require('../../helpers/cdn.helper');
|
||||||
|
|
||||||
|
|
||||||
const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({
|
const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({
|
||||||
@ -16,6 +17,7 @@ const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({
|
|||||||
createdAt: undefined,
|
createdAt: undefined,
|
||||||
updatedAt: undefined,
|
updatedAt: undefined,
|
||||||
userId: undefined,
|
userId: undefined,
|
||||||
|
url: (multimedia.MultimediaFile.provider === 'cdn') ? cdnHelper.getCDNMediaUrl(multimedia.MultimediaFile.url) : multimedia.MultimediaFile.url,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const valuesComposer = (values) => values.map(value => ({
|
const valuesComposer = (values) => values.map(value => ({
|
||||||
@ -23,6 +25,16 @@ const valuesComposer = (values) => values.map(value => ({
|
|||||||
name: value.name,
|
name: value.name,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
const commentsComposer = (comments) => comments.map(comment => ({
|
||||||
|
...comment,
|
||||||
|
userId: undefined,
|
||||||
|
user: {
|
||||||
|
...comment.user,
|
||||||
|
profile_picture: cdnHelper.getCDNMediaUrl(comment.user.profile_picture)
|
||||||
|
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
|
||||||
|
|
||||||
const socialNetworksComposer = (speaker, context) => {
|
const socialNetworksComposer = (speaker, context) => {
|
||||||
return {
|
return {
|
||||||
@ -44,9 +56,14 @@ const socialNetworksComposer = (speaker, context) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const speakerComposer = (speaker, context) => {
|
const speakerComposer = (speaker, context) => {
|
||||||
let multimedias = []
|
let multimedias = [];
|
||||||
if (context.scopes.includes('includeMultimedias')) {
|
if (context.scopes.includes('includeMultimedias')) {
|
||||||
multimedias = multimediaComposer(speaker.multimedias)
|
multimedias = multimediaComposer(speaker.multimedias);
|
||||||
|
};
|
||||||
|
|
||||||
|
let comments = [];
|
||||||
|
if (context.scopes.includes('includeComments')) {
|
||||||
|
comments = commentsComposer(speaker.comments);
|
||||||
};
|
};
|
||||||
|
|
||||||
speaker.typename = speaker.type.name;
|
speaker.typename = speaker.type.name;
|
||||||
@ -60,6 +77,7 @@ const speakerComposer = (speaker, context) => {
|
|||||||
speaker,
|
speaker,
|
||||||
rrss,
|
rrss,
|
||||||
{ multimedias: multimedias },
|
{ multimedias: multimedias },
|
||||||
|
{ comments: comments },
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user