summaryrefslogtreecommitdiff
path: root/backend/src/controllers/moveRobot.ts
blob: 1b53f17fe90ee66cd9bb4386901bfd464403bf2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { Request, Response } from "express";
import { Server } from "socket.io";
import { setRobotMoving } from "../simulation/robotMovementSimulator";
import { ErrorResponse } from "../types/error";
import { SimulationResponse } from "../types/robot";

async function moveRobot(req: Request, res: Response) {
    const io: Server = req.app.get("io");

    const robotId = Number(req.params.id);

    if (!robotId || Number.isNaN(robotId)) {
        return res.status(400).json({ message: "Invalid robot ID." });
    }

    try {
        const result: SimulationResponse = await setRobotMoving(io, robotId);
        return res.status(200).json(result);
    } catch (error) {
        console.error(`Error on trying to start robot ID ${robotId}: `, error);

        const errorResponse: ErrorResponse = {
            message: `Internal server error on trying to start robot ID ${robotId}.`,
            error,
        };
        return res.status(500).json(errorResponse);
    }
}

export default moveRobot;