chatbridge/server/src/controllers/bridge.controller.ts

66 lines
1.7 KiB
TypeScript

import {AppDataSource} from "../db/data-source";
import {Bridge} from "../entities/bridge.entity";
import {Request, Response} from "express";
import {UpdateBridgeInput} from "../schemas/bridge.schema";
const bridgeRepository = AppDataSource.getRepository(Bridge)
export const getBridgeHandler = async(
req: Request,
res: Response
) => {
if (req.session.state_token){
let bridge = await bridgeRepository.findOne({
where: {state_token: req.session.state_token},
select: {
Protocol: true,
Label: true,
id: true
}
})
if (!bridge){
res.status(404).json({
status: 'failure',
message: 'No matching bridge found'
})
return
}
res.status(200).json({
status: 'success',
data: bridge
})
} else {
res.status(403).json({
status: 'failure',
message: 'No state token found'
})
}
}
export const setBridgeHandler = async(
req: Request<{}, {}, UpdateBridgeInput>,
res: Response
) => {
if (req.session.state_token) {
let bridge = await bridgeRepository.findOneBy({state_token: req.session.state_token})
if (!bridge){
res.status(404).json({
status: 'failure',
message: 'No matching bridge found'
})
return
}
bridge.Label = req.body.Label;
bridge.save()
res.status(200).json({
status:'success'
})
} else {
res.status(403).json({
status: 'failure',
message: 'No state token found'
})
}
}