Move list of all available addons to own api call (#24)

* Move list of all available addons to own api call

* fix lint

* fix lint

* fix style
This commit is contained in:
Pascal Vizeli 2017-04-30 22:15:03 +02:00 committed by GitHub
parent 2e168d089c
commit c76408e4e8
4 changed files with 29 additions and 3 deletions

21
API.md
View File

@ -26,6 +26,8 @@ On success
- GET `/supervisor/info`
The addons from `addons` are only installed one.
```json
{
"version": "INSTALL_VERSION",
@ -36,7 +38,7 @@ On success
"name": "xy bla",
"slug": "xy",
"version": "LAST_VERSION",
"installed": "none|INSTALL_VERSION",
"installed": "INSTALL_VERSION",
"dedicated": "bool",
"description": "description"
}
@ -47,6 +49,23 @@ On success
}
```
- GET `/supervisor/addons`
Get all available addons
```json
[
{
"name": "xy bla",
"slug": "xy",
"version": "LAST_VERSION",
"installed": "none|INSTALL_VERSION",
"dedicated": "bool",
"description": "description"
}
]
```
- POST `/supervisor/update`
Optional:
```json

View File

@ -48,6 +48,8 @@ class RestAPI(object):
self.webapp.router.add_get('/supervisor/ping', api_supervisor.ping)
self.webapp.router.add_get('/supervisor/info', api_supervisor.info)
self.webapp.router.add_get(
'/supervisor/addons', api_supervisor.available_addons)
self.webapp.router.add_post(
'/supervisor/update', api_supervisor.update)
self.webapp.router.add_post(

View File

@ -46,9 +46,14 @@ class APISupervisor(object):
ATTR_LAST_VERSION: self.config.last_hassio,
ATTR_BETA_CHANNEL: self.config.upstream_beta,
ATTR_ADDONS: self.addons.list_api,
ATTR_ADDONS_REPOSITORIES: list(self.config.addons_repositories),
ATTR_ADDONS_REPOSITORIES: self.config.addons_repositories,
}
@api_process
async def available_addons(self, request):
"""Return information for all available addons."""
return self.addons.list_api
@api_process
async def options(self, request):
"""Set supervisor options."""

View File

@ -30,7 +30,7 @@ def api_process(method):
except RuntimeError as err:
return api_return_error(message=str(err))
if isinstance(answer, dict):
if isinstance(answer, (dict, list)):
return api_return_ok(data=answer)
elif answer:
return api_return_ok()