Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
}
// Ensure each segment multihash in metadata obj has an associated file, else error.
await Promise.all(metadataJSON.track_segments.map(async segment => {
const file = await models.File.findOne({ where: {
multihash: segment.multihash,
cnodeUserUUID: req.session.cnodeUserUUID,
trackUUID: null
} })
if (!file) {
return errorResponseBadRequest(`No file found for provided segment multihash: ${segment.multihash}`)
}
}))
// Store + pin metadata multihash to disk + IPFS.
const metadataBuffer = Buffer.from(JSON.stringify(metadataJSON))
const { multihash, fileUUID } = await saveFileFromBuffer(req, metadataBuffer, 'metadata')
return successResponse({ 'metadataMultihash': multihash, 'metadataFileUUID': fileUUID })
}))
app.post('/audius_users/metadata', authMiddleware, syncLockMiddleware, handleResponse(async (req, res) => {
// TODO - input validation
const metadataJSON = req.body.metadata
const metadataBuffer = Buffer.from(JSON.stringify(metadataJSON))
const { multihash, fileUUID } = await saveFileFromBuffer(req, metadataBuffer, 'metadata')
return successResponse({ 'metadataMultihash': multihash, 'metadataFileUUID': fileUUID })
}))
.then(raw => {
let object = JSON.parse(Buffer.from(raw.value).toString());
this.logger.log(`Object retrieved ${hash}`, object);
return { id: hash, object: object };
})
.catch(e => {
private getObjectBuffer(object: object): Buffer {
return Buffer.from(JSON.stringify(object));
}