// @ts-check
/**
* @import {ExpressRequestAuthorized, ExpressResponse} from '../../types.js'
*/
import { sendOk, sendErrorFrom } from '../../utils/apiEnvelope.js';
import * as service from './service.js';
/**
* GET /api/tailnets
* @param {ExpressRequestAuthorized} req
* @param {ExpressResponse} res
*/
export const listTailnets = async (req, res) => {
try {
sendOk(res, await service.listTailnets(req));
} catch (e) {
sendErrorFrom(res, e);
}
};
/**
* PUT /api/tailnets/:group
* @param {ExpressRequestAuthorized} req
* @param {ExpressResponse} res
*/
export const putTailnet = async (req, res) => {
try {
const result = await service.createTailnet(req, req.body);
sendOk(res, result.result);
} catch (e) {
sendErrorFrom(res, e);
}
};
/**
* GET /api/tailnets/:UID
* @param {ExpressRequestAuthorized} req
* @param {ExpressResponse} res
*/
export const getTailnet = async (req, res) => {
try {
const result = await service.getTailnet(req, req.params.UID);
sendOk(res, result.result);
} catch (e) {
sendErrorFrom(res, e);
}
};
/**
* POST /api/tailnets/:UID
* @param {ExpressRequestAuthorized} req
* @param {ExpressResponse} res
*/
export const updateTailnet = async (req, res) => {
try {
const result = await service.updateTailnet(req, req.params.UID, req.body);
sendOk(res, result.result);
} catch (e) {
sendErrorFrom(res, e);
}
};
/**
* DELETE /api/tailnets/:UID
* @param {ExpressRequestAuthorized} req
* @param {ExpressResponse} res
*/
export const deleteTailnet = async (req, res) => {
try {
const result = await service.deleteTailnet(req, req.params.UID);
sendOk(res, result.result);
} catch (e) {
sendErrorFrom(res, e);
}
};
/**
* GET /api/tailnets/:UID/runners
* @param {ExpressRequestAuthorized} req
* @param {ExpressResponse} res
*/
export const listTailnetRunners = async (req, res) => {
try {
sendOk(res, await service.listTailnetRunners(req, req.params.UID));
} catch (e) {
sendErrorFrom(res, e);
}
};
/**
* PUT /api/tailnets/:UID/runners/:runnerUID
* @param {ExpressRequestAuthorized} req
* @param {ExpressResponse} res
*/
export const addTailnetRunner = async (req, res) => {
try {
const result = await service.addTailnetRunner(req, req.params.UID, req.params.runnerUID);
sendOk(res, result.result);
} catch (e) {
sendErrorFrom(res, e);
}
};
/**
* DELETE /api/tailnets/:UID/runners/:runnerUID
* @param {ExpressRequestAuthorized} req
* @param {ExpressResponse} res
*/
export const removeTailnetRunner = async (req, res) => {
try {
const result = await service.removeTailnetRunner(req, req.params.UID, req.params.runnerUID);
sendOk(res, result.result);
} catch (e) {
sendErrorFrom(res, e);
}
};