Files
mantra.press/server/router/fork/index.js

61 lines
2.2 KiB
JavaScript

const express = require('express');
module.exports = function (options) {
const db = options.db;
var router = express.Router();
router.route('/t/:id')
.post(function(request, response, next) {
db.TranslationEntryVersion.findByPk(request.params.id, {
}).then(async (translationEntryVersion) => {
if (translationEntryVersion) {
// fork...
const forkedTranslationEntryVersion = await db.TranslationEntryVersion.create({
name: translationEntryVersion.name,
entryVersionId: translationEntryVersion.entryVersionId,
userId: request.user.id,
dialectId: translationEntryVersion.dialectId,
forkedFromId: translationEntryVersion.id
})
if (forkedTranslationEntryVersion) {
return response.redirect(`/v/${forkedTranslationEntryVersion.entryVersionId}/translations/${forkedTranslationEntryVersion.id}`)
} else {
next()
}
} else {
next()
}
}).catch(error => {
next(error)
})
})
router.route('/e/:id')
.get(function(request, response, next) {
db.TranslationEntryVersion.findByPk(request.params.id, {
}).then(translationEntryVersion => {
if (translationEntryVersion) {
// choose a dialect
next()
} else {
next()
}
}).catch(error => {
next(error)
})
})
.post(function(request, response, next) {
db.TranslationEntryVersion.findByPk(request.params.id, {
}).then(translationEntryVersion => {
if (translationEntryVersion) {
// fork...
next()
} else {
next()
}
}).catch(error => {
next(error)
})
})
return router;
};