import express from "express";
import { getStores, addStore, removeStore } from "../stores";

const router = express.Router();

router.get("/", async (_req, res, next) => {
    try {
        const stores = await getStores();
        res.status(200).json(stores);
    } catch (e: any) { next(e); }
});

router.post("/add", async (req, res, next) => {
    const { name, heslo } = req.body ?? {};
    if (!name || typeof name !== 'string') {
        return res.status(400).json({ error: 'Nebyl předán název obchodu' });
    }
    if (!heslo || typeof heslo !== 'string') {
        return res.status(400).json({ error: 'Nebylo předáno heslo' });
    }
    try {
        const stores = await addStore(name, heslo);
        res.status(200).json(stores);
    } catch (e: any) {
        if (e.message === 'UNAUTHORIZED') {
            return res.status(403).json({ error: 'Nesprávné heslo' });
        }
        next(e);
    }
});

router.post("/delete", async (req, res, next) => {
    const { name, heslo } = req.body ?? {};
    if (!name || typeof name !== 'string') {
        return res.status(400).json({ error: 'Nebyl předán název obchodu' });
    }
    if (!heslo || typeof heslo !== 'string') {
        return res.status(400).json({ error: 'Nebylo předáno heslo' });
    }
    try {
        const stores = await removeStore(name, heslo);
        res.status(200).json(stores);
    } catch (e: any) {
        if (e.message === 'UNAUTHORIZED') {
            return res.status(403).json({ error: 'Nesprávné heslo' });
        }
        next(e);
    }
});

export default router;
