Passed
Push — main ( d1d508...d26c33 )
by Julia
03:28 queued 01:41
created

server/routes/v1/admin/bikes.js   A

Complexity

Total Complexity 4
Complexity/F 1

Size

Lines of Code 58
Function Count 4

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 4
eloc 11
mnd 0
bc 0
fnc 4
dl 0
loc 58
bpm 0
cpm 1
noi 12
c 0
b 0
f 0
rs 10
1
import express from "express";
2
import bikeModel from "../../../src/models/bike.js";
3
4
const router = express.Router();
5
6
/**
7
 * @description Route for activating a bike
8
 *
9
 * @param {express.Request} req Request object
10
 * @param {express.Response} res Response object
11
 * @param {express.NextFunction} next Next function
12
 *
13
 * @returns {void}
14
 */
15
router.get("/:id/activate", async (req, res, next) => {
16
    try {
17
        const bikeId = parseInt(req.params.id);
18
19
        const bikeData = await bikeModel.activate(bikeId);
20
21
        res.status(200).json(bikeData);
22
    } catch (error) {
23
        next(error);
24
    }
25
});
26
27
/**
28
 * @description Route for deactivating a bike
29
 *
30
 * @param {express.Request} req Request object
31
 * @param {express.Response} res Response object
32
 * @param {express.NextFunction} next Next function
33
 *
34
 * @returns {void}
35
 */
36
router.get("/:id/deactivate", async (req, res, next) => {
37
    try {
38
        const bikeId = parseInt(req.params.id);
39
40
        const bikeData = await bikeModel.activate(bikeId);
41
42
        res.status(200).json(bikeData);
43
    } catch (error) {
44
        next(error);
45
    }
46
});
47
48
/**
49
 * @description Route for changing a bike's status
50
 *
51
 * @param {express.Request} req Request object
52
 * @param {express.Response} res Response object
53
 * @param {express.NextFunction} next Next function
54
 *
55
 * @returns {void}
56
 */
57
router.get("/:bikeId/status/:statusId", async (req, res, next) => {
58
    try {
59
        const bikeId = parseInt(req.params.bikeId);
60
        const statusId = parseInt(req.params.statusId);
61
62
        const bikeData = await bikeModel.updStatus(bikeId, statusId);
63
64
        res.status(200).json(bikeData);
65
    } catch (error) {
66
        next(error);
67
    }
68
});
69
70
// /**
71
//  * @description Route for changing a bike's position
72
//  *
73
//  * @param {express.Request} req Request object
74
//  * @param {express.Response} res Response object
75
//  * @param {express.NextFunction} next Next function
76
//  *
77
//  * @returns {void}
78
//  */
79
// router.get("/:id/move", async (req, res, next) => {
80
//     // code here for changing a bike's position
81
// });
82
83
/**
84
 * @description Route for changing a bike's city
85
 *
86
 * @param {express.Request} req Request object
87
 * @param {express.Response} res Response object
88
 * @param {express.NextFunction} next Next function
89
 *
90
 * @returns {void}
91
 */
92
router.get("/:id/change/city", async (req, res, next) => {
93
    try {
94
        const bikeId = parseInt(req.params.id);
95
        const cityId = req.body.city_id;
96
97
        const bikeData = await bikeModel.updCity(bikeId, cityId);
98
99
        res.status(200).json(bikeData);
100
    } catch (error) {
101
        next(error);
102
    }
103
});
104
105
export default router;
106