setup unifi wlans
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
import { createRoute } from "../../modules/api-utils/createRoute";
|
||||
import { credentials } from "../../managers/credentials";
|
||||
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/credential/credentials/:id/sub-credentials */
|
||||
export default createRoute(
|
||||
"post",
|
||||
["/credentials/:id/sub-credentials"],
|
||||
|
||||
async (c) => {
|
||||
const parentId = c.req.param("id");
|
||||
const body = await c.req.json();
|
||||
|
||||
const schema = z.object({
|
||||
fieldId: z.string().min(1, "Field ID is required"),
|
||||
name: z.string().min(1, "Name is required"),
|
||||
fields: z.array(
|
||||
z.object({
|
||||
fieldId: z.string(),
|
||||
value: z.string(),
|
||||
}),
|
||||
),
|
||||
});
|
||||
|
||||
const data = schema.parse(body);
|
||||
|
||||
const subCredential = await credentials.addSubCredential(
|
||||
parentId,
|
||||
data.fieldId,
|
||||
{
|
||||
name: data.name,
|
||||
fields: data.fields,
|
||||
},
|
||||
);
|
||||
|
||||
const response = apiResponse.created(
|
||||
"Sub-Credential Created Successfully!",
|
||||
subCredential.toJson(),
|
||||
);
|
||||
return c.json(response, response.status as ContentfulStatusCode);
|
||||
},
|
||||
authMiddleware({
|
||||
permissions: ["credential.fetch", "credential.sub_credentials.create"],
|
||||
}),
|
||||
);
|
||||
@@ -25,6 +25,22 @@ export default createRoute(
|
||||
value: z.string(),
|
||||
}),
|
||||
),
|
||||
subCredentials: z
|
||||
.record(
|
||||
z.string(),
|
||||
z.array(
|
||||
z.object({
|
||||
name: z.string().min(1, "Sub-credential name is required"),
|
||||
fields: z.array(
|
||||
z.object({
|
||||
fieldId: z.string(),
|
||||
value: z.string(),
|
||||
}),
|
||||
),
|
||||
}),
|
||||
),
|
||||
)
|
||||
.optional(),
|
||||
});
|
||||
|
||||
const data = schema.parse(body);
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
import { createRoute } from "../../modules/api-utils/createRoute";
|
||||
import { credentials } from "../../managers/credentials";
|
||||
import { apiResponse } from "../../modules/api-utils/apiResponse";
|
||||
import { ContentfulStatusCode } from "hono/utils/http-status";
|
||||
import { authMiddleware } from "../middleware/authorization";
|
||||
|
||||
/* GET /v1/credential/credentials/:id/sub-credentials */
|
||||
export default createRoute(
|
||||
"get",
|
||||
["/credentials/:id/sub-credentials"],
|
||||
|
||||
async (c) => {
|
||||
const parentId = c.req.param("id");
|
||||
|
||||
// Verify the parent credential exists
|
||||
await credentials.fetch(parentId);
|
||||
|
||||
const subCredentials = await credentials.fetchSubCredentials(parentId);
|
||||
|
||||
const response = apiResponse.successful(
|
||||
"Sub-Credentials Fetched Successfully!",
|
||||
subCredentials.map((sc) => sc.toJson()),
|
||||
);
|
||||
return c.json(response, response.status as ContentfulStatusCode);
|
||||
},
|
||||
authMiddleware({
|
||||
permissions: ["credential.fetch", "credential.sub_credentials.fetch"],
|
||||
}),
|
||||
);
|
||||
@@ -8,6 +8,9 @@ import { default as readSecureValues } from "./readSecureValues";
|
||||
import { default as readSecureValue } from "./readSecureValue";
|
||||
import { default as deleteCredential } from "./delete";
|
||||
import { default as valueTypes } from "./valueTypes";
|
||||
import { default as fetchSubCredentials } from "./fetchSubCredentials";
|
||||
import { default as addSubCredential } from "./addSubCredential";
|
||||
import { default as removeSubCredential } from "./removeSubCredential";
|
||||
|
||||
export {
|
||||
valueTypes,
|
||||
@@ -20,4 +23,7 @@ export {
|
||||
readSecureValues,
|
||||
readSecureValue,
|
||||
deleteCredential as delete,
|
||||
fetchSubCredentials,
|
||||
addSubCredential,
|
||||
removeSubCredential,
|
||||
};
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
import { createRoute } from "../../modules/api-utils/createRoute";
|
||||
import { credentials } from "../../managers/credentials";
|
||||
import { apiResponse } from "../../modules/api-utils/apiResponse";
|
||||
import { ContentfulStatusCode } from "hono/utils/http-status";
|
||||
import { authMiddleware } from "../middleware/authorization";
|
||||
|
||||
/* DELETE /v1/credential/credentials/:id/sub-credentials/:subId */
|
||||
export default createRoute(
|
||||
"delete",
|
||||
["/credentials/:id/sub-credentials/:subId"],
|
||||
|
||||
async (c) => {
|
||||
const parentId = c.req.param("id");
|
||||
const subId = c.req.param("subId");
|
||||
|
||||
await credentials.removeSubCredential(parentId, subId);
|
||||
|
||||
const response = apiResponse.successful(
|
||||
"Sub-Credential Removed Successfully!",
|
||||
null,
|
||||
);
|
||||
return c.json(response, response.status as ContentfulStatusCode);
|
||||
},
|
||||
authMiddleware({
|
||||
permissions: ["credential.fetch", "credential.sub_credentials.delete"],
|
||||
}),
|
||||
);
|
||||
Reference in New Issue
Block a user