binds all API routes to api prefix route, refactors to support

This commit is contained in:
James
2020-04-01 15:21:31 -04:00
parent 0da9b02e94
commit 49ebdaa1ec
45 changed files with 244 additions and 238 deletions

35
src/uploads/register.js Normal file
View 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;

View File

@@ -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}*`,