.
This commit is contained in:
parent
cd5d39bc97
commit
97ee184ec5
@ -17,6 +17,10 @@ module.exports = {
|
||||
port: process.env.PORT || 18888
|
||||
},
|
||||
|
||||
cdn: {
|
||||
hostname: "https://cdnapp2.loquedeverdadimporta.org",
|
||||
},
|
||||
|
||||
paginate: {
|
||||
limit: 10,
|
||||
maxLimit: 50
|
||||
|
||||
@ -15,13 +15,22 @@ module.exports = {
|
||||
*/
|
||||
},
|
||||
|
||||
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'
|
||||
},
|
||||
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'
|
||||
},
|
||||
|
||||
server: {
|
||||
hostname: process.env.HOSTNAME || '127.0.0.1',
|
||||
port: process.env.PORT || 18888
|
||||
}
|
||||
server: {
|
||||
hostname: process.env.HOSTNAME || '127.0.0.1',
|
||||
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(),
|
||||
SortMiddleware.middleware({ default: "date" }),
|
||||
blogController.find);
|
||||
blogController.find());
|
||||
|
||||
routes.post('/posts', isAdministratorUser, blogController.create);
|
||||
|
||||
@ -26,7 +26,8 @@ routes.get('/posts/:id', isLoggedUser,
|
||||
}),
|
||||
//PaginateMiddleware.middleware(),
|
||||
//SortMiddleware.middleware({ default: "date" }),
|
||||
blogController.findOne);
|
||||
blogController.findOne()
|
||||
);
|
||||
|
||||
|
||||
routes.put('/posts/:id', isAdministratorUser, blogController.update);
|
||||
|
||||
@ -54,7 +54,7 @@ module.exports = function (sequelize, DataTypes) {
|
||||
|
||||
|
||||
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.Post = Comment.belongsTo(models.Post, { foreignKey: 'postId', 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 Sequelize = require('sequelize');
|
||||
const models = require('../../core/models');
|
||||
const cdnHelper = require('../../helpers/cdn.helper');
|
||||
|
||||
|
||||
const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({
|
||||
@ -17,6 +18,7 @@ const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({
|
||||
createdAt: undefined,
|
||||
updatedAt: undefined,
|
||||
userId: undefined,
|
||||
url: (multimedia.MultimediaFile.provider === 'cdn') ? cdnHelper.getCDNMediaUrl(multimedia.MultimediaFile.url) : multimedia.MultimediaFile.url,
|
||||
}));
|
||||
|
||||
const speakerComposer = (speaker, context) => {
|
||||
@ -31,7 +33,8 @@ const eventComposer = (event, context) => {
|
||||
|
||||
if (context.scopes.includes('includeVenue')) {
|
||||
delete event.venue.updatedAt;
|
||||
delete event.venue.createdAt;
|
||||
delete event.venue.createdAt;
|
||||
event.venue.image_url = cdnHelper.getCDNCityMediaUrl(event.venue.city);
|
||||
};
|
||||
|
||||
let multimedias = []
|
||||
|
||||
@ -141,6 +141,10 @@ module.exports = function (sequelize, DataTypes) {
|
||||
model: sequelize.models.Comment,
|
||||
as: 'comments',
|
||||
required: false,
|
||||
include: [{
|
||||
model: sequelize.models.User,
|
||||
as: 'user',
|
||||
}]
|
||||
}]
|
||||
}
|
||||
});
|
||||
|
||||
@ -5,6 +5,7 @@ const _ = require('lodash');
|
||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||
const Sequelize = require('sequelize');
|
||||
const models = require('../../core/models');
|
||||
const cdnHelper = require('../../helpers/cdn.helper');
|
||||
|
||||
|
||||
const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({
|
||||
@ -16,6 +17,7 @@ const multimediaComposer = (multimedias) => multimedias.map(multimedia => ({
|
||||
createdAt: undefined,
|
||||
updatedAt: undefined,
|
||||
userId: undefined,
|
||||
url: (multimedia.MultimediaFile.provider === 'cdn') ? cdnHelper.getCDNMediaUrl(multimedia.MultimediaFile.url) : multimedia.MultimediaFile.url,
|
||||
}));
|
||||
|
||||
const valuesComposer = (values) => values.map(value => ({
|
||||
@ -23,6 +25,16 @@ const valuesComposer = (values) => values.map(value => ({
|
||||
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) => {
|
||||
return {
|
||||
@ -44,9 +56,14 @@ const socialNetworksComposer = (speaker, context) => {
|
||||
};
|
||||
|
||||
const speakerComposer = (speaker, context) => {
|
||||
let multimedias = []
|
||||
let multimedias = [];
|
||||
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;
|
||||
@ -60,6 +77,7 @@ const speakerComposer = (speaker, context) => {
|
||||
speaker,
|
||||
rrss,
|
||||
{ multimedias: multimedias },
|
||||
{ comments: comments },
|
||||
)
|
||||
};
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user