11from pubnub .endpoints .file_operations .file_based_endpoint import FileOperationEndpoint
2-
32from pubnub .crypto import PubNubFileCrypto
43from pubnub .enums import HttpMethod , PNOperationType
54from pubnub .models .consumer .file import PNSendFileResult
65from pubnub .endpoints .file_operations .publish_file_message import PublishFileMessage
76from pubnub .endpoints .file_operations .fetch_upload_details import FetchFileUploadS3Data
87from pubnub .request_handlers .requests_handler import RequestsRequestHandler
98from pubnub .endpoints .mixins import TimeTokenOverrideMixin
10-
9+ from pubnub .models .consumer .message_type import PNMessageType
10+ from typing import Union
1111
1212class SendFileNative (FileOperationEndpoint , TimeTokenOverrideMixin ):
1313 def __init__ (self , pubnub ):
@@ -23,6 +23,8 @@ def __init__(self, pubnub):
2323 self ._file_object = None
2424 self ._replicate = None
2525 self ._ptto = None
26+ self ._message_type = None
27+ self ._space_id = None
2628
2729 def file_object (self , fd ):
2830 self ._file_object = fd
@@ -69,7 +71,16 @@ def is_compressable(self):
6971 return True
7072
7173 def custom_params (self ):
72- return {}
74+ import ipdb
75+ ipdb .set_trace ()
76+ params = {}
77+ if self ._message_type is not None :
78+ params ['type' ] = str (self ._message_type )
79+
80+ if self ._space_id is not None :
81+ params ['space-id' ] = str (self ._space_id )
82+
83+ return params
7384
7485 def validate_params (self ):
7586 self .validate_subscribe_key ()
@@ -110,6 +121,14 @@ def cipher_key(self, cipher_key):
110121 self ._cipher_key = cipher_key
111122 return self
112123
124+ def message_type (self , message_type : Union [PNMessageType , str ]):
125+ self ._message_type = message_type
126+ return self
127+
128+ def space_id (self , space_id ):
129+ self ._space_id = str (space_id )
130+ return self
131+
113132 def create_response (self , envelope , data = None ):
114133 return PNSendFileResult (envelope , self ._file_upload_envelope )
115134
0 commit comments