Skip to content

Commit 400f829

Browse files
committed
fix(songs): workaround for support case with song arrangements - (#144)
1 parent 4ccc96b commit 400f829

2 files changed

Lines changed: 48 additions & 10 deletions

File tree

churchtools_api/songs.py

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,14 @@ def edit_song_arrangement(
426426
duration: (int) lenght in full seconds.
427427
note: (str) more detailed explanation text.
428428
429+
Not useable Keywords due to bug
430+
#TODO@bensteUEM: only some parameters can be applied
431+
# CT support case 147728
432+
# https://github.com/bensteUEM/ChurchToolsAPI/issues/144
433+
source_name: (int|str) id of the source as defined in masterdata.
434+
Alternatively also accepts shortname.
435+
source_reference: (str) source reference number.
436+
429437
Returns:
430438
if changes were applied successful
431439
"""
@@ -434,16 +442,35 @@ def edit_song_arrangement(
434442
existing_arrangement = self.get_song_arrangement(
435443
song_id=song_id, arrangement_id=arrangement_id
436444
)
437-
438-
if isinstance(kwargs.get("source_id"), int):
439-
source_id = kwargs.get("source_id")
440-
elif isinstance(kwargs.get("source_id"), str):
441-
source_id = self.lookup_song_source_as_id(shortname=kwargs.get("source_id"))
445+
# TODO@bensteUEM: only some parameters can be applied
446+
# CT support case 147728
447+
# https://github.com/bensteUEM/ChurchToolsAPI/issues/144
448+
"""
449+
if isinstance(kwargs.get("source_name"), int):
450+
source_name = kwargs.get("source_name")
451+
elif isinstance(kwargs.get("source_name"), str):
452+
source_name = self.lookup_song_source_as_id(
453+
shortname=kwargs.get("source_name")
454+
)
442455
else:
443-
source_id = self.lookup_song_source_as_id(
456+
source_name = self.lookup_song_source_as_id(
444457
shortname=existing_arrangement["sourceName"]
445458
)
446-
459+
"""
460+
if kwargs.get("source_name") or kwargs.get("source_reference"):
461+
logger.warning(
462+
"CT support cas 147728 source_name and reference are "
463+
"not updateabel via REST API"
464+
)
465+
# TODO@bensteUEM: only some parameters can be applied
466+
# CT support case 147728
467+
# https://github.com/bensteUEM/ChurchToolsAPI/issues/144
468+
"""
469+
"sourceName": source_name,
470+
"sourceReference": kwargs.get(
471+
"source_reference", existing_arrangement["sourceReference"]
472+
),
473+
"""
447474
data = {
448475
"name": kwargs.get("name", existing_arrangement["name"]),
449476
"key": kwargs.get("key", existing_arrangement["key"]),

tests/test_churchtools_api_songs.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -326,12 +326,19 @@ def test_create_edit_delete_song_arrangement(self) -> None:
326326
)
327327
assert created_arrangement["name"] == SAMPLE_ARRANGEMENT_NAME
328328

329-
SAMPLE_SOURCE = {"12": "T"}
329+
# SAMPLE_SOURCE = {"12": "T"} #noqa: ERA001
330330

331331
# edit source as text and changed params
332332
SAMPLE_ARRANGEMENT_NAME2 = "TEST_BEZEICHNUNG"
333333
SAMPLE_PARAMS = {
334334
"name": SAMPLE_ARRANGEMENT_NAME2,
335+
# TODO@bensteUEM: only some parameters can be applied
336+
# CT support case 147728
337+
# https://github.com/bensteUEM/ChurchToolsAPI/issues/144
338+
# "sourceName": next(
339+
# iter(SAMPLE_SOURCE.values()) # noqa: ERA001
340+
# ), # using shortname on purpse
341+
# "sourceReference": "source_ref", # noqa: ERA001
335342
"key": "F",
336343
"tempo": 50,
337344
"beat": "beat",
@@ -350,8 +357,13 @@ def test_create_edit_delete_song_arrangement(self) -> None:
350357
created_arrangement[expected_key] == expected_value
351358
for expected_key, expected_value in SAMPLE_PARAMS.items()
352359
)
360+
# TODO@bensteUEM: only some parameters can be applied
361+
# CT support case 147728
362+
# https://github.com/bensteUEM/ChurchToolsAPI/issues/144
363+
# assert created_arrangement["sourceName"] == next(iter(SAMPLE_SOURCE.values())) # noqa: ERA001 E501
353364

354365
# edit2 - source as key id
366+
"""
355367
SAMPLE_PARAMS_SHORT = {
356368
"source_id": int(next(iter(SAMPLE_SOURCE.keys()))),
357369
}
@@ -363,8 +375,7 @@ def test_create_edit_delete_song_arrangement(self) -> None:
363375
song_id=SAMPLE_SONG_ID, arrangement_id=arrangement_id
364376
)
365377
assert created_arrangement["sourceName"] == next(iter(SAMPLE_SOURCE.values()))
366-
assert created_arrangement["duration"] == SAMPLE_PARAMS["duration"]
367-
378+
"""
368379
# delete
369380
was_deleted = self.api.delete_song_arrangement(
370381
song_id=SAMPLE_SONG_ID, arrangement_id=arrangement_id

0 commit comments

Comments
 (0)