57 lines
2.8 KiB
JavaScript
57 lines
2.8 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const resourceController = require('../controllers/resourceController');
|
|
const scraperController = require('../controllers/scraperController');
|
|
const geocodingController = require('../controllers/geocodingController');
|
|
const routingController = require('../controllers/routingController');
|
|
const updateRequestController = require('../controllers/updateRequestController');
|
|
const adminAuth = require('../middleware/adminAuth');
|
|
|
|
// Resource endpoints
|
|
router.get('/resources', resourceController.getResources);
|
|
router.get('/resources/search', resourceController.searchResources);
|
|
router.get('/resources/nearby', resourceController.getNearbyResources);
|
|
router.get('/resources/map', resourceController.getAllResourcesForMap);
|
|
router.get('/resources/:id', resourceController.getResourceById);
|
|
|
|
// Filter options
|
|
router.get('/cities', resourceController.getCities);
|
|
router.get('/types', resourceController.getTypes);
|
|
|
|
// Stats
|
|
router.get('/stats', resourceController.getStats);
|
|
|
|
// Admin/scraper endpoints
|
|
router.post('/scrape', scraperController.triggerScrape);
|
|
router.get('/scrape/status', scraperController.getScrapeStatus);
|
|
router.get('/scrape/logs', scraperController.getScrapeLogs);
|
|
|
|
// Geocoding endpoints
|
|
router.get('/geocode', geocodingController.geocodeAddress);
|
|
router.get('/geocode/reverse', geocodingController.reverseGeocode);
|
|
router.post('/admin/resources/:id/regeocode', adminAuth, geocodingController.regeocodeResource);
|
|
|
|
// Routing/Directions endpoints
|
|
router.get('/directions', routingController.getDirections);
|
|
|
|
// Update request endpoints (public)
|
|
router.post('/resources/:id/update-request', updateRequestController.submitUpdateRequest);
|
|
|
|
// Listing submission endpoint (public)
|
|
router.post('/listings/submit', updateRequestController.submitListingSubmission);
|
|
|
|
// Admin endpoints (protected)
|
|
router.post('/admin/auth', updateRequestController.validateAuth);
|
|
router.get('/admin/update-requests', adminAuth, updateRequestController.getUpdateRequests);
|
|
router.get('/admin/update-requests/counts', adminAuth, updateRequestController.getRequestCounts);
|
|
router.post('/admin/update-requests/:id/approve', adminAuth, updateRequestController.approveRequest);
|
|
router.post('/admin/update-requests/:id/reject', adminAuth, updateRequestController.rejectRequest);
|
|
|
|
// Listing submissions admin endpoints (protected)
|
|
router.get('/admin/listing-submissions', adminAuth, updateRequestController.getListingSubmissions);
|
|
router.get('/admin/listing-submissions/counts', adminAuth, updateRequestController.getListingSubmissionCounts);
|
|
router.post('/admin/listing-submissions/:id/approve', adminAuth, updateRequestController.approveListingSubmission);
|
|
router.post('/admin/listing-submissions/:id/reject', adminAuth, updateRequestController.rejectListingSubmission);
|
|
|
|
module.exports = router;
|