certificate-manager/functions/db.authorities.mjs
2025-05-17 16:10:17 +02:00

58 lines
No EOL
1.3 KiB
JavaScript

import {
JsonDB,
Config
} from 'node-json-db';
import {
default as ValidateSchema
} from 'validate'
import {
randomBytes
} from "crypto";
var authorityDB = new JsonDB(new Config("datastore/database/authorityDB.json", true, true, '/'));
const authoritySchema = new ValidateSchema({
name: {
type: String,
required: true,
match: /^[a-zA-Z0-9\ \-\_]+$/,
length: { min: 3, max: 32 },
message: 'invalid name'
}
})
export async function saveAuthority(authorityID, authorityConfig) {
let configErrorList = authoritySchema.validate(authorityConfig);
configErrorList = configErrorList.map((configError) => {
return configError.message;
})
if (configErrorList.length > 0) {
return {
status: "error",
errors: configErrorList
}
}
await authorityDB.push(`/${authorityID}`, authorityConfig);
return {
status: "ok"
}
}
export async function getAuthority(authorityID) {
let AuthorityData = await authorityDB.getData(`/${authorityID}`);
return AuthorityData;
}
export async function deleteAuthority(authorityID) {
await authorityDB.delete(`/${authorityID}`);
}
saveAuthority(randomBytes(4).toString("hex"), {names: "{test}"})