From eeeb46c8a2152049392b7df06c952dc44b101d98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Beye?= Date: Wed, 15 Sep 2021 18:50:21 +0200 Subject: [PATCH] feat(core): AutoEmptyDockAutoEmptyControlCapability --- ...AutoEmptyDockAutoEmptyControlCapability.js | 15 ++++ backend/lib/core/capabilities/index.js | 1 + backend/lib/webserver/CapabilitiesRouter.js | 3 +- .../SimpleToggleCapabilityRouter.openapi.json | 77 +++++++++++++++++++ 4 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 backend/lib/core/capabilities/AutoEmptyDockAutoEmptyControlCapability.js diff --git a/backend/lib/core/capabilities/AutoEmptyDockAutoEmptyControlCapability.js b/backend/lib/core/capabilities/AutoEmptyDockAutoEmptyControlCapability.js new file mode 100644 index 00000000000..faa7af4811a --- /dev/null +++ b/backend/lib/core/capabilities/AutoEmptyDockAutoEmptyControlCapability.js @@ -0,0 +1,15 @@ +const SimpleToggleCapability = require("./SimpleToggleCapability"); + +/** + * @template {import("../ValetudoRobot")} T + * @extends SimpleToggleCapability + */ +class AutoEmptyDockAutoEmptyControlCapability extends SimpleToggleCapability { + getType() { + return AutoEmptyDockAutoEmptyControlCapability.TYPE; + } +} + +AutoEmptyDockAutoEmptyControlCapability.TYPE = "AutoEmptyDockAutoEmptyControlCapability"; + +module.exports = AutoEmptyDockAutoEmptyControlCapability; diff --git a/backend/lib/core/capabilities/index.js b/backend/lib/core/capabilities/index.js index abfca2fe464..750710b27f7 100644 --- a/backend/lib/core/capabilities/index.js +++ b/backend/lib/core/capabilities/index.js @@ -1,4 +1,5 @@ module.exports = { + AutoEmptyDockAutoEmptyControlCapability: require("./AutoEmptyDockAutoEmptyControlCapability"), BasicControlCapability: require("./BasicControlCapability"), CarpetModeControlCapability: require("./CarpetModeControlCapability"), CombinedVirtualRestrictionsCapability: require("./CombinedVirtualRestrictionsCapability"), diff --git a/backend/lib/webserver/CapabilitiesRouter.js b/backend/lib/webserver/CapabilitiesRouter.js index 765bb53d986..6c7c2f97085 100644 --- a/backend/lib/webserver/CapabilitiesRouter.js +++ b/backend/lib/webserver/CapabilitiesRouter.js @@ -84,7 +84,8 @@ const CAPABILITY_TYPE_TO_ROUTER_MAPPING = { [capabilities.PendingMapChangeHandlingCapability.TYPE]: capabilityRouters.PendingMapChangeHandlingCapabilityRouter, [capabilities.MappingPassCapability.TYPE]: capabilityRouters.MappingPassCapabilityRouter, [capabilities.KeyLockCapability.TYPE]: capabilityRouters.SimpleToggleCapabilityRouter, - [capabilities.ObstacleAvoidanceControlCapability.TYPE]: capabilityRouters.SimpleToggleCapabilityRouter + [capabilities.ObstacleAvoidanceControlCapability.TYPE]: capabilityRouters.SimpleToggleCapabilityRouter, + [capabilities.AutoEmptyDockAutoEmptyControlCapability.TYPE]: capabilityRouters.SimpleToggleCapabilityRouter }; module.exports = CapabilitiesRouter; diff --git a/backend/lib/webserver/capabilityRouters/doc/SimpleToggleCapabilityRouter.openapi.json b/backend/lib/webserver/capabilityRouters/doc/SimpleToggleCapabilityRouter.openapi.json index d1e86b65c23..4283eec8015 100644 --- a/backend/lib/webserver/capabilityRouters/doc/SimpleToggleCapabilityRouter.openapi.json +++ b/backend/lib/webserver/capabilityRouters/doc/SimpleToggleCapabilityRouter.openapi.json @@ -306,5 +306,82 @@ } } } + }, + "/api/v2/robot/capabilities/AutoEmptyDockAutoEmptyControlCapability": { + "get": { + "tags": [ + "AutoEmptyDockAutoEmptyControlCapability" + ], + "summary": "Get auto empty dock auto empty setting", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "put": { + "tags": [ + "AutoEmptyDockAutoEmptyControlCapability" + ], + "summary": "Set auto empty dock auto empty setting", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "enable", + "disable" + ] + } + } + } + } + } + }, + "responses": { + "200": { + "$ref": "#/components/responses/200" + }, + "400": { + "$ref": "#/components/responses/400" + } + } + } + }, + "/api/v2/robot/capabilities/AutoEmptyDockAutoEmptyControlCapability/properties": { + "get": { + "tags": [ + "AutoEmptyDockAutoEmptyControlCapability" + ], + "summary": "Get various capability-related properties", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + } + } } }