@@ -91,20 +91,36 @@ public async Task MakeRequest([FromService] IConfiguration configuration, string
91
91
return ;
92
92
}
93
93
94
- var endpointNames = Enum . GetNames < Endpoints > ( ) . ToList ( ) ;
95
- if ( ! string . IsNullOrWhiteSpace ( endpoint_name ) && ! endpointNames . Any ( x => x == endpoint_name ) )
94
+ string endpointUri = null ;
95
+ if ( ! string . IsNullOrWhiteSpace ( endpoint_name ) )
96
96
{
97
- Serilog . Log . Error ( $ "Invalid endpoint_name, valid values: { string . Join ( "," , endpointNames ) } ") ;
98
- return ;
97
+ // the user provided endpoint
98
+ if ( Enum . GetNames < Endpoints > ( ) . ToList ( ) . Any ( x => x == endpoint_name ) )
99
+ {
100
+ // it's site name
101
+ endpointUri = Endpoints [ endpoint_name ] ;
102
+ }
103
+ else if ( endpoint_name . StartsWith ( "ws://" ) || ! endpoint_name . StartsWith ( "wss://" ) )
104
+ {
105
+ // its uri
106
+ endpointUri = endpoint_name ;
107
+ }
108
+ else
109
+ {
110
+ // eveyrhting else is invalid
111
+ Serilog . Log . Error ( $ "Invalid endpoint_name, valid values: { string . Join ( "," , Enum . GetNames < Endpoints > ( ) . ToList ( ) ) } or ws:// or wss:// uri") ;
112
+ return ;
113
+ }
99
114
}
115
+
100
116
var latencyTypes = Enum . GetNames < LatencyType > ( ) . ToList ( ) ;
101
117
if ( ! string . IsNullOrWhiteSpace ( latency_type ) && ! latencyTypes . Any ( x => x == latency_type ) )
102
118
{
103
119
Serilog . Log . Error ( $ "Invalid latency_type, valid values: { string . Join ( "," , latencyTypes ) } ") ;
104
120
return ;
105
121
}
106
122
107
- using ( var wsClient = string . IsNullOrWhiteSpace ( endpoint_name ) ? new CoinApiWsClient ( ) : new CoinApiWsClient ( Endpoints [ endpoint_name ] ) )
123
+ using ( var wsClient = endpointUri == null ? new CoinApiWsClient ( ) : new CoinApiWsClient ( endpointUri ) )
108
124
{
109
125
wsClient . SupressHeartbeat ( supress_hb ) ;
110
126
int msgCount = 0 ;
0 commit comments