Update API docs

This commit is contained in:
2024-03-06 10:09:14 +07:00
parent 737a2e2fd3
commit 76e9ae14e5
4 changed files with 289 additions and 66 deletions

View File

@@ -4,21 +4,30 @@ import { ChannelPins, digitalValue, voltage } from ".";
import { Led } from "johnny-five";
export async function readLed (req: Request, res: Response) {
const { p } = req.params;
const pin: number = Number.parseInt(p);
const pinState: digitalValue = board.pins[pin].value == 1 ? 'ON' : 'OFF';
return res.status(200).json({
status: 200,
pin_state: {
[pin]: pinState
}
});
export function readLed (req: Request, res: Response): Response<string | any> {
try {
const { p } = req.params;
const pin: number = Number.parseInt(p);
const pinState: digitalValue = board.pins[pin].value == 1 ? 'ON' : 'OFF';
return res.status(200).json({
status: 200,
pin_state: {
[pin]: pinState
}
});
}
catch (err) {
console.error(err);
return res.status(500).json({
status: 200,
message: "Internal server error"
})
}
}
export async function writeLed (req: Request, res: Response) {
export function writeLed (req: Request, res: Response): Response<string | any> {
const { p, a } = req.params;
const act: string = a.toLocaleLowerCase();
const pin: number = Number.parseInt(p);
@@ -63,47 +72,56 @@ export async function writeLed (req: Request, res: Response) {
};
export async function readRgbLed (req: Request, res: Response) {
export function readRgbLed (req: Request, res: Response): Response<string | any> {
const r: number = Number.parseInt(req.body.r);
const g: number = Number.parseInt(req.body.g);
const b: number = Number.parseInt(req.body.b);
const rgbPins: number[] = Object.values({ r, g, b });
try {
const rgbPins: number[] = Object.values({ r, g, b });
for (let i = 0; i < rgbPins.length; i++) {
const pin = rgbPins[i];
if (Number.isNaN(pin)) {
return res.status(400).json({
status: 400,
message: `Invalid pin ${pin} param, it should be integer`
});
for (let i = 0; i < rgbPins.length; i++) {
const pin = rgbPins[i];
if (Number.isNaN(pin)) {
return res.status(400).json({
status: 400,
message: `Invalid pin ${pin} param, it should be integer`
});
}
}
const led = new Led.RGB({
pins: {
red: r,
green: g,
blue: b
},
isAnode: true
})
led.red = new Led(r);
led.green = new Led(g);
led.blue = new Led(b);
return res.status(200).json({
status: 200,
pin_state: {
[r]: led.red.isOn,
[g]: led.green.isOn,
[b]: led.blue.isOn
}
});
}
catch (err) {
console.error(err);
return res.status(500).json({
status: 200,
message: "Internal server error"
})
}
const led = new Led.RGB({
pins: {
red: r,
green: g,
blue: b
},
isAnode: true
})
led.red = new Led(r);
led.green = new Led(g);
led.blue = new Led(b);
return res.status(200).json({
status: 200,
pin_state: {
[r]: led.red.isOn,
[g]: led.green.isOn,
[b]: led.blue.isOn
}
});
}
export async function writeRgbLed (req: Request, res: Response) {
export function writeRgbLed (req: Request, res: Response): Response<string | any> {
const r: ChannelPins = req.body.r;
const g: ChannelPins = req.body.g;
const b: ChannelPins = req.body.b;
@@ -140,14 +158,14 @@ export async function writeRgbLed (req: Request, res: Response) {
const pins: string = rgbLeds.map(c => c.pin.toString()).join(", ");
const values: string = rgbLeds.map(c => `${c.value}`).join(", ");
res.status(200).json({
return res.status(200).json({
status: 200,
message: `Success changed pins ${pins} to state ${values}`
});
}
catch (err) {
console.error(err);
res.status(500).json({
return res.status(500).json({
status: 500,
message: "Internal Server Error"
});

View File

@@ -10,9 +10,12 @@ export function readPin (req: Request, res: Response) {
return res.status(200).json({
status: 200,
state: {
used: true
},
pins: [
{
pin: pin,
mode: mode
}
],
message: `Pin ${pin} is ${mode}`
});
}
@@ -28,6 +31,12 @@ export function setPin (req: Request, res: Response) {
return res.status(200).json({
status: 200,
pins: [
{
pin: pin,
mode: mode
}
],
message: `Pin ${pin} setted as ${mode}`
});
}

View File

@@ -8,19 +8,18 @@ import { board, suBoard, comport } from './setup';
import { isBoardConnected } from './middleware/connection';
import view from './routes/view';
import api from './routes/api';
import { selectPort } from './ports';
import socketHandler from './handlers/socketHandler';
const app = express();
const server = http.createServer(app);
const io = new Server(server, {
const server: http.Server = http.createServer(app);
const io: Server = new Server(server, {
cors: {
origin: "*"
}
}); // I have no experience at WebSocket, so.. forgive me :)
const host = 'localhost';
const port = 3000;
const host: string = 'localhost';
const port: number = 3000;
app.use(express.json());
app.use(express.static('client'));