@@ -189,3 +189,40 @@ func DisconnectInfra(projectID string, infraID string, cred types.Credentials) (
189
189
return DisconnectInfraData {}, err
190
190
}
191
191
}
192
+
193
+ // GetServerVersion fetches the GQL server version
194
+ func GetServerVersion (endpoint string ) (ServerVersionResponse , error ) {
195
+
196
+ query , err := json .Marshal (ServerVersionQuery )
197
+ if err != nil {
198
+ return ServerVersionResponse {}, err
199
+ }
200
+ resp , err := apis .SendRequest (
201
+ apis.SendRequestParams {
202
+ Endpoint : endpoint + utils .GQLAPIPath ,
203
+ },
204
+ query ,
205
+ string (types .Post ),
206
+ )
207
+ if err != nil {
208
+ return ServerVersionResponse {}, err
209
+ }
210
+ bodyBytes , err := ioutil .ReadAll (resp .Body )
211
+ defer resp .Body .Close ()
212
+ if err != nil {
213
+ return ServerVersionResponse {}, err
214
+ }
215
+ if resp .StatusCode == http .StatusOK {
216
+ var version ServerVersionResponse
217
+ err = json .Unmarshal (bodyBytes , & version )
218
+ if err != nil {
219
+ return ServerVersionResponse {}, err
220
+ }
221
+ if len (version .Errors ) > 0 {
222
+ return ServerVersionResponse {}, errors .New (version .Errors [0 ].Message )
223
+ }
224
+ return version , nil
225
+ } else {
226
+ return ServerVersionResponse {}, errors .New (resp .Status )
227
+ }
228
+ }
0 commit comments