Properly separate setting state and value for metadata
This commit is contained in:
parent
82b744334f
commit
7ce029029d
@ -27,6 +27,7 @@ class BrickMetadata(BrickRecord):
|
||||
select_query: str
|
||||
update_field_query: str
|
||||
update_set_state_query: str
|
||||
update_set_value_query: str
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
@ -224,25 +225,25 @@ class BrickMetadata(BrickRecord):
|
||||
/,
|
||||
*,
|
||||
json: Any | None = None,
|
||||
state: Any | None = None,
|
||||
value: Any | None = None,
|
||||
) -> Any:
|
||||
if state is None and json is not None:
|
||||
state = json.get('value', '')
|
||||
if value is None and json is not None:
|
||||
value = json.get('value', '')
|
||||
|
||||
if state == '':
|
||||
state = None
|
||||
if value == '':
|
||||
value = None
|
||||
|
||||
parameters = self.sql_parameters()
|
||||
parameters['set_id'] = brickset.fields.id
|
||||
parameters['state'] = state
|
||||
parameters['value'] = value
|
||||
|
||||
rows, _ = BrickSQL().execute_and_commit(
|
||||
self.update_set_state_query,
|
||||
self.update_set_value_query,
|
||||
parameters=parameters,
|
||||
)
|
||||
|
||||
# Update the status
|
||||
if state is None and not hasattr(self.fields, 'name'):
|
||||
if value is None and not hasattr(self.fields, 'name'):
|
||||
self.fields.name = 'None'
|
||||
|
||||
if rows != 1:
|
||||
@ -253,12 +254,12 @@ class BrickMetadata(BrickRecord):
|
||||
))
|
||||
|
||||
# Info
|
||||
logger.info('{kind} value changed to "{name}" ({state}) for set {set} ({id})'.format( # noqa: E501
|
||||
logger.info('{kind} value changed to "{name}" ({value}) for set {set} ({id})'.format( # noqa: E501
|
||||
kind=self.kind,
|
||||
name=self.fields.name,
|
||||
state=state,
|
||||
value=value,
|
||||
set=brickset.fields.set,
|
||||
id=brickset.fields.id,
|
||||
))
|
||||
|
||||
return state
|
||||
return value
|
||||
|
@ -12,7 +12,7 @@ class BrickSetStorage(BrickMetadata):
|
||||
insert_query: str = 'set/metadata/storage/insert'
|
||||
select_query: str = 'set/metadata/storage/select'
|
||||
update_field_query: str = 'set/metadata/storage/update/field'
|
||||
update_set_state_query: str = 'set/metadata/storage/update/state'
|
||||
update_set_value_query: str = 'set/metadata/storage/update/value'
|
||||
|
||||
# Self url
|
||||
def url(self, /) -> str:
|
||||
|
@ -1,3 +1,3 @@
|
||||
UPDATE "bricktracker_sets"
|
||||
SET "storage" = :state
|
||||
SET "storage" = :value
|
||||
WHERE "bricktracker_sets"."id" IS NOT DISTINCT FROM :set_id
|
@ -77,9 +77,9 @@ def update_storage(*, id: str) -> Response:
|
||||
allow_none=True
|
||||
)
|
||||
|
||||
state = storage.update_set_value(brickset, state=storage.fields.id)
|
||||
value = storage.update_set_value(brickset, value=storage.fields.id)
|
||||
|
||||
return jsonify({'value': state})
|
||||
return jsonify({'value': value})
|
||||
|
||||
|
||||
# Change the state of a tag
|
||||
|
Loading…
Reference in New Issue
Block a user