binds all API routes to api prefix route, refactors to support
This commit is contained in:
35
src/uploads/register.js
Normal file
35
src/uploads/register.js
Normal file
@@ -0,0 +1,35 @@
|
||||
const mongoose = require('mongoose');
|
||||
const collectionRoutes = require('../collections/routes');
|
||||
const uploadRoutes = require('./routes');
|
||||
const baseUploadFields = require('./baseUploadFields');
|
||||
const baseImageFields = require('./baseImageFields');
|
||||
const buildCollectionSchema = require('../collections/buildSchema');
|
||||
|
||||
function registerUpload() {
|
||||
// TODO: mongooseHidden on our upload model is hiding all the fields
|
||||
const uploadSchema = buildCollectionSchema(
|
||||
this.config.upload,
|
||||
this.config,
|
||||
{ discriminatorKey: 'type' },
|
||||
);
|
||||
|
||||
uploadSchema.add(baseUploadFields);
|
||||
|
||||
const imageSchema = new mongoose.Schema(baseImageFields, {
|
||||
discriminatorKey: 'type',
|
||||
});
|
||||
|
||||
this.Upload = mongoose.model(this.config.upload.labels.singular, uploadSchema);
|
||||
|
||||
// TODO: image type hard coded, but in the future we need some way of customizing how uploads are handled in customizable pattern
|
||||
this.Upload.discriminator('image', imageSchema);
|
||||
|
||||
this.router.use(uploadRoutes(this.config, this.Upload));
|
||||
|
||||
this.router.use(collectionRoutes({
|
||||
model: this.Upload,
|
||||
config: this.config.upload,
|
||||
}));
|
||||
}
|
||||
|
||||
module.exports = registerUpload;
|
||||
@@ -1,10 +1,13 @@
|
||||
const express = require('express');
|
||||
const passport = require('passport');
|
||||
const fileUpload = require('express-fileupload');
|
||||
const { upload, update } = require('./requestHandlers');
|
||||
const uploadMiddleware = require('./middleware');
|
||||
const setModelLocaleMiddleware = require('../localization/setModelLocale');
|
||||
|
||||
const uploadRoutes = (Upload, config, router) => {
|
||||
const router = express.Router();
|
||||
|
||||
const uploadRoutes = (config, Upload) => {
|
||||
const { upload: uploadConfig } = config;
|
||||
|
||||
router.all(`/${uploadConfig.slug}*`,
|
||||
|
||||
Reference in New Issue
Block a user