Added POST, DELETE and GET (all)
This commit is contained in:
parent
4973a80f64
commit
816e0a1381
@ -16,17 +16,62 @@ router.get("/", async (req, res, next) => {
|
||||
);
|
||||
return;
|
||||
}
|
||||
const { host, tenant, token } = auth;
|
||||
logger.debug(`tps GET all properties from ${host}`);
|
||||
axios
|
||||
.get(
|
||||
`${host}/tenant-properties-service/${tenant}/properties?fields=name,value,lastModifiedDate,lastModifiedBy`,
|
||||
{
|
||||
headers: {
|
||||
Authorization: `OIDC_id_token ${token}`,
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
}
|
||||
)
|
||||
.then((result) => {
|
||||
if (result.data.errors && result.data.errors.length > 0) {
|
||||
result.data.errors.forEach(function (error) {
|
||||
logger.error("ERROR: Errors in results - " + error.message);
|
||||
});
|
||||
next(new Error("Error(s) getting properties "));
|
||||
return;
|
||||
}
|
||||
const totalItems = result.data["hydra:totalItems"];
|
||||
logger.debug("tps result has hydra:totalItems [" + totalItems + "]");
|
||||
if (totalItems > 0) {
|
||||
const data = result.data["hydra:member"].map(function (member) {
|
||||
return {
|
||||
name: member["vcfg:name"],
|
||||
value: member["vcfg:value"],
|
||||
lastModifiedDate: member["vcfg:lastModifiedDate"],
|
||||
lastModifiedBy: member["vcfg:lastModifiedBy"],
|
||||
};
|
||||
});
|
||||
res.json({ data: data });
|
||||
} else {
|
||||
res.json({ date: [] });
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
const propertyName = req.query.propertyName;
|
||||
router.get("/:name", async (req, res, next) => {
|
||||
const auth = await store.get(req.query.authKey);
|
||||
|
||||
if (isEmpty(auth)) {
|
||||
next(
|
||||
new createHttpError.Forbidden(
|
||||
`No authenication information found in store`
|
||||
)
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
const propertyName = req.params.name;
|
||||
const { host, tenant, token } = auth;
|
||||
logger.debug(`tps GET ${propertyName} from ${host}`);
|
||||
|
||||
if (!propertyName || propertyName.length == 0) {
|
||||
next(
|
||||
new createHttpError.NotFound(
|
||||
`Blank property keys not allowed`
|
||||
)
|
||||
);
|
||||
next(new createHttpError.NotFound(`Blank property keys not allowed`));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -51,8 +96,10 @@ router.get("/", async (req, res, next) => {
|
||||
const totalItems = result.data["hydra:totalItems"];
|
||||
logger.debug("tps result has hydra:totalItems [" + totalItems + "]");
|
||||
if (totalItems > 0) {
|
||||
const value = result.data["hydra:member"][0]["vcfg:value"];
|
||||
res.json({ data: { value: value } });
|
||||
const member = result.data["hydra:member"][0];
|
||||
res.json({
|
||||
data: { name: member["vcfg:name"], value: member["vcfg:value"] },
|
||||
});
|
||||
} else {
|
||||
next(
|
||||
new createHttpError.NotFound(`property ${propertyName} not found`)
|
||||
@ -61,4 +108,101 @@ router.get("/", async (req, res, next) => {
|
||||
});
|
||||
});
|
||||
|
||||
router.post("/", async (req, res, next) => {
|
||||
const auth = await store.get(req.query.authKey);
|
||||
|
||||
if (isEmpty(auth)) {
|
||||
next(
|
||||
new createHttpError.Forbidden(
|
||||
`No authenication information found in store`
|
||||
)
|
||||
);
|
||||
return;
|
||||
}
|
||||
const { host, tenant, token } = auth;
|
||||
const property = req.body.data;
|
||||
const body = `[
|
||||
{
|
||||
"@type" : "vcfg:PropertyUpdateOrCreate",
|
||||
"vcfg:name" :"${property.name}",
|
||||
"vcfg:value" : "${property.value}"
|
||||
}
|
||||
]`;
|
||||
|
||||
logger.debug(`tps PATCH ${body} to ${host}`);
|
||||
|
||||
axios
|
||||
.patch(`${host}/tenant-properties-service/${tenant}/properties`, body, {
|
||||
headers: {
|
||||
Authorization: `OIDC_id_token ${token}`,
|
||||
"Content-Type": "application/ld+json",
|
||||
},
|
||||
})
|
||||
.catch(function (error) {
|
||||
if (error.response) {
|
||||
// The request was made and the server responded with a status code
|
||||
// that falls out of the range of 2xx
|
||||
logger.error(JSON.stringify(error.response.data));
|
||||
logger.error(JSON.stringify(error.response.status));
|
||||
logger.error(JSON.stringify(error.response.headers));
|
||||
} else if (error.request) {
|
||||
// The request was made but no response was received
|
||||
// `error.request` is an instance of XMLHttpRequest in the browser
|
||||
// and an instance of http.ClientRequest in node.js
|
||||
logger.error(JSON.stringify(error.request));
|
||||
} else {
|
||||
// Something happened in setting up the request that triggered an Error
|
||||
logger.error("Error", error.message);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
router.delete("/:name", async (req, res, next) => {
|
||||
const auth = await store.get(req.query.authKey);
|
||||
|
||||
if (isEmpty(auth)) {
|
||||
next(
|
||||
new createHttpError.Forbidden(
|
||||
`No authenication information found in store`
|
||||
)
|
||||
);
|
||||
return;
|
||||
}
|
||||
const { host, tenant, token } = auth;
|
||||
const propertyName = req.params.name;
|
||||
const body = `[
|
||||
{
|
||||
"@type" : "vcfg:PropertyDelete",
|
||||
"vcfg:name" : "${propertyName}"
|
||||
}
|
||||
]`;
|
||||
|
||||
logger.debug(`tps PATCH ${body} to ${host}`);
|
||||
|
||||
axios
|
||||
.patch(`${host}/tenant-properties-service/${tenant}/properties`, body, {
|
||||
headers: {
|
||||
Authorization: `OIDC_id_token ${token}`,
|
||||
"Content-Type": "application/ld+json",
|
||||
},
|
||||
})
|
||||
.catch(function (error) {
|
||||
if (error.response) {
|
||||
// The request was made and the server responded with a status code
|
||||
// that falls out of the range of 2xx
|
||||
logger.error(JSON.stringify(error.response.data));
|
||||
logger.error(JSON.stringify(error.response.status));
|
||||
logger.error(JSON.stringify(error.response.headers));
|
||||
} else if (error.request) {
|
||||
// The request was made but no response was received
|
||||
// `error.request` is an instance of XMLHttpRequest in the browser
|
||||
// and an instance of http.ClientRequest in node.js
|
||||
logger.error(JSON.stringify(error.request));
|
||||
} else {
|
||||
// Something happened in setting up the request that triggered an Error
|
||||
logger.error("Error", error.message);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
export default router;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user