diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..03dc970 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM node:20-alpine +LABEL authors="deltreey" + +COPY package.json . +COPY package-lock.json . +RUN npm install --production + +COPY . . + +ENTRYPOINT ["npm"] +CMD ["start"] diff --git a/app.js b/app.js index 127cb5c..49b668c 100644 --- a/app.js +++ b/app.js @@ -5,7 +5,7 @@ var cookieParser = require('cookie-parser'); var logger = require('morgan'); var indexRouter = require('./routes/index'); -var usersRouter = require('./routes/users'); +var punRouter = require('./routes/pun'); var app = express(); @@ -20,7 +20,7 @@ app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', indexRouter); -app.use('/users', usersRouter); +app.use('/pun', punRouter); // catch 404 and forward to error handler app.use(function(req, res, next) { diff --git a/routes/index.js b/routes/index.js index ecca96a..5be5a99 100644 --- a/routes/index.js +++ b/routes/index.js @@ -3,7 +3,7 @@ var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { - res.render('index', { title: 'Express' }); + res.render('index', { title: 'The Punisher' }); }); module.exports = router; diff --git a/routes/pun.js b/routes/pun.js new file mode 100644 index 0000000..71b9b79 --- /dev/null +++ b/routes/pun.js @@ -0,0 +1,25 @@ +var express = require('express'); +var router = express.Router(); + +/* GET users listing. */ +router.get('/', async function(req, res, next) { + let response = await fetch('https://v2.jokeapi.dev/joke/Pun?blacklistFlags=nsfw,explicit'); + let jsonData = await response.json(); + console.log(jsonData); + let joke = jsonData['joke']; + if (!joke) { + joke = jsonData['setup'] + '
' + jsonData['delivery']; + } + res.send(joke); +}); + +router.get('/query', async function(req, res, next) { + let word = req.query.word; + let response = await fetch('https://rhymezone.com/api/words?k=rza&arhy=1&max=500&qe=sl&md=fpdlr&sl=' + encodeURIComponent(word)); + let jsonData = await response.json(); + let result = jsonData.map((item) => item.word); + result.shift(); // the first answer is the word we sent + res.send(result); +}); + +module.exports = router; diff --git a/routes/users.js b/routes/users.js deleted file mode 100644 index 623e430..0000000 --- a/routes/users.js +++ /dev/null @@ -1,9 +0,0 @@ -var express = require('express'); -var router = express.Router(); - -/* GET users listing. */ -router.get('/', function(req, res, next) { - res.send('respond with a resource'); -}); - -module.exports = router; diff --git a/views/index.hbs b/views/index.hbs index 1f308fd..40cbcd3 100644 --- a/views/index.hbs +++ b/views/index.hbs @@ -1,2 +1,23 @@

{{title}}

Welcome to {{title}}

+ +

+ + +

+