Multimedias
This commit is contained in:
parent
4aabf4258a
commit
71273e9a63
@ -60,8 +60,22 @@ module.exports = function (sequelize, DataTypes) {
|
||||
timestamps: true,
|
||||
});
|
||||
|
||||
Multimedia.addScope('includeMultimediaFile', () => {
|
||||
return {
|
||||
include: [
|
||||
{ model: sequelize.models.MultimediaFile, as: 'multimediaFile' }
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
Multimedia.associate = function (models) {
|
||||
Multimedia.MultimediaFile = Multimedia.belongsTo(models.MultimediaFile, { foreignKey: 'multimediafileId' });
|
||||
Multimedia.MultimediaFile = Multimedia.belongsTo(models.MultimediaFile, { foreignKey: 'multimediafileId', as: "multimediaFile" });
|
||||
|
||||
Multimedia.Speaker = Multimedia.hasOne(models.Speaker, {
|
||||
foreignKey: 'entityId',
|
||||
as: 'speaker'
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
return Multimedia;
|
||||
|
||||
@ -13,16 +13,20 @@ const SortMiddleware = require('../../middlewares/sort');
|
||||
const multimediaController = require('./multimedia.controller');
|
||||
|
||||
|
||||
routes.get('/multimedias', cacheSuccesses,
|
||||
routes.get('/multimedias', //cacheSuccesses,
|
||||
PaginateMiddleware.middleware(),
|
||||
//SortMiddleware.middleware({ default: "init_available_date" }),
|
||||
multimediaController.find({})
|
||||
multimediaController.find({
|
||||
scopes: ['includeMultimediaFile']
|
||||
})
|
||||
);
|
||||
|
||||
routes.get('/multimedias/:id', cacheSuccesses,
|
||||
routes.get('/multimedias/:id', //cacheSuccesses,
|
||||
//PaginateMiddleware.middleware(),
|
||||
//SortMiddleware.middleware({ default: "init_available_date" }),
|
||||
multimediaController.findOne({})
|
||||
multimediaController.findOne({
|
||||
scopes: ['includeMultimediaFile']
|
||||
})
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -27,4 +27,4 @@ const extraMethods = {
|
||||
|
||||
}
|
||||
|
||||
module.exports = generateService(models.MultimediaFile, extraMethods);
|
||||
module.exports = generateService(models.Multimedia, extraMethods);
|
||||
14
modules/multimedia/multimedia_file.controller.js
Normal file
14
modules/multimedia/multimedia_file.controller.js
Normal file
@ -0,0 +1,14 @@
|
||||
'use strict';
|
||||
|
||||
const generateControllers = require('../../core/controllers');
|
||||
const multimediaFileService = require('./multimedia_file.service');
|
||||
|
||||
|
||||
// Module Name
|
||||
const MODULE_NAME = '[multimediaFile.controller]';
|
||||
|
||||
const controllerOptions = { MODULE_NAME };
|
||||
const extraControllers = {};
|
||||
|
||||
module.exports = generateControllers(multimediaFileService, extraControllers, controllerOptions);
|
||||
|
||||
@ -37,8 +37,16 @@ module.exports = function (sequelize, DataTypes) {
|
||||
|
||||
MultimediaFile.associate = function (models) {
|
||||
MultimediaFile.UserCreate = MultimediaFile.belongsTo(models.User, { foreignKey: 'userId' });
|
||||
MultimediaFile.Multimedias = MultimediaFile.hasMany(models.Multimedia, { foreignKey: 'multimediafileId' });
|
||||
MultimediaFile.Multimedias = MultimediaFile.hasMany(models.Multimedia, { foreignKey: 'multimediafileId', as: "multimedias" });
|
||||
};
|
||||
|
||||
MultimediaFile.addScope('includeMultimedias', () => {
|
||||
return {
|
||||
include: [
|
||||
{ model: sequelize.models.Multimedia, as: 'multimedias' }
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
return MultimediaFile;
|
||||
};
|
||||
41
modules/multimedia/multimedia_file.routes.js
Normal file
41
modules/multimedia/multimedia_file.routes.js
Normal file
@ -0,0 +1,41 @@
|
||||
const routes = require('express').Router();
|
||||
|
||||
const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator');
|
||||
const { cacheSuccesses } = require('../../middlewares/cache');
|
||||
|
||||
//const SchemaValidator = require('../../middlewares/schemaValidator');
|
||||
|
||||
const PaginateMiddleware = require('../../middlewares/paginate');
|
||||
const FieldMiddleware = require('../../middlewares/fields');
|
||||
const SortMiddleware = require('../../middlewares/sort');
|
||||
const multimediaFileController = require('./multimedia_file.controller');
|
||||
|
||||
const generalInvalidFields = [
|
||||
'userId', 'createdAt', 'updatedAt',
|
||||
];
|
||||
|
||||
routes.get('/multimediafiles', //cacheSuccesses,
|
||||
FieldMiddleware.middleware({
|
||||
invalidFields: generalInvalidFields
|
||||
}),
|
||||
PaginateMiddleware.middleware(),
|
||||
//SortMiddleware.middleware({ default: "init_available_date" }),
|
||||
multimediaFileController.find({
|
||||
scopes: ['includeMultimedias']
|
||||
})
|
||||
);
|
||||
|
||||
routes.get('/multimediafiles/:id', //cacheSuccesses,
|
||||
FieldMiddleware.middleware({
|
||||
invalidFields: generalInvalidFields
|
||||
}),
|
||||
//SortMiddleware.middleware({ default: "init_available_date" }),
|
||||
multimediaFileController.findOne({
|
||||
scopes: ['includeMultimedias']
|
||||
})
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
module.exports = routes;
|
||||
30
modules/multimedia/multimedia_file.service.js
Normal file
30
modules/multimedia/multimedia_file.service.js
Normal file
@ -0,0 +1,30 @@
|
||||
/* global Venue */
|
||||
'use strict';
|
||||
|
||||
const _ = require('lodash');
|
||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||
const models = require('../../core/models');
|
||||
const getVimeoVideoInfo = require('../../helpers/vimeo.helper');
|
||||
|
||||
const providerComposer = (multimedia) => {
|
||||
return getVimeoVideoInfo(multimedia.code)
|
||||
}
|
||||
|
||||
const extraMethods = {
|
||||
afterFetchOne: async (result, params, context) => {
|
||||
if (!result) {
|
||||
return result;
|
||||
}
|
||||
|
||||
const multimedia = result.toJSON();
|
||||
console.log(multimedia);
|
||||
|
||||
if (multimedia.provider === 'vimeo') {
|
||||
multimedia.providerInfo = await providerComposer(multimedia);
|
||||
}
|
||||
return multimedia;
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
module.exports = generateService(models.MultimediaFile, extraMethods);
|
||||
Loading…
Reference in New Issue
Block a user