Adjust route structure

- Items now accessed through servers/:serverId
- Auth middleware blanketly applied on routes
- Merge params on routes
This commit is contained in:
jeffvli
2022-10-12 13:45:33 -07:00
parent 21bf5ce523
commit ea2d3ea8f1
9 changed files with 66 additions and 78 deletions
+4 -13
View File
@@ -1,17 +1,8 @@
import express, { Router } from 'express';
import { albumArtistsController } from '../controllers';
import { authenticateLocal } from '../middleware';
import { controller } from '../controllers';
export const albumArtistsRouter: Router = express.Router();
export const router: Router = express.Router({ mergeParams: true });
albumArtistsRouter.get(
'/',
authenticateLocal,
albumArtistsController.getAlbumArtists
);
router.get('/', controller.albumArtists.getAlbumArtists);
albumArtistsRouter.get(
'/:id',
authenticateLocal,
albumArtistsController.getAlbumArtistById
);
router.get('/:id', controller.albumArtists.getAlbumArtistById);
+4 -5
View File
@@ -1,9 +1,8 @@
import express, { Router } from 'express';
import { albumsController } from '../controllers';
import { authenticateLocal } from '../middleware';
import { controller } from '../controllers';
export const albumsRouter: Router = express.Router();
export const router: Router = express.Router({ mergeParams: true });
albumsRouter.get('/', authenticateLocal, albumsController.getAlbums);
router.get('/', controller.albums.getAlbumList);
albumsRouter.get('/:id', authenticateLocal, albumsController.getAlbumById);
router.get('/:id', controller.albums.getAlbumDetail);
+4 -5
View File
@@ -1,9 +1,8 @@
import express, { Router } from 'express';
import { artistsController } from '../controllers';
import { authenticateLocal } from '../middleware';
import { controller } from '../controllers';
export const artistsRouter: Router = express.Router();
export const router: Router = express.Router({ mergeParams: true });
artistsRouter.get('/', authenticateLocal, artistsController.getArtists);
router.get('/', controller.artists.getArtists);
artistsRouter.get('/:id', authenticateLocal, artistsController.getArtistById);
router.get('/:id', controller.artists.getArtistById);
+8 -8
View File
@@ -1,16 +1,16 @@
import express, { Router } from 'express';
import passport from 'passport';
import { authController } from '../controllers';
import { authenticateLocal } from '../middleware';
import { controller } from '../controllers';
import { authenticate } from '../middleware';
export const authRouter: Router = express.Router();
export const router: Router = express.Router({ mergeParams: true });
authRouter.post('/login', passport.authenticate('local'), authController.login);
router.post('/login', passport.authenticate('local'), controller.auth.login);
authRouter.post('/register', authController.register);
router.post('/register', controller.auth.register);
authRouter.post('/logout', authenticateLocal, authController.logout);
router.post('/logout', authenticate, controller.auth.logout);
authRouter.post('/refresh', authController.refresh);
router.post('/refresh', controller.auth.refresh);
authRouter.get('/ping', authController.ping);
router.get('/ping', controller.auth.ping);
+27 -14
View File
@@ -1,20 +1,33 @@
import { Router } from 'express';
import { albumArtistsRouter } from './album-artists.route';
import { albumsRouter } from './albums.route';
import { artistsRouter } from './artists.route';
import { authRouter } from './auth.route';
import { serversRouter } from './servers.route';
import { songsRouter } from './songs.route';
import { tasksRouter } from './tasks.route';
import { usersRouter } from './users.route';
import { helpers } from '../helpers';
import { authenticate } from '../middleware';
import { router as albumArtistsRouter } from './album-artists.route';
import { router as albumsRouter } from './albums.route';
import { router as artistsRouter } from './artists.route';
import { router as authRouter } from './auth.route';
import { router as serversRouter } from './servers.route';
import { router as songsRouter } from './songs.route';
import { router as tasksRouter } from './tasks.route';
import { router as usersRouter } from './users.route';
export const routes = Router();
export const routes = Router({ mergeParams: true });
routes.use('/api/auth', authRouter);
routes.use('/api/servers', serversRouter);
routes.use(authenticate, (_req, _res, next) => {
next();
});
routes.use('/api/tasks', tasksRouter);
routes.use('/api/users', usersRouter);
routes.use('/api/album-artists', albumArtistsRouter);
routes.use('/api/artists', artistsRouter);
routes.use('/api/albums', albumsRouter);
routes.use('/api/songs', songsRouter);
routes.use('/api/servers', serversRouter);
routes.param('serverId', (req, _res, next, serverId) => {
helpers.shared.checkServerPermissions(req.auth, { serverId });
next();
});
routes.use('/api/servers/:serverId/album-artists', albumArtistsRouter);
routes.use('/api/servers/:serverId/artists', artistsRouter);
routes.use('/api/servers/:serverId/albums', albumsRouter);
routes.use('/api/servers/:serverId/songs', songsRouter);
+9 -21
View File
@@ -1,29 +1,17 @@
import express, { Router } from 'express';
import { serversController } from '../controllers';
import { authenticateAdmin, authenticateLocal } from '../middleware';
import { controller } from '../controllers';
import { authenticateAdmin } from '../middleware';
export const serversRouter: Router = express.Router();
export const router: Router = express.Router({ mergeParams: true });
serversRouter.get('/', authenticateLocal, serversController.getServers);
router.get('/', controller.servers.getServerList);
serversRouter.get('/:id', authenticateLocal, serversController.getServerById);
router.post('/', authenticateAdmin, controller.servers.createServer);
serversRouter.get(
'/:id/refresh',
authenticateAdmin,
serversController.refreshServer
);
router.get('/:id', controller.servers.getServerDetail);
serversRouter.get(
'/:id/folder',
authenticateAdmin,
serversController.getFolder
);
router.get('/:id/refresh', authenticateAdmin, controller.servers.refreshServer);
serversRouter.post('/', authenticateAdmin, serversController.createServer);
router.get('/:id/folder', authenticateAdmin, controller.servers.getFolder);
serversRouter.post(
'/:id/scan',
authenticateAdmin,
serversController.scanServer
);
router.post('/:id/scan', authenticateAdmin, controller.servers.scanServer);
+3 -4
View File
@@ -1,7 +1,6 @@
import express, { Router } from 'express';
import { songsController } from '../controllers/songs.controller';
import { authenticateLocal } from '../middleware';
import { controller } from '../controllers';
export const songsRouter: Router = express.Router();
export const router: Router = express.Router({ mergeParams: true });
songsRouter.get('/', authenticateLocal, songsController.getSongs);
router.get('/', controller.songs.getSongs);
+3 -3
View File
@@ -1,11 +1,11 @@
import express, { Router } from 'express';
export const tasksRouter: Router = express.Router();
export const router: Router = express.Router({ mergeParams: true });
tasksRouter.post('/scan', async (_req, res) => {
router.post('/scan', async (_req, res) => {
return res.status(200);
});
tasksRouter.post('/', async (_req, res) => {
router.post('/', async (_req, res) => {
return res.status(200).json({});
});
+4 -5
View File
@@ -1,9 +1,8 @@
import express, { Router } from 'express';
import { usersController } from '../controllers';
import { authenticateLocal } from '../middleware';
import { controller } from '../controllers';
export const usersRouter: Router = express.Router();
export const router: Router = express.Router({ mergeParams: true });
usersRouter.get('/', authenticateLocal, usersController.getUsers);
router.get('/', controller.users.getUsers);
usersRouter.get('/:id', authenticateLocal, usersController.getUser);
router.get('/:id', controller.users.getUser);