Skip to content

Commit 81e25f1

Browse files
committed
:sparkes: Creates the factorial route
1 parent 9011603 commit 81e25f1

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

src/controllers/Factorial/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { Request, Response } from 'express';
22
import { validationResult } from 'express-validator';
3+
import calcFactorial from '../../utils/calcFactorial';
34

45
class FactorialController {
56
compute(request: Request, response: Response) {
@@ -9,7 +10,8 @@ class FactorialController {
910
return response.status(400).json({ errors: errors.array() });
1011
}
1112

12-
return response.send("ok, it's working!");
13+
const result = calcFactorial(request.query.number).toString();
14+
return response.json({ result });
1315
}
1416
}
1517

src/routes.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ const route = Router();
88
const factorialController = new FactorialController();
99

1010
route.get('/factorial', [
11-
query('number').isNumeric().withMessage('Você precisa fornecer um número')
11+
query('number')
12+
.isNumeric()
13+
.withMessage('Você precisa fornecer um número')
14+
.toInt()
1215
], factorialController.compute);
1316

1417
export default route;

src/utils/calcFactorial.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export default (n: any) => {
2+
var i, result = BigInt(1);
3+
4+
for (i = BigInt(2); i <= n; i++) {
5+
result *= i;
6+
}
7+
return result;
8+
}

0 commit comments

Comments
 (0)