@@ -90,14 +90,19 @@ class Event(_core.CloudEvent[_core.T]):
90
90
91
91
def _db_endpoint_handler (
92
92
func : _C1 | _C2 ,
93
+ event_type : str ,
93
94
raw : _ce .CloudEvent ,
94
95
) -> None :
95
96
event_attributes = raw ._get_attributes ()
96
97
event_data : _typing .Any = raw .get_data ()
97
98
# TODO Params are built locally via path pattern which is currently unimplemented
98
99
params : dict [str , str ] = {}
99
- database_event_data = event_data ["data" ]
100
- if "delta" in event_data :
100
+ database_event_data = event_data
101
+ if event_type == _event_type_deleted :
102
+ database_event_data = database_event_data ["data" ]
103
+ if event_type == _event_type_created :
104
+ database_event_data = database_event_data ["delta" ]
105
+ if event_type in (_event_type_written , _event_type_updated ):
101
106
before = event_data ["data" ]
102
107
after = event_data ["delta" ]
103
108
# Merge delta into data to generate an 'after' view of the data.
@@ -153,7 +158,7 @@ def on_value_written_inner_decorator(func: _C1):
153
158
154
159
@_functools .wraps (func )
155
160
def on_value_written_wrapped (raw : _ce .CloudEvent ):
156
- return _db_endpoint_handler (func , raw )
161
+ return _db_endpoint_handler (func , _event_type_written , raw )
157
162
158
163
_util .set_func_endpoint_attr (
159
164
on_value_written_wrapped ,
@@ -191,7 +196,7 @@ def on_value_updated_inner_decorator(func: _C1):
191
196
192
197
@_functools .wraps (func )
193
198
def on_value_updated_wrapped (raw : _ce .CloudEvent ):
194
- return _db_endpoint_handler (func , raw )
199
+ return _db_endpoint_handler (func , _event_type_updated , raw )
195
200
196
201
_util .set_func_endpoint_attr (
197
202
on_value_updated_wrapped ,
@@ -229,7 +234,7 @@ def on_value_created_inner_decorator(func: _C2):
229
234
230
235
@_functools .wraps (func )
231
236
def on_value_created_wrapped (raw : _ce .CloudEvent ):
232
- return _db_endpoint_handler (func , raw )
237
+ return _db_endpoint_handler (func , _event_type_created , raw )
233
238
234
239
_util .set_func_endpoint_attr (
235
240
on_value_created_wrapped ,
@@ -267,7 +272,7 @@ def on_value_deleted_inner_decorator(func: _C2):
267
272
268
273
@_functools .wraps (func )
269
274
def on_value_deleted_wrapped (raw : _ce .CloudEvent ):
270
- return _db_endpoint_handler (func , raw )
275
+ return _db_endpoint_handler (func , _event_type_deleted , raw )
271
276
272
277
_util .set_func_endpoint_attr (
273
278
on_value_deleted_wrapped ,
0 commit comments