|
@@ -1,14 +1,32 @@
|
|
|
'use strict'
|
|
|
|
|
|
import express from 'express'
|
|
|
-import { asyncMiddleware, getAvailableScenes } from '../functions'
|
|
|
+import _fs, { promises as fs } from 'fs'
|
|
|
+import boom from 'boom'
|
|
|
+import { imagesPath } from '../config'
|
|
|
+import { asyncMiddleware } from '../functions'
|
|
|
|
|
|
const router = express.Router()
|
|
|
|
|
|
-router.get('/', asyncMiddleware(async (req, res) => {
|
|
|
- const dirContent = await getAvailableScenes()
|
|
|
- console.log('triggered')
|
|
|
- res.json(dirContent)
|
|
|
-}))
|
|
|
+// 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
|