Skip to content

Commit 4f6ede0

Browse files
CopilotSoulPancake
andcommitted
Fix on_duplicate and on_missing to be passed through methods not stored on body
Co-authored-by: SoulPancake <70265851+SoulPancake@users.noreply.github.com>
1 parent 65d8dc4 commit 4f6ede0

3 files changed

Lines changed: 26 additions & 52 deletions

File tree

openfga_sdk/client/client.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -543,19 +543,21 @@ async def _write_with_transaction(
543543
kwargs = options_to_kwargs(options)
544544
conflict_options = options_to_conflict_info(options)
545545

546-
# Set conflict options on the body if provided
546+
# Extract conflict options to pass to the tuple key methods
547+
on_duplicate = None
548+
on_missing = None
547549
if conflict_options:
548550
if conflict_options.on_duplicate_writes:
549-
body.on_duplicate = conflict_options.on_duplicate_writes.value
551+
on_duplicate = conflict_options.on_duplicate_writes.value
550552
if conflict_options.on_missing_deletes:
551-
body.on_missing = conflict_options.on_missing_deletes.value
553+
on_missing = conflict_options.on_missing_deletes.value
552554

553555
writes_tuple_keys = None
554556
deletes_tuple_keys = None
555-
if body.writes_tuple_keys:
556-
writes_tuple_keys = body.writes_tuple_keys
557-
if body.deletes_tuple_keys:
558-
deletes_tuple_keys = body.deletes_tuple_keys
557+
if body.writes:
558+
writes_tuple_keys = body.writes_tuple_keys(on_duplicate=on_duplicate)
559+
if body.deletes:
560+
deletes_tuple_keys = body.deletes_tuple_keys(on_missing=on_missing)
559561

560562
await self._api.write(
561563
WriteRequest(

openfga_sdk/client/models/write_request.py

Lines changed: 8 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,9 @@ def __init__(
2424
self,
2525
writes: list[ClientTuple] | None = None,
2626
deletes: list[ClientTuple] | None = None,
27-
on_duplicate: str | None = None,
28-
on_missing: str | None = None,
2927
) -> None:
3028
self._writes = writes
3129
self._deletes = deletes
32-
self._on_duplicate = on_duplicate
33-
self._on_missing = on_missing
3430

3531
@property
3632
def writes(self) -> list[ClientTuple] | None:
@@ -60,36 +56,9 @@ def deletes(self, value: list[ClientTuple] | None) -> None:
6056
"""
6157
self._deletes = value
6258

63-
@property
64-
def on_duplicate(self) -> str | None:
65-
"""
66-
Return on_duplicate
67-
"""
68-
return self._on_duplicate
69-
70-
@on_duplicate.setter
71-
def on_duplicate(self, value: str | None) -> None:
72-
"""
73-
Set on_duplicate
74-
"""
75-
self._on_duplicate = value
76-
77-
@property
78-
def on_missing(self) -> str | None:
79-
"""
80-
Return on_missing
81-
"""
82-
return self._on_missing
83-
84-
@on_missing.setter
85-
def on_missing(self, value: str | None) -> None:
86-
"""
87-
Set on_missing
88-
"""
89-
self._on_missing = value
90-
91-
@property
92-
def writes_tuple_keys(self) -> WriteRequestWrites | None:
59+
def writes_tuple_keys(
60+
self, on_duplicate: str | None = None
61+
) -> WriteRequestWrites | None:
9362
"""
9463
Return the writes as tuple keys
9564
"""
@@ -101,10 +70,11 @@ def writes_tuple_keys(self) -> WriteRequestWrites | None:
10170
if keys is None:
10271
return None
10372

104-
return WriteRequestWrites(tuple_keys=keys, on_duplicate=self._on_duplicate)
73+
return WriteRequestWrites(tuple_keys=keys, on_duplicate=on_duplicate)
10574

106-
@property
107-
def deletes_tuple_keys(self) -> WriteRequestDeletes | None:
75+
def deletes_tuple_keys(
76+
self, on_missing: str | None = None
77+
) -> WriteRequestDeletes | None:
10878
"""
10979
Return the delete as tuple keys
11080
"""
@@ -116,4 +86,4 @@ def deletes_tuple_keys(self) -> WriteRequestDeletes | None:
11686
if keys is None:
11787
return None
11888

119-
return WriteRequestDeletes(tuple_keys=keys, on_missing=self._on_missing)
89+
return WriteRequestDeletes(tuple_keys=keys, on_missing=on_missing)

openfga_sdk/sync/client/client.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -543,19 +543,21 @@ def _write_with_transaction(
543543
kwargs = options_to_kwargs(options)
544544
conflict_options = options_to_conflict_info(options)
545545

546-
# Set conflict options on the body if provided
546+
# Extract conflict options to pass to the tuple key methods
547+
on_duplicate = None
548+
on_missing = None
547549
if conflict_options:
548550
if conflict_options.on_duplicate_writes:
549-
body.on_duplicate = conflict_options.on_duplicate_writes.value
551+
on_duplicate = conflict_options.on_duplicate_writes.value
550552
if conflict_options.on_missing_deletes:
551-
body.on_missing = conflict_options.on_missing_deletes.value
553+
on_missing = conflict_options.on_missing_deletes.value
552554

553555
writes_tuple_keys = None
554556
deletes_tuple_keys = None
555-
if body.writes_tuple_keys:
556-
writes_tuple_keys = body.writes_tuple_keys
557-
if body.deletes_tuple_keys:
558-
deletes_tuple_keys = body.deletes_tuple_keys
557+
if body.writes:
558+
writes_tuple_keys = body.writes_tuple_keys(on_duplicate=on_duplicate)
559+
if body.deletes:
560+
deletes_tuple_keys = body.deletes_tuple_keys(on_missing=on_missing)
559561

560562
self._api.write(
561563
WriteRequest(

0 commit comments

Comments
 (0)