[pve-devel] [PATCH manager v5 08/16] api: notification: add API for getting known metadata fields/values

Lukas Wagner l.wagner at proxmox.com
Fri Apr 19 16:01:49 CEST 2024



On  2024-04-19 15:45, Fiona Ebner wrote:
> Am 15.04.24 um 10:26 schrieb Lukas Wagner:
>> +
>> +__PACKAGE__->register_method ({
>> +    name => 'get_field_values',
>> +    path => 'values',
>> +    method => 'GET',
>> +    description => 'Returns known notification metadata fields and their known values',
>> +    permissions => {
>> +	check => ['or',
>> +	    ['perm', '/mapping/notifications', ['Mapping.Modify']],
>> +	    ['perm', '/mapping/notifications', ['Mapping.Audit']],
>> +	],
>> +    },
>> +    protected => 1,
>> +    parameters => {
>> +	additionalProperties => 0,
>> +    },
>> +    returns => {
>> +	type => 'array',
>> +	items => {
>> +	    type => 'object',
>> +	    properties => {
>> +		'value' => {
>> +		    description => 'Notification metadata value known by the system.',
>> +		    type => 'string'
>> +		},
>> +		'comment' => {
>> +		    description => 'Additional comment for this value.',
>> +		    type => 'string',
>> +		    optional => 1,
>> +		},
>> +		'field' => {
>> +		    description => 'Field this value belongs to.',
>> +		    type => 'string',
>> +		    optional => 1,
>> +		},
>> +		'internal' => {
>> +		    description => 'Set if "value" was generated by the system and can'
>> +		       . ' safely be used as base for translations.',
>> +		    type => 'boolean',
>> +		    optional => 1,
>> +		},
> 
> And wouldn't it be nicer to return already grouped by field? Then maybe
> we also don't really need the dedicated fields API endpoint either as
> those are just the top-level of the result (with empty array when there
> are no values so we don't ever miss any fields).
> 

The design of both endpoints was mostly driven by the intention
of keeping the ExtJS side as simple as possible.
Two comboboxes, each with their own api endpoint to fetch data from,
one setting a filter for the other one.
I tried using a single endpoint at first, but was quickly frustrated
by ExtJS and its documentation and settled for this approach as a consequence.

So I'd prefer to leave it as is :D

Regarding the 'internal' flag: Yes, you are right, right now we only need it for 'type'.
I'll leave it out then and handle everything in the UI.

-- 
- Lukas




More information about the pve-devel mailing list