39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { createRoute } from "../../../modules/api-utils/createRoute";
|
|
import { unifiSites } from "../../../managers/unifiSites";
|
|
import { apiResponse } from "../../../modules/api-utils/apiResponse";
|
|
import { ContentfulStatusCode } from "hono/utils/http-status";
|
|
import { authMiddleware } from "../../middleware/authorization";
|
|
import { z } from "zod";
|
|
|
|
/* POST /v1/unifi/site/:id/wlan-groups */
|
|
export default createRoute(
|
|
"post",
|
|
["/site/:id/wlan-groups"],
|
|
async (c) => {
|
|
const site = await unifiSites.fetch(c.req.param("id"));
|
|
|
|
const body = await c.req.json();
|
|
const schema = z
|
|
.object({
|
|
name: z.string().min(1, "Name is required"),
|
|
})
|
|
.strict();
|
|
|
|
const parsed = schema.parse(body);
|
|
const group = await unifiSites.createWlanGroup(site.siteId, parsed);
|
|
|
|
const response = apiResponse.created(
|
|
"UniFi WLAN Group Created Successfully!",
|
|
group,
|
|
);
|
|
return c.json(response, response.status as ContentfulStatusCode);
|
|
},
|
|
authMiddleware({
|
|
permissions: [
|
|
"unifi.access",
|
|
"unifi.site.wlan-groups",
|
|
"unifi.site.wlan-groups.create",
|
|
],
|
|
}),
|
|
);
|