Skip to content

Commit

Permalink
feat: Add properties to capability
Browse files Browse the repository at this point in the history
  • Loading branch information
Hypfer committed Jan 18, 2021
1 parent b2f46ec commit 7114fcc
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 4 deletions.
13 changes: 11 additions & 2 deletions lib/core/capabilities/Capability.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ const NotImplementedError = require("../NotImplementedError");

class Capability {
/**
* //TODO: Ggf braucht es eine Referenz auf die Config hier
*
* @param {object} options
* @param {import("../ValetudoRobot")|any} options.robot
Expand All @@ -20,6 +19,16 @@ class Capability {
getType() {
throw new NotImplementedError();
}

/**
* This may contain capability-specific information, restrictions etc, which can't be handled
* by splitting the problem into seperate capabilities
*
* @returns {object}
*/
getProperties() {
return {};
}
}

module.exports = Capability;
module.exports = Capability;
Original file line number Diff line number Diff line change
Expand Up @@ -86,3 +86,5 @@ class CombinedVirtualRestrictionsCapability extends Capability {
CombinedVirtualRestrictionsCapability.TYPE = "CombinedVirtualRestrictionsCapability";

module.exports = CombinedVirtualRestrictionsCapability;

//Todo: No-Mop-Zone type in properties
30 changes: 29 additions & 1 deletion lib/core/capabilities/ZoneCleaningCapability.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,39 @@ class ZoneCleaningCapability extends Capability {
throw new NotImplementedError();
}

/**
* @returns {ZoneCleaningCapabilityProperties}
*/
getProperties() {
return {
zoneCount: {
min: 1,
max: 1
},
iterationCount: {
min: 1,
max: 1
}
};
}

getType() {
return ZoneCleaningCapability.TYPE;
}
}

ZoneCleaningCapability.TYPE = "ZoneCleaningCapability";

module.exports = ZoneCleaningCapability;
module.exports = ZoneCleaningCapability;

/**
* @typedef {object} ZoneCleaningCapabilityProperties
*
* @property {object} zoneCount
* @property {number} zoneCount.min
* @property {number} zoneCount.max
*
* @property {object} iterationCount
* @property {number} iterationCount.min
* @property {number} iterationCount.max
*/
6 changes: 5 additions & 1 deletion lib/webserver/capabilityRouters/CapabilityRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ class CapabilityRouter {
this.router = express.Router({mergeParams: true});
this.capability = options.capability;

this.router.get("/properties", (req, res) => {
res.json(this.capability.getProperties());
});

this.initRoutes();
}

Expand All @@ -28,4 +32,4 @@ class CapabilityRouter {
}
}

module.exports = CapabilityRouter;
module.exports = CapabilityRouter;

0 comments on commit 7114fcc

Please sign in to comment.