Merged in feature/healthmove (pull request #165)

Move health endpoint from OpenAPI spec to direct implementation

* Move health endpoint from OpenAPI spec to direct implementation

- Removed HealthService tag from OpenAPI spec
- Removed /health path from OpenAPI spec
- Removed health.go and health_test.go files from api/queryAPI
- Added direct health endpoint in internal/server/api/listener.go
- Updated validator options to skip validation for the /health endpoint
- Added test for health endpoint in internal/server/api/listener_test.go
- Regenerated API code from the updated OpenAPI spec
This commit is contained in:
Michael McGuinness
2025-06-10 20:32:10 +00:00
parent e544f08505
commit d4a65ccf78
11 changed files with 280 additions and 423 deletions
-126
View File
@@ -505,9 +505,6 @@ type ClientInterface interface {
// ExportState request
ExportState(ctx context.Context, id ExportID, reqEditors ...RequestEditorFn) (*http.Response, error)
// IsHealthy request
IsHealthy(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
// GetHomePage request
GetHomePage(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
@@ -722,18 +719,6 @@ func (c *Client) ExportState(ctx context.Context, id ExportID, reqEditors ...Req
return c.Client.Do(req)
}
func (c *Client) IsHealthy(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) {
req, err := NewIsHealthyRequest(c.Server)
if err != nil {
return nil, err
}
req = req.WithContext(ctx)
if err := c.applyEditors(ctx, req, reqEditors); err != nil {
return nil, err
}
return c.Client.Do(req)
}
func (c *Client) GetHomePage(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) {
req, err := NewGetHomePageRequest(c.Server)
if err != nil {
@@ -1299,33 +1284,6 @@ func NewExportStateRequest(server string, id ExportID) (*http.Request, error) {
return req, nil
}
// NewIsHealthyRequest generates requests for IsHealthy
func NewIsHealthyRequest(server string) (*http.Request, error) {
var err error
serverURL, err := url.Parse(server)
if err != nil {
return nil, err
}
operationPath := fmt.Sprintf("/health")
if operationPath[0] == '/' {
operationPath = "." + operationPath
}
queryURL, err := serverURL.Parse(operationPath)
if err != nil {
return nil, err
}
req, err := http.NewRequest("GET", queryURL.String(), nil)
if err != nil {
return nil, err
}
return req, nil
}
// NewGetHomePageRequest generates requests for GetHomePage
func NewGetHomePageRequest(server string) (*http.Request, error) {
var err error
@@ -1743,9 +1701,6 @@ type ClientWithResponsesInterface interface {
// ExportStateWithResponse request
ExportStateWithResponse(ctx context.Context, id ExportID, reqEditors ...RequestEditorFn) (*ExportStateResponse, error)
// IsHealthyWithResponse request
IsHealthyWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*IsHealthyResponse, error)
// GetHomePageWithResponse request
GetHomePageWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetHomePageResponse, error)
@@ -2063,31 +2018,6 @@ func (r ExportStateResponse) StatusCode() int {
return 0
}
type IsHealthyResponse struct {
Body []byte
HTTPResponse *http.Response
JSON400 *InvalidRequest
JSON401 *Unauthorized
JSON429 *TooManyRequests
JSON500 *InternalError
}
// Status returns HTTPResponse.Status
func (r IsHealthyResponse) Status() string {
if r.HTTPResponse != nil {
return r.HTTPResponse.Status
}
return http.StatusText(0)
}
// StatusCode returns HTTPResponse.StatusCode
func (r IsHealthyResponse) StatusCode() int {
if r.HTTPResponse != nil {
return r.HTTPResponse.StatusCode
}
return 0
}
type GetHomePageResponse struct {
Body []byte
HTTPResponse *http.Response
@@ -2448,15 +2378,6 @@ func (c *ClientWithResponses) ExportStateWithResponse(ctx context.Context, id Ex
return ParseExportStateResponse(rsp)
}
// IsHealthyWithResponse request returning *IsHealthyResponse
func (c *ClientWithResponses) IsHealthyWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*IsHealthyResponse, error) {
rsp, err := c.IsHealthy(ctx, reqEditors...)
if err != nil {
return nil, err
}
return ParseIsHealthyResponse(rsp)
}
// GetHomePageWithResponse request returning *GetHomePageResponse
func (c *ClientWithResponses) GetHomePageWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetHomePageResponse, error) {
rsp, err := c.GetHomePage(ctx, reqEditors...)
@@ -3135,53 +3056,6 @@ func ParseExportStateResponse(rsp *http.Response) (*ExportStateResponse, error)
return response, nil
}
// ParseIsHealthyResponse parses an HTTP response from a IsHealthyWithResponse call
func ParseIsHealthyResponse(rsp *http.Response) (*IsHealthyResponse, error) {
bodyBytes, err := io.ReadAll(rsp.Body)
defer func() { _ = rsp.Body.Close() }()
if err != nil {
return nil, err
}
response := &IsHealthyResponse{
Body: bodyBytes,
HTTPResponse: rsp,
}
switch {
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
var dest InvalidRequest
if err := json.Unmarshal(bodyBytes, &dest); err != nil {
return nil, err
}
response.JSON400 = &dest
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
var dest Unauthorized
if err := json.Unmarshal(bodyBytes, &dest); err != nil {
return nil, err
}
response.JSON401 = &dest
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 429:
var dest TooManyRequests
if err := json.Unmarshal(bodyBytes, &dest); err != nil {
return nil, err
}
response.JSON429 = &dest
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
var dest InternalError
if err := json.Unmarshal(bodyBytes, &dest); err != nil {
return nil, err
}
response.JSON500 = &dest
}
return response, nil
}
// ParseGetHomePageResponse parses an HTTP response from a GetHomePageWithResponse call
func ParseGetHomePageResponse(rsp *http.Response) (*GetHomePageResponse, error) {
bodyBytes, err := io.ReadAll(rsp.Body)