fix: upload file hash order

This commit is contained in:
Nick 2019-05-21 20:58:04 -04:00
parent eedd1c0707
commit 1fecf38034
3 changed files with 13 additions and 6 deletions

View File

@ -87,7 +87,7 @@ router.post('/u', multer({
...fileMeta,
originalname: sanitize(fileMeta.originalname).toLowerCase(),
folderId: folderId,
hierarchy,
assetPath,
userId: req.user.id
})
res.send('ok')

View File

@ -1,6 +1,7 @@
/* global WIKI */
const Model = require('objection').Model
const _ = require('lodash')
/* global WIKI */
/**
* Users model
@ -33,11 +34,18 @@ module.exports = class AssetFolder extends Model {
}
}
/**
* Get full folder hierarchy starting from specified folder to root
*
* @param {Number} folderId Id of the folder
*/
static async getHierarchy(folderId) {
return WIKI.models.knex.withRecursive('ancestors', qb => {
const hier = await 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')
// The ancestors are from children to grandparents, must reverse for correct path order.
return _.reverse(hier)
}
}

View File

@ -67,8 +67,7 @@ module.exports = class Asset extends Model {
static async upload(opts) {
const fileInfo = path.parse(opts.originalname)
const folderPath = opts.hierarchy.map(h => h.slug).join('/')
const fileHash = opts.folderId ? assetHelper.generateHash(`${folderPath}/${opts.originalname}`) : assetHelper.generateHash(opts.originalname)
const fileHash = assetHelper.generateHash(opts.assetPath)
// Create asset entry
const asset = await WIKI.models.assets.query().insert({