S3 for other controolers
This commit is contained in:
+22
-7
@@ -1,16 +1,31 @@
|
||||
const mongoose = require('mongoose');
|
||||
const mongoosePaginate = require('mongoose-paginate-v2');
|
||||
const s3Storage = require('../plugins/s3Storage');
|
||||
|
||||
|
||||
function PDF(pdf) {
|
||||
if (pdf) return '/uploads/files/ReadOnly-PDF' + pdf
|
||||
function pdfUri(uri) {
|
||||
if (!uri) return null;
|
||||
if (uri.startsWith('http://') || uri.startsWith('https://')) return uri;
|
||||
const fileName = uri.startsWith('/') ? uri.split('/').pop() : uri;
|
||||
return s3Storage.getPublicUrl(`uploads/pdf/${fileName}`);
|
||||
}
|
||||
|
||||
function slideUrl(slide) {
|
||||
if (!slide) return null;
|
||||
if (slide.startsWith('http://') || slide.startsWith('https://')) return slide;
|
||||
const imageName = slide.startsWith('/') ? slide.split('/').pop() : slide;
|
||||
const key = imageName.endsWith('.jpeg')
|
||||
? `uploads/books/${imageName}`
|
||||
: `uploads/books/${imageName}.jpeg`;
|
||||
return s3Storage.getPublicUrl(key);
|
||||
}
|
||||
|
||||
const BookSchema = mongoose.Schema({
|
||||
title: String,
|
||||
uri: String,
|
||||
slides:{
|
||||
default:[],
|
||||
type:Array
|
||||
uri: { type: String, get: pdfUri, default: null },
|
||||
slides: {
|
||||
default: [],
|
||||
type: [String],
|
||||
get: (slides) => (slides || []).map(slideUrl),
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user