feat(xo-server/rest-api): expose messages

Fixes zammad#21415
This commit is contained in:
Julien Fontanet 2024-02-05 13:03:15 +01:00
parent e162fd835b
commit 70c51227bf
2 changed files with 22 additions and 1 deletions

View File

@ -9,6 +9,7 @@
- [REST API] Add `/groups` collection [Forum#70500](https://xcp-ng.org/forum/post/70500)
- [REST API] Add `/groups/:id/users` and `/users/:id/groups` collection [Forum#70500](https://xcp-ng.org/forum/post/70500)
- [REST API] Expose messages associated to XAPI objects at `/:collection/:object/messages`
### Bug fixes

View File

@ -182,6 +182,7 @@ export default class RestApi {
{
const types = [
'host',
'message',
'network',
'pool',
'SR',
@ -208,13 +209,30 @@ export default class RestApi {
limit,
})
}
async function messages(req, res) {
const {
object: { id },
query,
} = req
await sendObjects(
app.getObjects({
filter: every(_ => _.type === 'message' && _.$object === id, handleOptionalUserFilter(query.filter)),
limit: ifDef(query.limit, Number),
}),
req,
res,
'/messages'
)
}
for (const type of types) {
const id = type.toLocaleLowerCase() + 's'
collections[id] = { getObject, getObjects, isCorrectType: _ => _.type === type, type }
collections[id] = { getObject, getObjects, routes: { messages }, isCorrectType: _ => _.type === type, type }
}
collections.hosts.routes = {
...collections.hosts.routes,
async 'audit.txt'(req, res) {
const host = req.xapiObject
@ -238,6 +256,8 @@ export default class RestApi {
}
collections.pools.routes = {
...collections.pools.routes,
async missing_patches(req, res) {
await app.checkFeatureAuthorization('LIST_MISSING_PATCHES')