Skip to content

Commit 3ccb913

Browse files
update the endpoint
1 parent 48930ea commit 3ccb913

File tree

3 files changed

+20
-11
lines changed

3 files changed

+20
-11
lines changed

handlers/producer.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,29 @@ func handleJsonMessage(bodyReq []byte, headers map[string]string) ([]byte, memph
4444
return message, hdrs, nil
4545
}
4646

47-
func CreateHandleMessage(producer *memphis.Producer) func(*fiber.Ctx) error {
47+
func CreateHandleMessage(conn *memphis.Conn) func(*fiber.Ctx) error {
48+
producers := make(map[string]*memphis.Producer)
4849
return func(c *fiber.Ctx) error {
50+
stationName := c.Params("stationName")
51+
producerName := c.Params("producerName")
52+
var producer *memphis.Producer
53+
var err error
54+
55+
if len(producers) == 0 || producers[stationName].Name != producerName {
56+
producer, err = conn.CreateProducer(stationName, producerName)
57+
if err != nil {
58+
return err
59+
}
60+
producers[stationName] = producer
61+
} else {
62+
producer = producers[stationName]
63+
}
64+
4965
bodyReq := c.Body()
5066
headers := c.GetReqHeaders()
5167
contentType := string(c.Request().Header.ContentType())
5268
var message []byte
5369
hdrs := memphis.Headers{}
54-
var err error
5570
caseText := strings.Contains(contentType, "text")
5671
if caseText {
5772
contentType = "text/"

main.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,7 @@ func main() {
2020
fmt.Println(err.Error())
2121
os.Exit(1)
2222
}
23-
producer, err := conn.CreateProducer("test-fiber-go", "simple_go_producer")
24-
if err != nil {
25-
fmt.Println(err.Error())
26-
os.Exit(1)
27-
}
2823

29-
router.SetupRoutes(app, producer)
24+
router.SetupRoutes(app, conn)
3025
app.Listen(":3000")
3126
}

router/router.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ import (
88
)
99

1010
// SetupRoutes setup router api
11-
func SetupRoutes(app *fiber.App, producer *memphis.Producer) {
12-
11+
func SetupRoutes(app *fiber.App, conn *memphis.Conn) {
1312
api := app.Group("/", logger.New())
14-
api.Post("/", handler.CreateHandleMessage(producer))
13+
api.Post("/station/:stationName/:producerName", handler.CreateHandleMessage(conn))
1514
}

0 commit comments

Comments
 (0)