1234567891011121314151617181920212223242526272829303132 |
- 'use strict'
- import express from 'express'
- import _fs, { promises as fs } from 'fs'
- import boom from 'boom'
- import { imagesPath } from '../config'
- import { asyncMiddleware } from '../functions'
- const router = express.Router()
- // Route which returns a list of all available scenes in the `imagesPath` directory
- /**
- * Get a list of all available scenes
- *
- * @returns {string[]} the available scenes
- */
- const getAvailableScenes = async () => {
- try {
- // Check if the directory which contains images exists
- await fs.access(imagesPath, _fs.constants.R_OK)
- }
- catch (err) {
- // The images directory does not exist or is not accessible
- throw boom.badRequest(`Can't access the "${imagesPath}" directory. Check it exists and you have read permission on it.`)
- }
- return fs.readdir(imagesPath)
- }
- router.get('/', asyncMiddleware(async (req, res) => res.json(await getAvailableScenes())))
- export default router
|