diff --git a/src/fibRoute.ts b/src/fibRoute.ts index 2d41ca5..63977ea 100644 --- a/src/fibRoute.ts +++ b/src/fibRoute.ts @@ -1,16 +1,21 @@ -// Endpoint for querying the fibonacci numbers +// Endpoint for querying the fibonacci numbers. +import { Request, Response } from 'express'; +import { fibonacci } from './fib'; -const fibonacci = require("./fib"); +export default function fibonacciHandler(req: Request, res: Response): void { + const numStr: string = req.params.num; + const num: number = parseInt(numStr, 10); -export default (req, res) => { - const { num } = req.params; - - const fibN = fibonacci(parseInt(num)); - let result = `fibonacci(${num}) is ${fibN}`; - - if (fibN < 0) { - result = `fibonacci(${num}) is undefined`; + // Check if the parsed number is valid + if (isNaN(num)) { + res.status(400).send('Invalid number provided'); + return; } + const fibN: number = fibonacci(num); + const result: string = fibN < 0 + ? fibonacci(${num}) is undefined + : fibonacci(${num}) is ${fibN}; + res.send(result); -}; +}