From a4f70d037624236b5de635294880d582bade3745 Mon Sep 17 00:00:00 2001 From: alexohneander Date: Tue, 11 Feb 2025 15:22:48 +0100 Subject: [PATCH] feat: Implement HTTP POST request to register as reduce node --- internal/reduce-node/node.go | 40 +++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/internal/reduce-node/node.go b/internal/reduce-node/node.go index 331d169..890dc81 100644 --- a/internal/reduce-node/node.go +++ b/internal/reduce-node/node.go @@ -1,6 +1,15 @@ package reducenode -import "github.com/gin-gonic/gin" +import ( + "bytes" + "encoding/json" + "fmt" + "log" + "net/http" + + "github.com/alexohneander/flotte/pkg/types/request" + "github.com/gin-gonic/gin" +) func Start() { err := registerAsReduceNode() @@ -15,5 +24,34 @@ func Start() { } func registerAsReduceNode() error { + // http post request to general-node + serviceRegisterReq := request.ServiceRegister{ + Name: "reduce-01", + NodeType: "reduce", + Address: "localhost", + Port: 4001, + } + + json_data, err := json.Marshal(serviceRegisterReq) + if err != nil { + log.Fatal(err) + return err + } + + resp, err := http.Post("http://localhost:8000/service", "application/json", + bytes.NewBuffer(json_data)) + + if err != nil { + log.Fatal(err) + return err + } + + defer resp.Body.Close() + var res map[string]interface{} + + json.NewDecoder(resp.Body).Decode(&res) + + fmt.Println(res) + return nil }