Skip to content

Commit 12747ee

Browse files
committed
Fix issues
1 parent dce6e6a commit 12747ee

2 files changed

Lines changed: 22 additions & 12 deletions

File tree

src/fib.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
// src/fib.ts
2-
export default function fibonacci(n: number): number {
2+
export function fibonacci(n: number): number {
33
if (n < 0) return -1;
44
if (n === 0) return 0;
55
if (n === 1) return 1;
66

77
let a = 0;
88
let b = 1;
99
for (let i = 2; i <= n; i++) {
10-
const next = a + b; // both are number
10+
const next = a + b;
1111
a = b;
1212
b = next;
1313
}

src/fibRoute.ts

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,26 @@
1-
// Endpoint for querying the fibonacci numbers
1+
// src/fibRoute.ts
2+
import type { Request, Response } from "express";
3+
import { fibonacci } from "./fib";
24

3-
const fibonacci = require("./fib");
5+
export default function fibRoute(req: Request, res: Response): void {
6+
const numParam: string | undefined = req.params?.num;
47

5-
export default (req, res) => {
6-
const { num } = req.params;
7-
8-
const fibN = fibonacci(parseInt(num));
9-
let result = `fibonacci(${num}) is ${fibN}`;
8+
if (typeof numParam !== "string") {
9+
res.status(400).send("Missing route parameter 'num'");
10+
return;
11+
}
1012

11-
if (fibN < 0) {
12-
result = `fibonacci(${num}) is undefined`;
13+
const n = Number.parseInt(numParam, 10);
14+
if (Number.isNaN(n)) {
15+
res.status(400).send(`Invalid number: "${numParam}"`);
16+
return;
1317
}
1418

19+
const fibN = fibonacci(n);
20+
const result =
21+
fibN < 0
22+
? `fibonacci(${n}) is undefined`
23+
: `fibonacci(${n}) is ${fibN}`;
24+
1525
res.send(result);
16-
};
26+
}

0 commit comments

Comments
 (0)