healthcheck endpoint (#998)

Co-authored-by: Igor Rzegocki <igor@rzegocki.pl>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/998
Reviewed-by: konrad <k@knt.li>
Co-authored-by: ajgon <vikunja-gitea@ajgon.ovh>
Co-committed-by: ajgon <vikunja-gitea@ajgon.ovh>
This commit is contained in:
ajgon 2021-10-03 18:37:02 +00:00 committed by konrad
parent cd6cd840a2
commit fb9fa27488
3 changed files with 64 additions and 0 deletions

View file

@ -0,0 +1,33 @@
// Vikunja is a to-do list application to facilitate your life.
// Copyright 2018-2021 Vikunja and contributors. All rights reserved.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public Licensee as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public Licensee for more details.
//
// You should have received a copy of the GNU Affero General Public Licensee
// along with this program. If not, see <https://www.gnu.org/licenses/>.
package integrations
import (
"net/http"
"testing"
"code.vikunja.io/api/pkg/routes"
"github.com/stretchr/testify/assert"
)
func TestHealthcheck(t *testing.T) {
t.Run("healthcheck", func(t *testing.T) {
rec, err := newTestRequest(t, http.MethodGet, routes.HealthcheckHandler, ``, nil, nil)
assert.NoError(t, err)
assert.Contains(t, rec.Body.String(), "OK")
})
}

28
pkg/routes/healthcheck.go Normal file
View file

@ -0,0 +1,28 @@
// Vikunja is a to-do list application to facilitate your life.
// Copyright 2018-2021 Vikunja and contributors. All rights reserved.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public Licensee as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public Licensee for more details.
//
// You should have received a copy of the GNU Affero General Public Licensee
// along with this program. If not, see <https://www.gnu.org/licenses/>.
package routes
import (
"net/http"
"github.com/labstack/echo/v4"
)
// HealthcheckHandler handles healthckeck 'OK' response
func HealthcheckHandler(c echo.Context) error {
return c.String(http.StatusOK, "OK")
}

View file

@ -198,6 +198,9 @@ func RegisterRoutes(e *echo.Echo) {
registerCalDavRoutes(c) registerCalDavRoutes(c)
} }
// healthcheck
e.GET("/health", HealthcheckHandler)
// CORS_SHIT // CORS_SHIT
if config.CorsEnable.GetBool() { if config.CorsEnable.GetBool() {
e.Use(middleware.CORSWithConfig(middleware.CORSConfig{ e.Use(middleware.CORSWithConfig(middleware.CORSConfig{