Bump API à version 2 #2

Merged
vlbeaudoin merged 9 commits from bump/v2 into main 2023-06-03 20:42:35 -04:00
6 changed files with 31 additions and 29 deletions
Showing only changes of commit 8adb253f47 - Show all commits

View file

@ -6,7 +6,7 @@ import (
"log" "log"
"git.agecem.com/agecem/bottin-agenda/handlers" "git.agecem.com/agecem/bottin-agenda/handlers"
bottindata "git.agecem.com/agecem/bottin/v4/data" bottindata "git.agecem.com/agecem/bottin/v5/data"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware" "github.com/labstack/echo/v4/middleware"
"github.com/spf13/cobra" "github.com/spf13/cobra"
@ -64,19 +64,18 @@ var apiCmd = &cobra.Command{
// Routes // Routes
e.GET("/v2/", handlers.GetV2) e.GET("/v2/health/", handlers.GetHealth)
e.GET("/v2/membres/:membre_id", handlers.GetMembre) e.GET("/v2/membres/:membre_id/", handlers.GetMembre)
// Check bottin is ready // Check bottin is ready
message, err := bottinConnection.GetV4() bottinHealthResponse, err := bottinConnection.GetHealth()
if err != nil { if err != nil {
log.Fatal(err) log.Fatalf("bottinConnection.GetHealth(): %s", err)
} }
//TODO log.Println(bottinHealthResponse)
log.Println(message)
// Execution // Execution

View file

@ -67,33 +67,36 @@ func (a *ApiClient) Call(method, route string, requestBody io.Reader, useKey boo
return response, nil return response, nil
} }
// GetV4 allows checking for API v4 server health // BottinHealthResponse is the response type for GetBottinHealth
func (a *ApiClient) GetV4() (string, error) { type BottinHealthResponse struct {
var getV4Response struct { Message string `json:"message"`
Message string `json:"message"` }
}
response, err := a.Call(http.MethodGet, "/v4", nil, true) // GetHealth allows checking for API server health
func (a *ApiClient) GetBottinHealth() (string, error) {
var healthResponse BottinHealthResponse
response, err := a.Call(http.MethodGet, "/v4/health", nil, true)
if err != nil { if err != nil {
return getV4Response.Message, err return healthResponse.Message, err
} }
defer response.Body.Close() defer response.Body.Close()
body, err := ioutil.ReadAll(response.Body) body, err := ioutil.ReadAll(response.Body)
if err != nil { if err != nil {
return getV4Response.Message, err return healthResponse.Message, err
} }
if err := json.Unmarshal(body, &getV4Response); err != nil { if err := json.Unmarshal(body, &healthResponse); err != nil {
return getV4Response.Message, err return healthResponse.Message, err
} }
if getV4Response.Message == "" { if healthResponse.Message == "" {
return getV4Response.Message, errors.New("Could not confirm that API server is up, no response message") return healthResponse.Message, errors.New("Could not confirm that API server is up, no response message")
} }
return getV4Response.Message, nil return healthResponse.Message, nil
} }
/* /*

2
go.mod
View file

@ -3,7 +3,7 @@ module git.agecem.com/agecem/bottin-agenda
go 1.20 go 1.20
require ( require (
git.agecem.com/agecem/bottin/v4 v4.1.0 git.agecem.com/agecem/bottin/v5 v5.0.4
github.com/jackc/pgx v3.6.2+incompatible github.com/jackc/pgx v3.6.2+incompatible
github.com/jmoiron/sqlx v1.3.5 github.com/jmoiron/sqlx v1.3.5
github.com/labstack/echo/v4 v4.10.2 github.com/labstack/echo/v4 v4.10.2

4
go.sum
View file

@ -36,8 +36,8 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
git.agecem.com/agecem/bottin/v4 v4.1.0 h1:S8Mrh/pJaH5b0LbJkV7edFNyF+BJ1OZ7pYAccUUcv28= git.agecem.com/agecem/bottin/v5 v5.0.4 h1:19xQjnc9cZU1vBtk9mjhQ8QDg4nlpYLShmkbUeptVbM=
git.agecem.com/agecem/bottin/v4 v4.1.0/go.mod h1:U7jxx83B4D7ST1GP+0tvCrAkMtC0s1Qgvv1NvCIg8CQ= git.agecem.com/agecem/bottin/v5 v5.0.4/go.mod h1:OGqwTvEtIEOg/AHZgaJPzsMCy94dWygq89rMJlCFLuU=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=

View file

@ -3,18 +3,18 @@ package handlers
import ( import (
"net/http" "net/http"
"git.agecem.com/agecem/bottin-agenda/data" bottindata "git.agecem.com/agecem/bottin/v5/data"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/spf13/viper" "github.com/spf13/viper"
) )
func GetV2(c echo.Context) error { func GetHealth(c echo.Context) error {
bottinApiKey := viper.GetString("bottin.api.key") bottinApiKey := viper.GetString("bottin.api.key")
bottinApiHost := viper.GetString("bottin.api.host") bottinApiHost := viper.GetString("bottin.api.host")
bottinApiProtocol := viper.GetString("bottin.api.protocol") bottinApiProtocol := viper.GetString("bottin.api.protocol")
bottinApiPort := viper.GetInt("bottin.api.port") bottinApiPort := viper.GetInt("bottin.api.port")
bottinConnection := data.NewApiClient( bottinConnection := bottindata.NewApiClient(
bottinApiKey, bottinApiKey,
bottinApiHost, bottinApiHost,
bottinApiProtocol, bottinApiProtocol,
@ -23,11 +23,11 @@ func GetV2(c echo.Context) error {
var bottinStatus string var bottinStatus string
message, err := bottinConnection.GetV4() healthResponse, err := bottinConnection.GetHealth()
if err != nil { if err != nil {
bottinStatus = err.Error() bottinStatus = err.Error()
} else { } else {
bottinStatus = message bottinStatus = healthResponse
} }
return c.JSON(http.StatusOK, map[string]string{ return c.JSON(http.StatusOK, map[string]string{

View file

@ -6,7 +6,7 @@ import (
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/spf13/viper" "github.com/spf13/viper"
bottindata "git.agecem.com/agecem/bottin/v4/data" bottindata "git.agecem.com/agecem/bottin/v5/data"
) )
func GetMembre(c echo.Context) error { func GetMembre(c echo.Context) error {