@qelos/auth
Version:
Express Passport authentication service
73 lines (70 loc) • 2.4 kB
text/typescript
import { getRouter } from '@qelos/api-kit'
import {
createWorkspace,
updateWorkspace,
deleteWorkspace,
getWorkspace,
getWorkspaceByParams,
getWorkspaces,
onlyWorkspacePrivileged,
activateWorkspace,
getWorkspaceMembers,
addWorkspaceMember,
deleteWorkspaceMember,
updateWorkspaceMember,
getEveryWorkspaces,
getWorkspaceEncryptedData, setWorkspaceEncryptedData
} from '../controllers/workspace'
import verifyUser from '../middleware/verify-user'
import { onlyAuthenticated, onlyPrivileged } from '../middleware/auth-check'
const router = getRouter()
router
.get('/api/workspaces', verifyUser, onlyAuthenticated, getWorkspaces)
.get('/api/workspaces/all', verifyUser, onlyPrivileged, getEveryWorkspaces)
.post('/api/workspaces', verifyUser, onlyAuthenticated, createWorkspace)
.put(
'/api/workspaces/:workspaceId',
verifyUser,
onlyAuthenticated,
getWorkspaceByParams,
onlyWorkspacePrivileged,
updateWorkspace
)
.delete(
'/api/workspaces/:workspaceId',
verifyUser,
onlyAuthenticated,
getWorkspaceByParams,
onlyWorkspacePrivileged,
deleteWorkspace
)
.get(
'/api/workspaces/:workspaceId',
verifyUser,
onlyAuthenticated,
getWorkspaceByParams,
getWorkspace
)
.get(
'/api/workspaces/:workspaceId/members',
verifyUser,
onlyAuthenticated,
getWorkspaceByParams,
onlyWorkspacePrivileged,
getWorkspaceMembers
)
.post('/api/workspaces/:workspaceId/members', verifyUser, onlyPrivileged, getWorkspaceByParams, addWorkspaceMember)
.put('/api/workspaces/:workspaceId/members/:userId', verifyUser, onlyAuthenticated, getWorkspaceByParams, onlyWorkspacePrivileged, updateWorkspaceMember)
.delete('/api/workspaces/:workspaceId/members/:userId', verifyUser, onlyAuthenticated, getWorkspaceByParams, onlyWorkspacePrivileged, deleteWorkspaceMember)
.get('/api/workspaces/:workspaceId/encrypted', verifyUser, onlyPrivileged, getWorkspaceEncryptedData)
.post('/api/workspaces/:workspaceId/encrypted', verifyUser, onlyPrivileged, setWorkspaceEncryptedData)
.post('/api/workspaces/:workspaceId/activate', verifyUser, onlyAuthenticated, getWorkspaceByParams, activateWorkspace)
router
.get('/internal-api/workspaces', (req, _, next) => {
req.user = {
type: 'internal',
isPrivileged: true,
};
next();
}, getEveryWorkspaces)
export default router;