File size: 1,076 Bytes
07436b8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const express = require('express');
const log = require('../helpers/logger');
const { checkGenresExistForLanguage, fetchAndStoreGenres } = require('../api/tmdb');
const generateManifest = require('../helpers/manifest');

const router = express.Router();

router.get("/:configParameters?/manifest.json", async (req, res) => {
    const { configParameters } = req.params;
    const config = configParameters ? JSON.parse(decodeURIComponent(configParameters)) : {};
    const { language, tmdbApiKey } = config;

    log.debug(`Manifest request for language: ${language}`);

    try {
        if (language && !(await checkGenresExistForLanguage(language))) {
            log.debug(`Fetching genres for language: ${language}`);
            await fetchAndStoreGenres(language, tmdbApiKey);
        }

        const manifest = await generateManifest(language);
        res.json(manifest);
    } catch (error) {
        log.error(`Error generating manifest: ${error.message}`);
        res.status(500).json({ error: 'Error generating manifest' });
    }
});

module.exports = router;