Initial commit
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
const router = require('express-promise-router')()
|
||||
|
||||
const {
|
||||
listComments,
|
||||
createComment,
|
||||
seedComments,
|
||||
clearComments,
|
||||
updateStatus
|
||||
} = require('../../../controllers/api/v1/comments')
|
||||
|
||||
// List comments (one page).
|
||||
router.get('/', listComments)
|
||||
|
||||
// TEMP - Seed comments.
|
||||
router.get('/seed/:commentCount', seedComments)
|
||||
|
||||
// TEMP - Clear comments.
|
||||
router.get('/clear', clearComments)
|
||||
|
||||
// All further routes are only available to authenticated users.
|
||||
router.use((req, res, next) => {
|
||||
if (req.isAuthenticated()) return next()
|
||||
res.status(400).end()
|
||||
})
|
||||
|
||||
// Create new comment.
|
||||
router.post('/', createComment)
|
||||
|
||||
// Change comment's visibility status
|
||||
router.post('/updateStatus', updateStatus)
|
||||
|
||||
module.exports = router
|
||||
@@ -0,0 +1,77 @@
|
||||
const router = require('express-promise-router')()
|
||||
|
||||
const {
|
||||
assign,
|
||||
listEntries,
|
||||
listNewEntries,
|
||||
createQuestion,
|
||||
deleteQuestion,
|
||||
updateDomain,
|
||||
insertConsultantAndHisDomainsByUsername,
|
||||
insertNonModerator,
|
||||
deleteConsultantForEntry,
|
||||
getSharedAuthors,
|
||||
getSharedAuthorsBeforePublish,
|
||||
removeConsultant,
|
||||
reject,
|
||||
sendToReview,
|
||||
publish,
|
||||
updateQuestion,
|
||||
updateSharedAuthors
|
||||
} = require('../../../controllers/api/v1/consultancy')
|
||||
|
||||
// All routes require an authenticated user.
|
||||
router.use((req, res, next) => {
|
||||
if (req.isAuthenticated()) return next()
|
||||
res.status(400).send('Unauthenticated')
|
||||
})
|
||||
|
||||
router.get('/entry', listEntries)
|
||||
|
||||
router.get('/new-entry', listNewEntries)
|
||||
|
||||
router.post('/entry', createQuestion)
|
||||
|
||||
router.put('/entry', updateQuestion)
|
||||
|
||||
// Authorize endpoints for portal admin below.
|
||||
router.use((req, res, next) => {
|
||||
if (req.user.hasRole('portal admin')) return next()
|
||||
res.status(400).send('Unauthorized')
|
||||
})
|
||||
|
||||
// router.use(checkUserAdminPrivilegeUltility)
|
||||
|
||||
router.post(
|
||||
'/add-consultant-by-username',
|
||||
insertConsultantAndHisDomainsByUsername
|
||||
)
|
||||
|
||||
router.post('/add-non-moderator', insertNonModerator)
|
||||
|
||||
// Remove user from role "consultant"
|
||||
// body params: id -> user's id
|
||||
|
||||
router.get('/get-shared-authors', getSharedAuthorsBeforePublish)
|
||||
|
||||
router.get('/get-shared-authors-publish', getSharedAuthors)
|
||||
|
||||
router.put('/update-consultant-domain', updateDomain)
|
||||
|
||||
router.put('/update-shared-authors', updateSharedAuthors)
|
||||
|
||||
router.put('/assign', assign)
|
||||
|
||||
router.put('/reject', reject)
|
||||
|
||||
router.put('/review', sendToReview)
|
||||
|
||||
router.put('/publish', publish)
|
||||
|
||||
router.delete('/delete-consultant', removeConsultant)
|
||||
|
||||
router.delete('/delete-consultant-author', deleteConsultantForEntry)
|
||||
|
||||
router.delete('/delete', deleteQuestion)
|
||||
|
||||
module.exports = router
|
||||
@@ -0,0 +1,7 @@
|
||||
const router = require('express-promise-router')()
|
||||
const demoPaginacija = require('../../../controllers/api/v1/demo-paginacija')
|
||||
|
||||
// Tale endpoint vrača rezultate.
|
||||
router.get('/list', demoPaginacija.list)
|
||||
|
||||
module.exports = router
|
||||
@@ -0,0 +1,35 @@
|
||||
const router = require('express-promise-router')()
|
||||
|
||||
const dictionaries = require('../../../controllers/api/v1/dictionaries')
|
||||
|
||||
// Update domain labels.
|
||||
router.post('/update-domain-labels', dictionaries.updateDomainLabels)
|
||||
|
||||
// Update secondary domains
|
||||
router.post('/renovateSecondaryDomains', dictionaries.renovateSecondaryDomains)
|
||||
|
||||
// Delete specific dictionary.
|
||||
router.delete('/:dictionaryId', dictionaries.delete)
|
||||
|
||||
// Change page in pagination
|
||||
router.get('/listAllDictionaries', dictionaries.listDictionaries)
|
||||
|
||||
// Change page in pagination
|
||||
router.get('/:dictionaryId/listDomainLabels', dictionaries.listDomainLabels)
|
||||
|
||||
// Change page in pagination
|
||||
router.get('/listSecondaryDomains', dictionaries.listSecondaryDomains)
|
||||
|
||||
// Delete all entries of specific dictionary.
|
||||
router.delete('/:dictionaryId/entries/all', dictionaries.deleteAllEntries)
|
||||
|
||||
// Publish all entries of specific dictionary.
|
||||
router.put('/:dictionaryId/entries/all/publish', dictionaries.publishAllEntries)
|
||||
|
||||
// Import term candidates from extraction.
|
||||
router.post(
|
||||
'/:id/import/extraction/:extractionId',
|
||||
dictionaries.extractionImport
|
||||
)
|
||||
|
||||
module.exports = router
|
||||
@@ -0,0 +1,33 @@
|
||||
// This page refers to dictionary entries, not consultancy or other entries
|
||||
const router = require('express-promise-router')()
|
||||
|
||||
const {
|
||||
getEntry,
|
||||
updateEntry,
|
||||
createEntry,
|
||||
fetchEntries,
|
||||
deleteEntry,
|
||||
getEntryVersionSnapshot
|
||||
} = require('../../../controllers/api/v1/dictionaries')
|
||||
|
||||
// TODO Add authorization.
|
||||
|
||||
// Render entry data for the selected entry
|
||||
router.get('/', getEntry)
|
||||
|
||||
// Create entry
|
||||
router.post('/create', createEntry)
|
||||
|
||||
// Update entry
|
||||
router.post('/update', updateEntry)
|
||||
|
||||
// Get all entries
|
||||
router.get('/fetch-terms', fetchEntries)
|
||||
|
||||
// Delete selected entry
|
||||
router.delete('/delete-entry', deleteEntry)
|
||||
|
||||
// Get single entry version history snapshot.
|
||||
router.get('/:entryId/version-snapshots/:version', getEntryVersionSnapshot)
|
||||
|
||||
module.exports = router
|
||||
@@ -0,0 +1,54 @@
|
||||
const router = require('express-promise-router')()
|
||||
|
||||
const extraction = require('../../../controllers/api/v1/extraction')
|
||||
|
||||
// TODO In final version test authentication and authorization.
|
||||
// TODO Also try to lock file editing or other operations once extraction was started.
|
||||
|
||||
// Delete extraction.
|
||||
router.delete('/:id', extraction.delete)
|
||||
|
||||
// List documents.
|
||||
router.get('/:id/documents', extraction.docsList)
|
||||
|
||||
// Update documents.
|
||||
router.put('/:id/documents', extraction.docsUpdate)
|
||||
|
||||
// Delete a specific document.
|
||||
router.delete('/:id/documents/:filename', extraction.docDelete)
|
||||
|
||||
// List stop term files.
|
||||
router.get('/:id/stop-terms', extraction.stopTermsList)
|
||||
|
||||
// Update stop term files.
|
||||
router.put('/:id/stop-terms', extraction.stopTermsUpdate)
|
||||
|
||||
// Delete a specific stop term file.
|
||||
router.delete('/:id/stop-terms/:filename', extraction.stopTermDelete)
|
||||
|
||||
// Save oss params.
|
||||
router.post('/:id/oss-save-params', extraction.ossSaveParams)
|
||||
|
||||
// Execute search by oss params.
|
||||
router.put('/:id/oss-search', extraction.ossSearch)
|
||||
|
||||
// Confirm oss params.
|
||||
router.put('/:id/oss-confirm-params', extraction.ossConfirmParams)
|
||||
|
||||
// Begin extraction.
|
||||
router.put('/:id/begin', extraction.begin)
|
||||
|
||||
// Duplicate extraction.
|
||||
router.post('/:id/duplicate', extraction.duplicate)
|
||||
|
||||
// Export term candidates.
|
||||
router.get('/:id/term-candidates-export', extraction.termCandidatesExport)
|
||||
|
||||
// List all finished extractions for current user.
|
||||
// TODO Is this enpoint even necessarry?
|
||||
router.get('/finished-for-user', extraction.listFinishedForUser)
|
||||
|
||||
// List term candidates for specific extraction.
|
||||
router.get('/:id/term-candidates', extraction.listTermCandidates)
|
||||
|
||||
module.exports = router
|
||||
@@ -0,0 +1,24 @@
|
||||
const router = require('express-promise-router')()
|
||||
const commentsRouter = require('./comments')
|
||||
const systemRouter = require('./system')
|
||||
const usersRouter = require('./users')
|
||||
const entriesRouter = require('./entries')
|
||||
const dictionariesRouter = require('./dictionaries')
|
||||
const portalsRouter = require('./portals')
|
||||
const searchRouter = require('./search')
|
||||
const consultancyRouter = require('./consultancy')
|
||||
const demoPaginacijaRouter = require('./demo-paginacija')
|
||||
const extractionRouter = require('./extraction')
|
||||
|
||||
router.use('/comments', commentsRouter)
|
||||
router.use('/system', systemRouter)
|
||||
router.use('/users', usersRouter)
|
||||
router.use('/entries', entriesRouter)
|
||||
router.use('/dictionaries', dictionariesRouter)
|
||||
router.use('/portals', portalsRouter)
|
||||
router.use('/search', searchRouter)
|
||||
router.use('/consultancy', consultancyRouter)
|
||||
router.use('/demo-paginacija', demoPaginacijaRouter)
|
||||
router.use('/extraction', extractionRouter)
|
||||
|
||||
module.exports = router
|
||||
@@ -0,0 +1,34 @@
|
||||
const router = require('express-promise-router')()
|
||||
|
||||
const {
|
||||
create,
|
||||
syncRemoteDictionaries,
|
||||
fetchDictionary,
|
||||
updatePortalStatus,
|
||||
listSelectedLinkedDicts,
|
||||
listAllLinkedDicts,
|
||||
deleteLinkedDictionary
|
||||
} = require('../../../controllers/api/v1/portals')
|
||||
|
||||
// Create new portal connection
|
||||
router.post('/createPortal', create)
|
||||
|
||||
// Synchronize all dictionaries (without entries) for linked portal.
|
||||
router.put('/:linkedPortalId/dictionaries', syncRemoteDictionaries)
|
||||
|
||||
// Delete linked portal.
|
||||
router.delete('/:linkedPortalId/deleteLinkedDictionary', deleteLinkedDictionary)
|
||||
|
||||
// Fetch all dictionaries for selected portal
|
||||
router.get('/getMyDictionaries', fetchDictionary)
|
||||
|
||||
// Update selected portal status (enable or disable)
|
||||
router.post('/updatePortalStatus', updatePortalStatus)
|
||||
|
||||
// Fetch new page of dictionaries for pagination
|
||||
router.get('/:portalId/listSelectedLinkedDicts', listSelectedLinkedDicts)
|
||||
|
||||
// Fetch new page of all linked dictionaries for pagination
|
||||
router.get('/listAllLinkedDicts', listAllLinkedDicts)
|
||||
|
||||
module.exports = router
|
||||
@@ -0,0 +1,20 @@
|
||||
const router = require('express-promise-router')()
|
||||
const search = require('../../../controllers/api/v1/search')
|
||||
const user = require('../../../middleware/user')
|
||||
|
||||
// Return search results for main search.
|
||||
router.get('/main', search.listMainEntries)
|
||||
|
||||
// TODO This route assumes existance of user. Make sure to pre check it.
|
||||
// Return search results for editor search.
|
||||
router.get(
|
||||
'/editor/:dictionaryId',
|
||||
user.isDictionaryEditor,
|
||||
search.listEditorEntries
|
||||
)
|
||||
|
||||
router.get('/dictionaries', search.listFilteredDictionaries)
|
||||
|
||||
router.get('/term-filters', search.showModalFilterResults)
|
||||
|
||||
module.exports = router
|
||||
@@ -0,0 +1,23 @@
|
||||
const router = require('express-promise-router')()
|
||||
const system = require('../../../controllers/api/v1/system')
|
||||
const {
|
||||
listDictionaries,
|
||||
syncDictionary
|
||||
} = require('../../../controllers/api/v1/inter_instance_sync')
|
||||
|
||||
// Receive Content Security Policy violation reports.
|
||||
router.post('/csp-reports', system.handleCspReports)
|
||||
|
||||
// Trigger synchronization with Eurotermbank.
|
||||
router.get('/eurotermbank-sync-push', system.syncWithEurotermbank)
|
||||
|
||||
// List dictionaries (one page).
|
||||
router.get('/inter-instance-sync/dictionaries', listDictionaries)
|
||||
|
||||
// List dictionary entries updated since....
|
||||
router.get(
|
||||
'/inter-instance-sync/dictionary/:dictionaryId/entries',
|
||||
syncDictionary
|
||||
)
|
||||
|
||||
module.exports = router
|
||||
@@ -0,0 +1,19 @@
|
||||
const router = require('express-promise-router')()
|
||||
const user = require('../../../controllers/users')
|
||||
const users = require('../../../controllers/api/v1/users')
|
||||
|
||||
// Validate and create a new user.
|
||||
router.post('/register', user.register)
|
||||
|
||||
// Validate and log the user in.
|
||||
router.post('/login', user.login)
|
||||
|
||||
router.get('/addUser', user.findByUsernameOrEmail)
|
||||
|
||||
router.get('/listAllUsers', users.listUsers)
|
||||
|
||||
router.post('/hitsPerPage', users.updateHitsPerPage)
|
||||
|
||||
router.post('/nameAndSurname', users.updateFristNameAndSurname)
|
||||
|
||||
module.exports = router
|
||||
Reference in New Issue
Block a user