feat: image upload / display

This commit is contained in:
Nick
2019-05-21 16:45:27 -04:00
parent 10a3727604
commit 35bc745826
14 changed files with 297 additions and 47 deletions

View File

@@ -32,4 +32,12 @@ module.exports = class AssetFolder extends Model {
}
}
}
static async getHierarchy(folderId) {
return WIKI.models.knex.withRecursive('ancestors', qb => {
qb.select('id', 'name', 'slug', 'parentId').from('assetFolders').where('id', folderId).union(sqb => {
sqb.select('a.id', 'a.name', 'a.slug', 'a.parentId').from('assetFolders AS a').join('ancestors', 'ancestors.parentId', 'a.id')
})
}).select('*').from('ancestors')
}
}

View File

@@ -67,7 +67,8 @@ module.exports = class Asset extends Model {
static async upload(opts) {
const fileInfo = path.parse(opts.originalname)
const fileHash = assetHelper.generateHash(`${opts.folder}/${opts.originalname}`)
const folderPath = opts.hierarchy.map(h => h.slug).join('/')
const fileHash = opts.folderId ? assetHelper.generateHash(`${folderPath}/${opts.originalname}`) : assetHelper.generateHash(opts.originalname)
// Create asset entry
const asset = await WIKI.models.assets.query().insert({
@@ -77,7 +78,7 @@ module.exports = class Asset extends Model {
kind: _.startsWith(opts.mimetype, 'image/') ? 'image' : 'binary',
mime: opts.mimetype,
fileSize: opts.size,
folderId: null,
folderId: opts.folderId,
authorId: opts.userId
})