Multimedias
This commit is contained in:
parent
4aabf4258a
commit
71273e9a63
@ -60,8 +60,22 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
timestamps: true,
|
timestamps: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Multimedia.addScope('includeMultimediaFile', () => {
|
||||||
|
return {
|
||||||
|
include: [
|
||||||
|
{ model: sequelize.models.MultimediaFile, as: 'multimediaFile' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
Multimedia.associate = function (models) {
|
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;
|
return Multimedia;
|
||||||
|
|||||||
@ -13,16 +13,20 @@ const SortMiddleware = require('../../middlewares/sort');
|
|||||||
const multimediaController = require('./multimedia.controller');
|
const multimediaController = require('./multimedia.controller');
|
||||||
|
|
||||||
|
|
||||||
routes.get('/multimedias', cacheSuccesses,
|
routes.get('/multimedias', //cacheSuccesses,
|
||||||
PaginateMiddleware.middleware(),
|
PaginateMiddleware.middleware(),
|
||||||
//SortMiddleware.middleware({ default: "init_available_date" }),
|
//SortMiddleware.middleware({ default: "init_available_date" }),
|
||||||
multimediaController.find({})
|
multimediaController.find({
|
||||||
|
scopes: ['includeMultimediaFile']
|
||||||
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
routes.get('/multimedias/:id', cacheSuccesses,
|
routes.get('/multimedias/:id', //cacheSuccesses,
|
||||||
//PaginateMiddleware.middleware(),
|
//PaginateMiddleware.middleware(),
|
||||||
//SortMiddleware.middleware({ default: "init_available_date" }),
|
//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.associate = function (models) {
|
||||||
MultimediaFile.UserCreate = MultimediaFile.belongsTo(models.User, { foreignKey: 'userId' });
|
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;
|
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