@@ -8,13 +8,13 @@ import GraphQL
8
8
class Client {
9
9
let messenger : Messenger
10
10
11
- var onConnectionError : ( ConnectionErrorResponse ) -> Void = { _ in }
12
- var onConnectionAck : ( ConnectionAckResponse ) -> Void = { _ in }
13
- var onConnectionKeepAlive : ( ConnectionKeepAliveResponse ) -> Void = { _ in }
14
- var onData : ( DataResponse ) -> Void = { _ in }
15
- var onError : ( ErrorResponse ) -> Void = { _ in }
16
- var onComplete : ( CompleteResponse ) -> Void = { _ in }
17
- var onMessage : ( String ) -> Void = { _ in }
11
+ var onConnectionError : ( ConnectionErrorResponse , Client ) -> Void = { _ , _ in }
12
+ var onConnectionAck : ( ConnectionAckResponse , Client ) -> Void = { _ , _ in }
13
+ var onConnectionKeepAlive : ( ConnectionKeepAliveResponse , Client ) -> Void = { _ , _ in }
14
+ var onData : ( DataResponse , Client ) -> Void = { _ , _ in }
15
+ var onError : ( ErrorResponse , Client ) -> Void = { _ , _ in }
16
+ var onComplete : ( CompleteResponse , Client ) -> Void = { _ , _ in }
17
+ var onMessage : ( String , Client ) -> Void = { _ , _ in }
18
18
19
19
let encoder = GraphQLJSONEncoder ( )
20
20
let decoder = JSONDecoder ( )
@@ -31,7 +31,7 @@ class Client {
31
31
self . messenger. onRecieve { [ weak self] message in
32
32
guard let self = self else { return }
33
33
34
- self . onMessage ( message)
34
+ self . onMessage ( message, self )
35
35
36
36
// Detect and ignore error responses.
37
37
if message. starts ( with: " 44 " ) {
@@ -62,42 +62,42 @@ class Client {
62
62
self . messenger. error ( error. message, code: error. code)
63
63
return
64
64
}
65
- self . onConnectionError ( connectionErrorResponse)
65
+ self . onConnectionError ( connectionErrorResponse, self )
66
66
case . GQL_CONNECTION_ACK:
67
67
guard let connectionAckResponse = try ? self . decoder. decode ( ConnectionAckResponse . self, from: json) else {
68
68
let error = GraphQLWSError . invalidResponseFormat ( messageType: . GQL_CONNECTION_ACK)
69
69
self . messenger. error ( error. message, code: error. code)
70
70
return
71
71
}
72
- self . onConnectionAck ( connectionAckResponse)
72
+ self . onConnectionAck ( connectionAckResponse, self )
73
73
case . GQL_CONNECTION_KEEP_ALIVE:
74
74
guard let connectionKeepAliveResponse = try ? self . decoder. decode ( ConnectionKeepAliveResponse . self, from: json) else {
75
75
let error = GraphQLWSError . invalidResponseFormat ( messageType: . GQL_CONNECTION_KEEP_ALIVE)
76
76
self . messenger. error ( error. message, code: error. code)
77
77
return
78
78
}
79
- self . onConnectionKeepAlive ( connectionKeepAliveResponse)
79
+ self . onConnectionKeepAlive ( connectionKeepAliveResponse, self )
80
80
case . GQL_DATA:
81
81
guard let nextResponse = try ? self . decoder. decode ( DataResponse . self, from: json) else {
82
82
let error = GraphQLWSError . invalidResponseFormat ( messageType: . GQL_DATA)
83
83
self . messenger. error ( error. message, code: error. code)
84
84
return
85
85
}
86
- self . onData ( nextResponse)
86
+ self . onData ( nextResponse, self )
87
87
case . GQL_ERROR:
88
88
guard let errorResponse = try ? self . decoder. decode ( ErrorResponse . self, from: json) else {
89
89
let error = GraphQLWSError . invalidResponseFormat ( messageType: . GQL_ERROR)
90
90
self . messenger. error ( error. message, code: error. code)
91
91
return
92
92
}
93
- self . onError ( errorResponse)
93
+ self . onError ( errorResponse, self )
94
94
case . GQL_COMPLETE:
95
95
guard let completeResponse = try ? self . decoder. decode ( CompleteResponse . self, from: json) else {
96
96
let error = GraphQLWSError . invalidResponseFormat ( messageType: . GQL_COMPLETE)
97
97
self . messenger. error ( error. message, code: error. code)
98
98
return
99
99
}
100
- self . onComplete ( completeResponse)
100
+ self . onComplete ( completeResponse, self )
101
101
case . unknown:
102
102
let error = GraphQLWSError . invalidType ( )
103
103
self . messenger. error ( error. message, code: error. code)
@@ -107,43 +107,43 @@ class Client {
107
107
108
108
/// Define the callback run on receipt of a `connection_error` message
109
109
/// - Parameter callback: The callback to assign
110
- func onConnectionError( _ callback: @escaping ( ConnectionErrorResponse ) -> Void ) {
110
+ func onConnectionError( _ callback: @escaping ( ConnectionErrorResponse , Client ) -> Void ) {
111
111
self . onConnectionError = callback
112
112
}
113
113
114
114
/// Define the callback run on receipt of a `connection_ack` message
115
115
/// - Parameter callback: The callback to assign
116
- func onConnectionAck( _ callback: @escaping ( ConnectionAckResponse ) -> Void ) {
116
+ func onConnectionAck( _ callback: @escaping ( ConnectionAckResponse , Client ) -> Void ) {
117
117
self . onConnectionAck = callback
118
118
}
119
119
120
120
/// Define the callback run on receipt of a `connection_ka` message
121
121
/// - Parameter callback: The callback to assign
122
- func onConnectionKeepAlive( _ callback: @escaping ( ConnectionKeepAliveResponse ) -> Void ) {
122
+ func onConnectionKeepAlive( _ callback: @escaping ( ConnectionKeepAliveResponse , Client ) -> Void ) {
123
123
self . onConnectionKeepAlive = callback
124
124
}
125
125
126
126
/// Define the callback run on receipt of a `data` message
127
127
/// - Parameter callback: The callback to assign
128
- func onData( _ callback: @escaping ( DataResponse ) -> Void ) {
128
+ func onData( _ callback: @escaping ( DataResponse , Client ) -> Void ) {
129
129
self . onData = callback
130
130
}
131
131
132
132
/// Define the callback run on receipt of an `error` message
133
133
/// - Parameter callback: The callback to assign
134
- func onError( _ callback: @escaping ( ErrorResponse ) -> Void ) {
134
+ func onError( _ callback: @escaping ( ErrorResponse , Client ) -> Void ) {
135
135
self . onError = callback
136
136
}
137
137
138
138
/// Define the callback run on receipt of any message
139
139
/// - Parameter callback: The callback to assign
140
- func onComplete( _ callback: @escaping ( CompleteResponse ) -> Void ) {
140
+ func onComplete( _ callback: @escaping ( CompleteResponse , Client ) -> Void ) {
141
141
self . onComplete = callback
142
142
}
143
143
144
144
/// Define the callback run on receipt of a `complete` message
145
145
/// - Parameter callback: The callback to assign
146
- func onMessage( _ callback: @escaping ( String ) -> Void ) {
146
+ func onMessage( _ callback: @escaping ( String , Client ) -> Void ) {
147
147
self . onMessage = callback
148
148
}
149
149
0 commit comments