require('dotenv').config()

const express = require("express")
const path = require("path")
const cors = require("cors")
const mlib = require("../../node_lib")

let app = null

const { LISTENING_PORT } = process.env
const PORT = LISTENING_PORT || 3000

async function main() {
    app = express()

    app.use(cors())
    app.use(express.json())

    app.get("/api", async (req, res) => {
        let { random } = req.query

        // try to parse random, can be a number or a boolean
        if (random) {
            if (random === "true") {
                random = true
            } else if (Number(random)) {
                random = Number(random)
            }
        }

        const phrases = await mlib({ random })

        res.json(phrases)
    })

    app.use(express.static(path.join(__dirname, "..", "web", "dist",)))

    // serve static react build
    app.get("*", (req, res) => {
        res.sendFile(path.join(__dirname, "..", "web", "dist", "index.html"))
    })

    app.listen(PORT)

    console.log(`Listening on port ${PORT}`)
}

main().catch(console.error)