This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

semble / src / modules / cards / infrastructure / http / routes / cardRoutes.ts
5.7 kB 131 lines
1import { Router } from 'express'; 2import { AddUrlToLibraryController } from '../controllers/AddUrlToLibraryController'; 3import { AddCardToLibraryController } from '../controllers/AddCardToLibraryController'; 4import { AddCardToCollectionController } from '../controllers/AddCardToCollectionController'; 5import { UpdateNoteCardController } from '../controllers/UpdateNoteCardController'; 6import { UpdateUrlCardAssociationsController } from '../controllers/UpdateUrlCardAssociationsController'; 7import { RemoveCardFromLibraryController } from '../controllers/RemoveCardFromLibraryController'; 8import { RemoveCardFromCollectionController } from '../controllers/RemoveCardFromCollectionController'; 9import { GetUrlMetadataController } from '../controllers/GetUrlMetadataController'; 10import { GetUrlCardViewController } from '../controllers/GetUrlCardViewController'; 11import { GetLibrariesForCardController } from '../controllers/GetLibrariesForCardController'; 12import { GetMyUrlCardsController } from '../controllers/GetMyUrlCardsController'; 13import { GetUserUrlCardsController } from '../controllers/GetUserUrlCardsController'; 14import { GetUrlStatusForMyLibraryController } from '../controllers/GetUrlStatusForMyLibraryController'; 15import { GetLibrariesForUrlController } from '../controllers/GetLibrariesForUrlController'; 16import { GetNoteCardsForUrlController } from '../controllers/GetNoteCardsForUrlController'; 17import { AuthMiddleware } from 'src/shared/infrastructure/http/middleware'; 18 19export function createCardRoutes( 20 authMiddleware: AuthMiddleware, 21 addUrlToLibraryController: AddUrlToLibraryController, 22 addCardToLibraryController: AddCardToLibraryController, 23 addCardToCollectionController: AddCardToCollectionController, 24 updateNoteCardController: UpdateNoteCardController, 25 updateUrlCardAssociationsController: UpdateUrlCardAssociationsController, 26 removeCardFromLibraryController: RemoveCardFromLibraryController, 27 removeCardFromCollectionController: RemoveCardFromCollectionController, 28 getUrlMetadataController: GetUrlMetadataController, 29 getUrlCardViewController: GetUrlCardViewController, 30 getLibrariesForCardController: GetLibrariesForCardController, 31 getMyUrlCardsController: GetMyUrlCardsController, 32 getUserUrlCardsController: GetUserUrlCardsController, 33 getUrlStatusForMyLibraryController: GetUrlStatusForMyLibraryController, 34 getLibrariesForUrlController: GetLibrariesForUrlController, 35 getNoteCardsForUrlController: GetNoteCardsForUrlController, 36): Router { 37 const router = Router(); 38 39 // Query routes 40 // GET /api/cards/metadata - Get URL metadata 41 router.get('/metadata', authMiddleware.optionalAuth(), (req, res) => 42 getUrlMetadataController.execute(req, res), 43 ); 44 45 // GET /api/cards/my - Get my URL cards 46 router.get('/my', authMiddleware.ensureAuthenticated(), (req, res) => 47 getMyUrlCardsController.execute(req, res), 48 ); 49 50 // GET /api/cards/library/status - Get URL status for my library 51 router.get( 52 '/library/status', 53 authMiddleware.ensureAuthenticated(), 54 (req, res) => getUrlStatusForMyLibraryController.execute(req, res), 55 ); 56 57 // GET /api/cards/libraries/url - Get libraries for URL 58 router.get('/libraries/url', authMiddleware.optionalAuth(), (req, res) => 59 getLibrariesForUrlController.execute(req, res), 60 ); 61 62 // GET /api/cards/notes/url - Get note cards for URL 63 router.get('/notes/url', authMiddleware.optionalAuth(), (req, res) => 64 getNoteCardsForUrlController.execute(req, res), 65 ); 66 67 // GET /api/cards/user/:identifier - Get user's URL cards by identifier 68 router.get('/user/:identifier', authMiddleware.optionalAuth(), (req, res) => 69 getUserUrlCardsController.execute(req, res), 70 ); 71 72 // GET /api/cards/:cardId - Get URL card view 73 router.get('/:cardId', authMiddleware.optionalAuth(), (req, res) => 74 getUrlCardViewController.execute(req, res), 75 ); 76 77 // GET /api/cards/:cardId/libraries - Get libraries for card 78 router.get('/:cardId/libraries', authMiddleware.optionalAuth(), (req, res) => 79 getLibrariesForCardController.execute(req, res), 80 ); 81 82 // Command routes 83 // POST /api/cards/library/urls - Add URL to library (with optional note and collections) 84 router.post( 85 '/library/urls', 86 authMiddleware.ensureAuthenticated(), 87 (req, res) => addUrlToLibraryController.execute(req, res), 88 ); 89 90 // POST /api/cards/library - Add existing card to library 91 router.post('/library', authMiddleware.ensureAuthenticated(), (req, res) => 92 addCardToLibraryController.execute(req, res), 93 ); 94 95 // POST /api/cards/collections - Add card to collections 96 router.post( 97 '/collections', 98 authMiddleware.ensureAuthenticated(), 99 (req, res) => addCardToCollectionController.execute(req, res), 100 ); 101 102 // PUT /api/cards/:cardId/note - Update note card content 103 router.put( 104 '/:cardId/note', 105 authMiddleware.ensureAuthenticated(), 106 (req, res) => updateNoteCardController.execute(req, res), 107 ); 108 109 // PUT /api/cards/url/associations - Update URL card associations (note, collections) 110 router.put( 111 '/url/associations', 112 authMiddleware.ensureAuthenticated(), 113 (req, res) => updateUrlCardAssociationsController.execute(req, res), 114 ); 115 116 // DELETE /api/cards/:cardId/library - Remove card from user's library 117 router.delete( 118 '/:cardId/library', 119 authMiddleware.ensureAuthenticated(), 120 (req, res) => removeCardFromLibraryController.execute(req, res), 121 ); 122 123 // DELETE /api/cards/:cardId/collections - Remove card from specified collections 124 router.delete( 125 '/:cardId/collections', 126 authMiddleware.ensureAuthenticated(), 127 (req, res) => removeCardFromCollectionController.execute(req, res), 128 ); 129 130 return router; 131}