91 lines
2.3 KiB
JavaScript
91 lines
2.3 KiB
JavaScript
|
|
import {
|
|
JsonDB,
|
|
Config
|
|
} from 'node-json-db';
|
|
|
|
import {
|
|
default as ValidateSchema
|
|
} from 'validate'
|
|
|
|
|
|
var certificateDB = new JsonDB(new Config("datastore/database/certificates.json", true, true, '/'));
|
|
|
|
const certificateSchema = new ValidateSchema({
|
|
displayName: {
|
|
type: String,
|
|
required: true,
|
|
match: /^[a-zA-Z0-9\ \-\_\.]+$/,
|
|
message: {
|
|
type: '[displayName] must be a string.',
|
|
required: '[displayName] is required.',
|
|
match: '[displayName] is invalid.'
|
|
}
|
|
},
|
|
certificateType: {
|
|
type: String,
|
|
required: true,
|
|
enum: [
|
|
'rootCA',
|
|
'intermediateCA',
|
|
'identity'
|
|
],
|
|
message: {
|
|
type: '[certificateType] must be a string.',
|
|
required: '[certificateType] is required.',
|
|
enum: '[certificateType] must be one of [rootCA|intermediateCA|identity]'
|
|
}
|
|
}
|
|
})
|
|
|
|
export async function saveCertificate(sCertificateID, oCertificateData) {
|
|
console.log("-----------------------------------------");
|
|
let configErrorList = certificateSchema.validate(oCertificateData);
|
|
|
|
configErrorList = configErrorList.map((configError) => {
|
|
return configError.message;
|
|
})
|
|
|
|
console.log(configErrorList);
|
|
|
|
if (configErrorList.length > 0) {
|
|
return {
|
|
status: "error",
|
|
errors: configErrorList
|
|
}
|
|
}
|
|
|
|
await certificateDB.push(`/${sCertificateID}`, oCertificateData);
|
|
|
|
console.log(oCertificateData);
|
|
|
|
setTimeout(() => {
|
|
|
|
}, 5000);
|
|
|
|
return {
|
|
status: "ok"
|
|
}
|
|
}
|
|
|
|
export async function getCertificateByID(sCertificateID) {
|
|
let oCertificateData = await certificateDB.getData(`/${sCertificateID}`);
|
|
return oCertificateData;
|
|
}
|
|
|
|
export async function getAllCertificates() {
|
|
let aCertificateList = await certificateDB.getData(`/`);
|
|
return aCertificateList;
|
|
}
|
|
|
|
export async function getCertificatesOfType(sCertificateType) {
|
|
let aCertificateList = await certificateDB.getData(`/`);
|
|
aCertificateList = aCertificateList.filter((oCertificateData) => {
|
|
return oCertificateData.certificateType == sCertificateType;
|
|
})
|
|
return aCertificateList;
|
|
}
|
|
|
|
export async function deleteCertificate(sCertificateID) {
|
|
await certificateDB.delete(`/${sCertificateID}`);
|
|
}
|