123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- 'use strict'
- import express from 'express'
- import { promises as fs } from 'fs'
- import path from 'path'
- import boom from '@hapi/boom'
- import { asyncMiddleware } from '../functions'
- import { imagesPath } from '../../config'
- const router = express.Router()
- /**
- * @api {get} /listScenes /listScenes
- * @apiVersion 0.1.0
- * @apiName listScenes
- * @apiGroup API
- *
- * @apiDescription List all scenes availables in your `IMAGES_PATH` directory
- * @apiSampleRequest /listScenes
- *
- * @apiExample Usage example
- * curl -i -L -X GET "http://diran.univ-littoral.fr/api/listScenes"
- *
- * @apiSuccess {String[]} data List of available scenes
- * @apiSuccessExample {json} Success response example
- * HTTP/1.1 200 OK /api/listScenes
- * {
- * "data": [
- * "bathroom",
- * "contemporary",
- * ]
- * }
- *
- * @apiError (Error 5xx) 500_[1] Can't access the `IMAGES_PATH` directory
- * @apiErrorExample {json} Images directory not accessible
- * HTTP/1.1 500 Internal Server Error
- * {
- * "message": "Can't access the \"images\" directory. Check it exists and you have read permission on it"
- * }
- */
- /**
- * Get the list of all files in the images directory
- *
- * @returns {string[]} the list of files
- * @throws the directory does not exist or is not accessible
- */
- export const getSceneList = () => {
- return fs.readdir(imagesPath).catch(() => {
- throw boom.internal(`Can't access the "${path.basename(imagesPath)}" directory. Check it exists and you have read permission on it.`)
- })
- }
- // Route which returns a list of all available scenes in the `imagesPath` directory
- router.get('/', asyncMiddleware(async (req, res) => res.json({ data: await getSceneList() })))
- export default router
|