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` - GET `/supervisor/info`
The addons from `addons` are only installed one.
```json ```json
{ {
"version": "INSTALL_VERSION", "version": "INSTALL_VERSION",
@ -36,7 +38,7 @@ On success
"name": "xy bla", "name": "xy bla",
"slug": "xy", "slug": "xy",
"version": "LAST_VERSION", "version": "LAST_VERSION",
"installed": "none|INSTALL_VERSION", "installed": "INSTALL_VERSION",
"dedicated": "bool", "dedicated": "bool",
"description": "description" "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` - POST `/supervisor/update`
Optional: Optional:
```json ```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/ping', api_supervisor.ping)
self.webapp.router.add_get('/supervisor/info', api_supervisor.info) 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( self.webapp.router.add_post(
'/supervisor/update', api_supervisor.update) '/supervisor/update', api_supervisor.update)
self.webapp.router.add_post( self.webapp.router.add_post(

View File

@ -46,9 +46,14 @@ class APISupervisor(object):
ATTR_LAST_VERSION: self.config.last_hassio, ATTR_LAST_VERSION: self.config.last_hassio,
ATTR_BETA_CHANNEL: self.config.upstream_beta, ATTR_BETA_CHANNEL: self.config.upstream_beta,
ATTR_ADDONS: self.addons.list_api, 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 @api_process
async def options(self, request): async def options(self, request):
"""Set supervisor options.""" """Set supervisor options."""

View File

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