Skip to content

Commit 67bb05a

Browse files
committed
refactor(metric): align add_metric and update_metric parameter names with get_metric
1 parent 17cafda commit 67bb05a

1 file changed

Lines changed: 19 additions & 10 deletions

File tree

wikirate4py/api.py

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1524,16 +1524,16 @@ def add_relationship(self, **kwargs):
15241524

15251525
@objectify(Metric)
15261526
def add_metric(self, **kwargs):
1527-
"""add_metric(designer, name, question, about, methodology, topic, topic_framework, value_type, options, research_policy, report_type)
1527+
"""add_metric(metric_designer, metric_name, question, about, methodology, topic, topic_framework, value_type, options, research_policy, report_type)
15281528
15291529
Creates and Returns a new Metric
15301530
15311531
Parameters
15321532
-------------------
1533-
designer
1533+
metric_designer
15341534
designer of the metric
15351535
1536-
name
1536+
metric_name
15371537
name of the metric
15381538
15391539
question
@@ -1571,7 +1571,7 @@ def add_metric(self, **kwargs):
15711571
:py:class:`~wikirate4py.models.Metric`
15721572
15731573
"""
1574-
required_params = ('designer', 'name', 'metric_type', 'value_type')
1574+
required_params = ('metric_designer', 'metric_name', 'metric_type', 'value_type')
15751575
optional_params = (
15761576
'question',
15771577
'about',
@@ -1588,7 +1588,7 @@ def add_metric(self, **kwargs):
15881588

15891589
params = {
15901590
"card[type]": "Metric",
1591-
"card[name]": kwargs['designer'] + '+' + kwargs['name'],
1591+
"card[name]": kwargs['metric_designer'] + '+' + kwargs['metric_name'],
15921592
"card[subcards][+value_type]": kwargs['value_type'],
15931593
"card[subcards][+*metric_type]": kwargs['metric_type'],
15941594
"card[skip]": "requirements",
@@ -1607,8 +1607,8 @@ def add_metric(self, **kwargs):
16071607
return self.post("/card/create", params=params)
16081608

16091609
@objectify(Metric)
1610-
def update_metric(self, identifier, **kwargs):
1611-
"""add_metric(designer, name, question, about, methodology, topic, topic_framework, value_type, options, research_policy, report_type, title)
1610+
def update_metric(self, identifier=None, metric_name=None, metric_designer=None, **kwargs):
1611+
"""add_metric(metric_designer, metric_name, question, about, methodology, topic, topic_framework, value_type, options, research_policy, report_type, title)
16121612
16131613
Creates and Returns a new Metric
16141614
@@ -1617,7 +1617,7 @@ def update_metric(self, identifier, **kwargs):
16171617
designer
16181618
designer of the metric
16191619
1620-
name
1620+
metric_name
16211621
name of the metric
16221622
16231623
question
@@ -1655,14 +1655,23 @@ def update_metric(self, identifier, **kwargs):
16551655
:py:class:`~wikirate4py.models.Metric`
16561656
16571657
"""
1658+
if identifier is None:
1659+
if not metric_name or not metric_designer:
1660+
raise Wikirate4PyException(
1661+
"You must provide either `identifier` or both `metric_name` and `metric_designer`."
1662+
)
1663+
1664+
card_name = build_card_identifier(identifier) if identifier is not None else '+'.join([
1665+
build_card_identifier(metric_designer),
1666+
build_card_identifier(metric_name)])
1667+
16581668
optional_params = (
16591669
'metric_type', 'value_type', 'question', 'about', 'methodology', 'unit', 'topic', 'topic_framework',
16601670
'value_options', 'research_policy', 'report_type', 'unpublished')
16611671
self._warn_unexpected(kwargs, optional_params)
16621672

16631673
params = {
16641674
"card[type]": "Metric",
1665-
# "card[name]": kwargs['designer'] + '+' + kwargs['name'],
16661675
"card[skip]": "requirements",
16671676
"format": "json",
16681677
"success[format]": "json"
@@ -1676,7 +1685,7 @@ def update_metric(self, identifier, **kwargs):
16761685
params['card[subcards][+' + k + ']'] = str(kwargs[k])
16771686

16781687
log.debug("PARAMS: %r", params)
1679-
return self.post(f"/update/~{identifier}", params=params)
1688+
return self.post(f"/update/{card_name}", params=params)
16801689

16811690
@objectify(Relationship)
16821691
def update_relationship(self, **kwargs) -> Relationship:

0 commit comments

Comments
 (0)