From b1a5f91f9db606cb1a7fec7792b2f4a3700c7f3f Mon Sep 17 00:00:00 2001
From: cyBerta <cyberta@riseup.net>
Date: Tue, 16 Jul 2024 17:31:52 +0200
Subject: [PATCH] new bridges api

---
 pkg/bootstrap/init.go | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/pkg/bootstrap/init.go b/pkg/bootstrap/init.go
index 4859280..0a6320e 100644
--- a/pkg/bootstrap/init.go
+++ b/pkg/bootstrap/init.go
@@ -268,6 +268,13 @@ type GatewayParams struct {
 	CC        string
 }
 
+type BridgesParams struct {
+	Location  string
+	Port      string
+	Transport string
+	Type      string
+}
+
 // GetGateways returns a list of gateways (it it's enabled by the menshen
 // API). It optionally accepts a GatewayParams object where you can set
 // different filters.
@@ -287,7 +294,27 @@ func (api *API) GetGateways(p *GatewayParams) ([]*models.ModelsGateway, error) {
 	if err != nil {
 		return nil, err
 	}
-	return gateways.Payload, err
+	return gateways.Payload, nil
+}
+
+func (api *API) GetBridges(p *BridgesParams) ([]*models.ModelsBridge, error) {
+	params := provisioning.NewGet5BridgesParams()
+	if p != nil {
+		params.Loc = &p.Location
+		params.Port = &p.Port
+		params.Tr = &p.Transport
+		params.Type = &p.Type
+	}
+	if api.httpClient != nil {
+		params = params.WithHTTPClient(api.httpClient)
+	}
+
+	bridges, err := api.client.Provisioning.Get5Bridges(params)
+	if err != nil {
+		return nil, err
+	}
+
+	return bridges.Payload, nil
 }
 
 // GetOpenVPNCert returns valid OpenVPN client credentials (certificate and
-- 
GitLab