This repository was archived by the owner on Dec 8, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +28
-0
lines changed
Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Original file line number Diff line number Diff line change @@ -244,4 +244,32 @@ public extension SwiftTrader {
244244 return . failure( swiftTraderError)
245245 }
246246 }
247+
248+ // MARK: - WebSocket
249+
250+ /// Requests an authorized token for subscribing to private channels and messages via WebSocket.
251+ ///
252+ /// https://www.kucoin.com/docs/websocket/basic-info/apply-connect-token/private-channels-authentication-request-required-
253+ ///
254+ /// - Returns: An instance of `KucoinWebSocketPrivateTokenResponse` or `SwiftTraderError`.
255+ @discardableResult func kucoinSpotWebSocketRequestPrivateToken( ) async throws
256+ -> Result < KucoinWebSocketPrivateTokenResponse , SwiftTraderError > {
257+ guard let auth = kucoinAuth else {
258+ return . failure( . kucoinMissingAuthentication)
259+ }
260+ let request = KucoinSpotWebSocketBulletPrivateRequest (
261+ kucoinAuth: auth,
262+ settings: settings. networkRequestSettings
263+ )
264+ switch await request. execute ( ) {
265+ case . success( let model) :
266+ guard let privateTokenResponse = model as? KucoinWebSocketPrivateTokenResponse else {
267+ return . failure( . unexpectedResponse( modelString: " \( model) " ) )
268+ }
269+ return . success( privateTokenResponse)
270+ case . failure( let error) :
271+ let swiftTraderError = handle ( networkRequestError: error, operation: . kucoinSpotWebSocketPrivateToken)
272+ return . failure( swiftTraderError)
273+ }
274+ }
247275}
You can’t perform that action at this time.
0 commit comments