mirror of
https://github.com/PiBrewing/craftbeerpi4.git
synced 2024-11-21 14:38:15 +01:00
test withconfig parameter removal
This commit is contained in:
parent
5e2dc35b30
commit
dc36cc1ed3
4 changed files with 46 additions and 3 deletions
|
@ -1,3 +1,3 @@
|
||||||
__version__ = "4.1.8.a5"
|
__version__ = "4.1.8.a6"
|
||||||
__codename__ = "Groundhog Day"
|
__codename__ = "Groundhog Day"
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,9 @@ class CBPiBase(metaclass=ABCMeta):
|
||||||
|
|
||||||
async def set_config_value(self,name,value):
|
async def set_config_value(self,name,value):
|
||||||
return await self.cbpi.config.set(name,value)
|
return await self.cbpi.config.set(name,value)
|
||||||
|
|
||||||
|
async def remove_config_parameter(self,name):
|
||||||
|
return await self.cbpi.config.remove(name)
|
||||||
|
|
||||||
async def add_config_value(self, name, value, type: ConfigType, description, source, options=None):
|
async def add_config_value(self, name, value, type: ConfigType, description, source, options=None):
|
||||||
await self.cbpi.config.add(name, value, type, description, source,options=None)
|
await self.cbpi.config.add(name, value, type, description, source,options=None)
|
||||||
|
|
|
@ -50,10 +50,27 @@ class ConfigController:
|
||||||
with open(self.path, "w") as file:
|
with open(self.path, "w") as file:
|
||||||
json.dump(data, file, indent=4, sort_keys=True)
|
json.dump(data, file, indent=4, sort_keys=True)
|
||||||
|
|
||||||
async def add(self, name, value, type: ConfigType, description, source="", options=None):
|
async def add(self, name, value, type: ConfigType, description, source="craftbeerpi", options=None):
|
||||||
self.cache[name] = Config(name,value,description,type,source,options)
|
self.cache[name] = Config(name,value,description,type,source,options)
|
||||||
data = {}
|
data = {}
|
||||||
for key, value in self.cache.items():
|
for key, value in self.cache.items():
|
||||||
data[key] = value.to_dict()
|
data[key] = value.to_dict()
|
||||||
with open(self.path, "w") as file:
|
with open(self.path, "w") as file:
|
||||||
json.dump(data, file, indent=4, sort_keys=True)
|
json.dump(data, file, indent=4, sort_keys=True)
|
||||||
|
|
||||||
|
async def remove(self, name):
|
||||||
|
data = {}
|
||||||
|
self.testcache={}
|
||||||
|
for key, value in self.cache.items():
|
||||||
|
try:
|
||||||
|
if key != name:
|
||||||
|
data[key] = value.to_dict()
|
||||||
|
self.testcache[key] = Config(name=data[key].get("name"), value=data[key].get("value"), description=data[key].get("description"),
|
||||||
|
type=ConfigType(data[key].get("type", "string")), options=data[key].get("options", None),
|
||||||
|
source=data[key].get("source", "craftbeerpi") )
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
with open(self.path, "w") as file:
|
||||||
|
json.dump(data, file, indent=4, sort_keys=True)
|
||||||
|
self.cache=self.testcache
|
||||||
|
|
||||||
|
|
|
@ -78,5 +78,28 @@ class ConfigHttpEndpoints:
|
||||||
name = request.match_info['name']
|
name = request.match_info['name']
|
||||||
# if name not in self.cache:
|
# if name not in self.cache:
|
||||||
# raise CBPiException("Parameter %s not found" % name)
|
# raise CBPiException("Parameter %s not found" % name)
|
||||||
data = self.controller.get(name)
|
# data = self.controller.get(name)
|
||||||
return web.json_response(self.controller.get(name), dumps=json_dumps)
|
return web.json_response(self.controller.get(name), dumps=json_dumps)
|
||||||
|
|
||||||
|
@request_mapping(path="/remove/{name}/", method="PUT", auth_required=False)
|
||||||
|
async def http_remove(self, request) -> web.Response:
|
||||||
|
|
||||||
|
"""
|
||||||
|
---
|
||||||
|
description: Remove config parameter
|
||||||
|
tags:
|
||||||
|
- Config
|
||||||
|
parameters:
|
||||||
|
- name: "name"
|
||||||
|
in: "path"
|
||||||
|
description: "Parameter name"
|
||||||
|
required: true
|
||||||
|
type: "string"
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: successful operation
|
||||||
|
"""
|
||||||
|
|
||||||
|
name = request.match_info['name']
|
||||||
|
await self.controller.remove(name=name)
|
||||||
|
return web.Response(status=200)
|
Loading…
Reference in a new issue