From d319501fbf8456a30b27ea744272a3039c667c1e Mon Sep 17 00:00:00 2001 From: "Matthew R. Kasun" Date: Wed, 20 Apr 2022 16:32:51 -0400 Subject: [PATCH] add logic from grpc CreateNode to api createNode Signed-off-by: Matthew R. Kasun --- controllers/node.go | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/controllers/node.go b/controllers/node.go index 3a7bf974..b74e1a97 100644 --- a/controllers/node.go +++ b/controllers/node.go @@ -447,9 +447,12 @@ func createNode(w http.ResponseWriter, r *http.Request) { returnErrorResponse(w, r, formatError(err, "internal")) return } - + node.NetworkSettings, err = logic.GetNetworkSettings(node.Network) + if err != nil { + returnErrorResponse(w, r, formatError(err, "internal")) + return + } validKey := logic.IsKeyValid(networkName, node.AccessKey) - if !validKey { // Check to see if network will allow manual sign up // may want to switch this up with the valid key check and avoid a DB call that way. @@ -463,6 +466,27 @@ func createNode(w http.ResponseWriter, r *http.Request) { return } } + getServerAddrs(&node) + key, keyErr := logic.RetrievePublicTrafficKey() + if keyErr != nil { + logger.Log(0, "error retrieving key: ", keyErr.Error()) + returnErrorResponse(w, r, formatError(err, "internal")) + return + } + if key == nil { + logger.Log(0, "error: server traffic key is nil") + returnErrorResponse(w, r, formatError(err, "internal")) + return + } + if node.TrafficKeys.Mine == nil { + logger.Log(0, "error: node traffic key is nil") + returnErrorResponse(w, r, formatError(err, "internal")) + return + } + node.TrafficKeys = models.TrafficKeys{ + Mine: node.TrafficKeys.Mine, + Server: key, + } err = logic.CreateNode(&node) if err != nil {