const AnimeRepository = require('../database/AnimeRepository');
const imageConfig = require ('../../config/image.json');

async function GetDescription(req, res) {
    try {
        if(!req.session.isLogged) {
            console.error('DESCRYPTION ERROR: Urzytkownik nie jest zalogowany');
            return res.status(401).json(null);
        }

        const anime_id = req.query.anime;

        if(isNaN(anime_id)) {
            console.error('DESCRYPTION ERROR: Błędne dane wejściowe');
            return res.status(400).json(null);
        }

        const des = await AnimeRepository.GetDescription(anime_id, req.session.user_id);

        if(!des) {
            console.error('DESCRYPTION ERROR: Nie pobrano danych z DB')
            return res.status(500).json(null);
        }

        const img = des.ds_poster ? `data:image/${imageConfig.type};base64,${Buffer.from(des.ds_poster).toString('base64')}` : null;

        const result = {
            title: des.an_title,
            episodes: des.an_episodes,
            description: des.ds_description,
            img: img
        };

        res.status(200).json(result);
    }
    catch(e) {
        console.error(`Nie udało się pobrać opisu! ${e}`);
        res.status(500).json(null);
    }
}

module.exports = GetDescription;