Skip to content

Commit

Permalink
add checklFalg endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
mredolatti committed Jan 13, 2025
1 parent 9563f26 commit bbb060e
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 1 deletion.
12 changes: 12 additions & 0 deletions splitio/api/controllers/dtos.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package controllers

type SplitViewDTO struct {
Name string `json:"name"`
TrafficType string `json:"trafficType"`
Killed bool `json:"killed"`
Treatments []string `json:"treatments"`
ChangeNumber int64 `json:"changeNumber"`
Configs map[string]string `json:"configs"`
DefaultTreatment string `json:"defaultTreatment"`
Sets []string `json:"sets"`
}
34 changes: 34 additions & 0 deletions splitio/api/controllers/health.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ type HealthCheckController struct {
func (c *HealthCheckController) Register(router gin.IRouter) {
router.GET("/health", c.isHealthy)
router.GET("/ready", c.isReady)
router.GET("/checkFlag", c.checkFlag)
}

func (c *HealthCheckController) isHealthy(ctx *gin.Context) {
Expand Down Expand Up @@ -50,6 +51,39 @@ func (c *HealthCheckController) isReady(ctx *gin.Context) {
ctx.Status(200)
}

func (c *HealthCheckController) checkFlag(ctx *gin.Context) {

splitName := ctx.Request.URL.Query().Get("flag")
conn, err := transfer.NewClientConn(c.logger, &c.connParams.Transfer)
if conn != nil {
defer conn.Shutdown()
}
if err != nil {
ctx.AbortWithError(500, fmt.Errorf("error creating raw connection: %w", err))
return
}

serial, err := serializer.Setup(c.connParams.Serialization)
if err != nil {
ctx.AbortWithError(500, fmt.Errorf("error setting up serializer: %w", err))
return
}

rpcClient, err := client.New(c.logger, conn, serial, c.connParams.Consumer)
if err != nil {
ctx.AbortWithError(500, fmt.Errorf("error setting up client: %w", err))
return
}

result, err := rpcClient.Split(splitName)
if err != nil {
ctx.AbortWithError(500, fmt.Errorf("error issuing RPC: %w", err))
return
}

ctx.JSON(200, SplitViewDTO(*result))
}

func NewHealthController(logger logging.LoggerInterface, connParams link.ConsumerOptions) *HealthCheckController {
return &HealthCheckController{
connParams: connParams,
Expand Down
2 changes: 1 addition & 1 deletion splitio/commitsha.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package splitio

const CommitSHA = "66886e2"
const CommitSHA = "9563f26"

0 comments on commit bbb060e

Please sign in to comment.