mirror of
https://github.com/hanzoui/registry-backend.git
synced 2026-10-30 20:30:45 +00:00
60 lines
1.7 KiB
Go
60 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"io"
|
|
"log"
|
|
"net/http"
|
|
"net/url"
|
|
"os"
|
|
)
|
|
|
|
var pubID = flag.String("publisher-id", "", "Pubisher ID of the node")
|
|
var nodeID = flag.String("node-id", "", "Node ID to be banned")
|
|
var token = flag.String("token", os.Getenv("JWT_TOKEN"), "JWT token to use for authentication")
|
|
var baseURL = flag.String("base-url", os.Getenv("REGISTRY_BASE_URL"), "Base url of registry service")
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
|
|
if pubID == nil || *pubID == "" {
|
|
flag.PrintDefaults()
|
|
log.Fatalf("Flag `--publisher-id` must be set to non-empty string.\n")
|
|
}
|
|
if nodeID == nil || *nodeID == "" {
|
|
flag.PrintDefaults()
|
|
log.Fatalf("Flag `--node-id` must be set to non-empty string.\n")
|
|
}
|
|
if token == nil || *token == "" {
|
|
flag.PrintDefaults()
|
|
log.Fatalf("Flag `--token` or environment variable `JWT_TOKEN` must be set to non-empty string.\n")
|
|
}
|
|
if baseURL == nil || *baseURL == "" {
|
|
flag.PrintDefaults()
|
|
log.Fatalf("Flag `--base-url` or environment variable `BASE_URL` must be set to non-empty string.\n")
|
|
}
|
|
|
|
u, err := url.Parse(*baseURL)
|
|
if err != nil {
|
|
log.Fatalf("Invalid base url :%v .\n", err)
|
|
}
|
|
u = u.JoinPath("publishers", *pubID, "nodes", *nodeID, "ban")
|
|
|
|
req, _ := http.NewRequest(http.MethodPost, u.String(), nil)
|
|
req.Header.Set("Authorization", "Bearer "+*token)
|
|
res, err := http.DefaultClient.Do(req)
|
|
if err != nil {
|
|
log.Fatalf("Failed to send HTTP request :%v\n", err)
|
|
}
|
|
b, err := io.ReadAll(res.Body)
|
|
if err != nil {
|
|
log.Fatalf("Failed to read HTTP response :%v\n", err)
|
|
}
|
|
if res.StatusCode > 299 {
|
|
log.Fatalf("Received non-success response: \nStatus: %d\nBody: \n\n%v\n", res.StatusCode, string(b))
|
|
}
|
|
fmt.Printf("Publisher's node '%s' has been banned\n", *pubID)
|
|
|
|
}
|