Skip to content

Commit e466e35

Browse files
committed
Handle the various API calls along their prerequisites
1 parent 537d623 commit e466e35

File tree

9 files changed

+334
-224
lines changed

9 files changed

+334
-224
lines changed

assets/webconfig/js/hyperion.js

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -333,13 +333,24 @@ function requestServerConfigSchema() {
333333

334334
const requestServerConfig = {
335335
// Shared logic encapsulated in a helper function
336-
createFilter(globalTypes, instances, instanceTypes) {
337-
return {
338-
"configFilter": {
339-
"global": { "types": globalTypes },
340-
"instances": { "ids": instances, "types": instanceTypes }
341-
}
336+
createFilter(globalTypes = [], instances = [], instanceTypes = []) {
337+
const filter = {
338+
configFilter: {
339+
global: { types: globalTypes },
340+
},
342341
};
342+
343+
// Handle instances: remove "null" if present and add to filter if not empty
344+
if (instances.length && !(instances.length === 1 && instances[0] === null)) {
345+
filter.configFilter.instances = { ids: instances };
346+
}
347+
348+
if (instanceTypes.length > 0) {
349+
filter.configFilter.instances = filter.configFilter.instances || {};
350+
filter.configFilter.instances.types = instanceTypes;
351+
}
352+
353+
return filter;
343354
},
344355

345356
// Synchronous function

doc/development/JSON-API _Commands_Overview.md

Lines changed: 76 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -10,86 +10,91 @@ _Authorization (via password or bearer token)_
1010
**Yes** - Authorization required, but can be disabled for local network calls<br>
1111
**Admin**: Authorization is always required
1212

13-
_Instance specific_
13+
_Instance Cmd_
1414

15-
**Yes** - A specific instance can be addressed<br>
15+
**Single** - A specific instance can be addressed<br>
1616
**Multi** - Multiple instances can be addressed via one request<br>
1717
**No** - The command is not instance related
1818

19+
_Instance must Run_
20+
21+
**No** - The instance is not required to run<br>
22+
**Yes** - The instance the command is to be applied to must be running<br>
23+
1924
_http/s Support_
2025

2126
**Yes** - Command can be used by individual http/s requests<br>
2227
**No** - Applies only to WebSocket or http/s sessions
2328

24-
| Command | Sub-Command | Authorization | Instance specific | http/s Support |
25-
|:---------------|:------------------------|:--------------|:------------------|:---------------|
26-
| adjustment | - | Yes | Multi | Yes |
27-
| authorize | adminRequired | No | No | Yes |
28-
| authorize | answerRequest | Admin | No | No |
29-
| authorize | createToken | Admin | No | No |
30-
| authorize | deleteToken | Admin | No | Yes |
31-
| authorize | getPendingTokenRequests | Admin | No | No |
32-
| authorize | getTokenList | Admin | No | Yes |
33-
| authorize | login | No | No | No |
34-
| authorize | logout | No | No | No |
35-
| authorize | newPassword | Admin | No | Yes |
36-
| authorize | newPasswordRequired | No | No | Yes |
37-
| authorize | renameToken | Admin | No | Yes |
38-
| authorize | requestToken | No | No | Yes |
39-
| authorize | tokenRequired | No | No | Yes |
40-
| clear | - | Yes | Multi | Yes |
41-
| clearall | - | Yes | Multi | Yes |
42-
| color | - | Yes | Multi | Yes |
43-
| componentstate | - | Yes | Multi | Yes |
44-
| config | getconfig | Admin | No | Yes |
45-
| config | getschema | Admin | No | Yes |
46-
| config | reload | Admin | No | Yes |
47-
| config | restoreconfig | Admin | No | Yes |
48-
| config | setconfig | Admin | No | Yes |
49-
| correction | - | Yes | Yes | Yes |
50-
| create-effect | - | Yes | Yes | Yes |
51-
| delete-effect | - | Yes | Yes | Yes |
52-
| effect | - | Yes | Multi | Yes |
53-
| image | - | Yes | Multi | Yes |
54-
| inputsource | discover | Yes | No | Yes |
55-
| inputsource | getProperties | Yes | No | Yes |
56-
| instance | createInstance | Admin | No | Yes |
57-
| instance | deleteInstance | Admin | No | Yes |
58-
| instance | saveName | Admin | No | Yes |
59-
| instance | startInstance | Yes | No | Yes |
60-
| instance | stopInstance | Yes | No | Yes |
61-
| instance | switchTo | Yes | No | Yes |
62-
| instance-data | getImageSnapshot | Yes | Yes | Yes |
63-
| instance-data | getLedSnapshot | Yes | Yes | Yes |
64-
| ledcolors | imagestream-start | Yes | Yes | Yes |
65-
| ledcolors | imagestream-stop | Yes | Yes | Yes |
66-
| ledcolors | ledstream-start | Yes | Yes | Yes |
67-
| ledcolors | ledstream-stop | Yes | Yes | Yes |
68-
| leddevice | addAuthorization | Yes | Yes | Yes |
69-
| leddevice | discover | Yes | Yes | Yes |
70-
| leddevice | getProperties | Yes | Yes | Yes |
71-
| leddevice | identify | Yes | Yes | Yes |
72-
| logging | start | Yes | No | Yes |
73-
| logging | stop | Yes | No | Yes |
74-
| processing | - | Yes | Multi | Yes |
75-
| serverinfo | - | Yes | Yes | Yes |
76-
| serverinfo | getInfo | Yes | Yes | Yes |
77-
| serverinfo | subscribe | Yes | Yes | No |
78-
| serverinfo | unsubscribe | Yes | Yes | No |
79-
| serverinfo | getSubscriptions | Yes | Yes | No |
80-
| serverinfo | getSubscriptionCommands | No | No | No |
81-
| service | discover | Yes | No | Yes |
82-
| sourceselect | - | Yes | Multi | Yes |
83-
| sysinfo | - | Yes | No | Yes |
84-
| system | restart | Yes | No | Yes |
85-
| system | resume | Yes | No | Yes |
86-
| system | suspend | Yes | No | Yes |
87-
| system | toggleSuspend | Yes | No | Yes |
88-
| system | idle | Yes | No | Yes |
89-
| system | toggleIdle | Yes | No | Yes |
90-
| temperature | - | Yes | Yes | Yes |
91-
| transform | - | Yes | Yes | Yes |
92-
| videomode | - | Yes | No | Yes |
29+
| Command | Sub-Command | Authorization | Instance Cmd | Instance must Run | http/s Support |
30+
|----------------|-------------------------|---------------|--------------|-------------------|----------------|
31+
| adjustment | | Yes | Multi | Yes | Yes |
32+
| authorize | adminRequired | No | No | No | Yes |
33+
| authorize | answerRequest | Admin | No | No | No |
34+
| authorize | createToken | Admin | No | No | No |
35+
| authorize | deleteToken | Admin | No | No | Yes |
36+
| authorize | getPendingTokenRequests | Admin | No | No | No |
37+
| authorize | getTokenList | Admin | No | No | Yes |
38+
| authorize | login | No | No | No | No |
39+
| authorize | logout | No | No | No | No |
40+
| authorize | newPassword | Admin | No | No | Yes |
41+
| authorize | newPasswordRequired | No | No | No | Yes |
42+
| authorize | renameToken | Admin | No | No | Yes |
43+
| authorize | requestToken | No | No | No | Yes |
44+
| authorize | tokenRequired | No | No | No | Yes |
45+
| clear | | Yes | Multi | Yes | Yes |
46+
| clearall | | Yes | Multi | Yes | Yes |
47+
| color | | Yes | Multi | Yes | Yes |
48+
| componentstate | | Yes | Multi | Yes | Yes |
49+
| config | getconfig | Admin | No | No | Yes |
50+
| config | getschema | Admin | No | No | Yes |
51+
| config | reload | Admin | No | No | Yes |
52+
| config | restoreconfig | Admin | No | No | Yes |
53+
| config | setconfig | Admin | No | No | Yes |
54+
| correction | | Yes | Single | Yes | Yes |
55+
| create-effect | | Yes | Single | Yes | Yes |
56+
| delete-effect | | Yes | Single | Yes | Yes |
57+
| effect | | Yes | Multi | Yes | Yes |
58+
| image | | Yes | Multi | Yes | Yes |
59+
| inputsource | discover | Yes | No | No | Yes |
60+
| inputsource | getProperties | Yes | No | No | Yes |
61+
| instance | createInstance | Admin | No | No | Yes |
62+
| instance | deleteInstance | Admin | No | No | Yes |
63+
| instance | saveName | Admin | No | No | Yes |
64+
| instance | startInstance | Yes | No | No | Yes |
65+
| instance | stopInstance | Yes | No | No | Yes |
66+
| instance | switchTo | Yes | No | No | Yes |
67+
| instance-data | getImageSnapshot | Yes | Single | Yes | Yes |
68+
| instance-data | getLedSnapshot | Yes | Single | Yes | Yes |
69+
| ledcolors | imagestream-start | Yes | Single | Yes | Yes |
70+
| ledcolors | imagestream-stop | Yes | Single | Yes | Yes |
71+
| ledcolors | ledstream-start | Yes | Single | Yes | Yes |
72+
| ledcolors | ledstream-stop | Yes | Single | Yes | Yes |
73+
| leddevice | addAuthorization | Yes | Single | Yes | Yes |
74+
| leddevice | discover | Yes | Single | Yes | Yes |
75+
| leddevice | getProperties | Yes | Single | Yes | Yes |
76+
| leddevice | identify | Yes | Single | Yes | Yes |
77+
| logging | start | Yes | No | No | Yes |
78+
| logging | stop | Yes | No | No | Yes |
79+
| processing | | Yes | Multi | Yes | Yes |
80+
| serverinfo | | Yes | Single | Yes | Yes |
81+
| serverinfo | getInfo | Yes | No or Single | Yes | Yes |
82+
| serverinfo | subscribe | Yes | No or Single | Yes | No |
83+
| serverinfo | unsubscribe | Yes | No or Single | Yes | No |
84+
| serverinfo | getSubscriptions | Yes | No or Single | Yes | No |
85+
| serverinfo | getSubscriptionCommands | No | No | No | No |
86+
| service | discover | Yes | No | No | Yes |
87+
| sourceselect | | Yes | Multi | Yes | Yes |
88+
| sysinfo | | Yes | No | No | Yes |
89+
| system | restart | Yes | No | No | Yes |
90+
| system | resume | Yes | No | No | Yes |
91+
| system | suspend | Yes | No | No | Yes |
92+
| system | toggleSuspend | Yes | No | No | Yes |
93+
| system | idle | Yes | No | No | Yes |
94+
| system | toggleIdle | Yes | No | No | Yes |
95+
| temperature | | Yes | Single | Yes | Yes |
96+
| transform | | Yes | Single | Yes | Yes |
97+
| videomode | | Yes | No | No | Yes |
9398

9499
## Subscription updates
95100

0 commit comments

Comments
 (0)