13
13
DocumentCountersOperation ,
14
14
CounterOperationType ,
15
15
)
16
+ from ravendb .documents .operations .time_series import TimeSeriesOperation
16
17
from ravendb .documents .session .misc import TransactionMode , ForceRevisionStrategy
18
+ from ravendb .documents .time_series import TimeSeriesOperations
17
19
from ravendb .http .raven_command import RavenCommand
18
20
from ravendb .http .server_node import ServerNode
19
21
from ravendb .json .result import BatchCommandResult
@@ -236,13 +238,11 @@ def __init__(
236
238
name : str = None ,
237
239
change_vector : str = None ,
238
240
command_type : CommandType = None ,
239
- on_before_save_changes : Callable = None ,
240
241
):
241
242
self ._key = key
242
243
self ._name = name
243
244
self ._change_vector = change_vector
244
245
self ._command_type = command_type
245
- self ._on_before_save_changes = on_before_save_changes
246
246
247
247
@property
248
248
def key (self ) -> str :
@@ -260,11 +260,8 @@ def change_vector(self) -> str:
260
260
def command_type (self ) -> CommandType :
261
261
return self ._command_type
262
262
263
- @property
264
- def on_before_save_changes (
265
- self ,
266
- ) -> Callable [[InMemoryDocumentSessionOperations ], None ]:
267
- return self ._on_before_save_changes
263
+ def on_before_save_changes (self , session : InMemoryDocumentSessionOperations ) -> None :
264
+ pass
268
265
269
266
@abstractmethod
270
267
def serialize (self , conventions : DocumentConventions ) -> dict :
@@ -635,6 +632,37 @@ def serialize(self, conventions: DocumentConventions) -> dict:
635
632
return {"Id" : self ._key , "Name" : self .name , "ChangeVector" : self .change_vector , "Type" : self .command_type }
636
633
637
634
635
+ class TimeSeriesBatchCommandData (CommandData ):
636
+ def __init__ (
637
+ self ,
638
+ document_id : str ,
639
+ name : str ,
640
+ appends : Optional [List [TimeSeriesOperation .AppendOperation ]],
641
+ deletes : Optional [List [TimeSeriesOperation .DeleteOperation ]],
642
+ ):
643
+ if not document_id :
644
+ raise ValueError ("Document id cannot be None" )
645
+ if not name :
646
+ raise ValueError ("Name cannot be None" )
647
+
648
+ super (TimeSeriesBatchCommandData , self ).__init__ (document_id , name , None , CommandType .TIME_SERIES )
649
+ self .time_series = TimeSeriesOperation ()
650
+ self .time_series .name = name
651
+
652
+ if appends :
653
+ for append_operation in appends :
654
+ self .time_series .append (append_operation )
655
+ if deletes :
656
+ for delete_operation in deletes :
657
+ self .time_series .delete (delete_operation )
658
+
659
+ def serialize (self , conventions : DocumentConventions ) -> dict :
660
+ return {"Id" : self .key , "TimeSeries" : self .time_series .to_json (), "Type" : "TimeSeries" }
661
+
662
+ def on_before_save_changes (self , session : InMemoryDocumentSessionOperations ) -> None :
663
+ pass
664
+
665
+
638
666
# ------------ OPTIONS ------------
639
667
640
668
0 commit comments