Move URL Parsing inside Client Creation

This commit is contained in:
Samuel Lorch 2021-08-30 22:14:26 +02:00
parent 809ebaea52
commit ac4788b357
2 changed files with 11 additions and 18 deletions

View file

@ -25,12 +25,11 @@ package main
import ( import (
"context" "context"
"fmt" "fmt"
"net/url"
"github.com/speatzle/go-passbolt/api" "github.com/speatzle/go-passbolt/api"
) )
const passboltAddress = "https://passbolt.example.com" const address = "https://passbolt.example.com"
const userPassword = "aStrongPassword" const userPassword = "aStrongPassword"
const userPrivateKey = ` const userPrivateKey = `
-----BEGIN PGP PRIVATE KEY BLOCK----- -----BEGIN PGP PRIVATE KEY BLOCK-----
@ -40,12 +39,7 @@ klasd...
-----END PGP PRIVATE KEY BLOCK-----` -----END PGP PRIVATE KEY BLOCK-----`
func main() { func main() {
u, err := url.Parse(passboltAddress) client, err := api.NewClient(nil, "", address, userPrivateKey, userPassword)
if err != nil {
panic(err)
}
client, err := api.NewClient(u, nil, "", userPrivateKey, userPassword)
if err != nil { if err != nil {
panic(err) panic(err)
} }
@ -250,13 +244,12 @@ package main
import ( import (
"context" "context"
"fmt" "fmt"
"net/url"
"github.com/speatzle/go-passbolt/api" "github.com/speatzle/go-passbolt/api"
"github.com/speatzle/go-passbolt/helper" "github.com/speatzle/go-passbolt/helper"
) )
const passboltAddress = "https://passbolt.example.com" const address = "https://passbolt.example.com"
const userPassword = "aStrongPassword" const userPassword = "aStrongPassword"
const userPrivateKey = ` const userPrivateKey = `
-----BEGIN PGP PRIVATE KEY BLOCK----- -----BEGIN PGP PRIVATE KEY BLOCK-----
@ -268,12 +261,7 @@ klasd...
func main() { func main() {
ctx := context.TODO() ctx := context.TODO()
u, err := url.Parse(passboltAddress) client, err := api.NewClient(nil, "", address, userPrivateKey, userPassword)
if err != nil {
panic(err)
}
client, err := api.NewClient(u, nil, "", userPrivateKey, userPassword)
if err != nil { if err != nil {
panic(err) panic(err)
} }

View file

@ -36,7 +36,7 @@ type Client struct {
// NewClient Returns a new Passbolt Client. // NewClient Returns a new Passbolt Client.
// if httpClient is nil http.DefaultClient will be used. // if httpClient is nil http.DefaultClient will be used.
// if UserAgent is "" "goPassboltClient/1.0" will be used. // if UserAgent is "" "goPassboltClient/1.0" will be used.
func NewClient(BaseURL *url.URL, httpClient *http.Client, UserAgent, UserPrivateKey, UserPassword string) (*Client, error) { func NewClient(httpClient *http.Client, UserAgent, BaseURL, UserPrivateKey, UserPassword string) (*Client, error) {
if httpClient == nil { if httpClient == nil {
httpClient = http.DefaultClient httpClient = http.DefaultClient
} }
@ -44,6 +44,11 @@ func NewClient(BaseURL *url.URL, httpClient *http.Client, UserAgent, UserPrivate
UserAgent = "goPassboltClient/1.0" UserAgent = "goPassboltClient/1.0"
} }
u, err := url.Parse(BaseURL)
if err != nil {
return nil, fmt.Errorf("Parsing Base URL: %w", err)
}
// Verify that the Given Privatekey and Password are valid and work Together // Verify that the Given Privatekey and Password are valid and work Together
privateKeyObj, err := crypto.NewKeyFromArmored(UserPrivateKey) privateKeyObj, err := crypto.NewKeyFromArmored(UserPrivateKey)
if err != nil { if err != nil {
@ -64,7 +69,7 @@ func NewClient(BaseURL *url.URL, httpClient *http.Client, UserAgent, UserPrivate
// Create Client Object // Create Client Object
c := &Client{ c := &Client{
httpClient: httpClient, httpClient: httpClient,
baseURL: BaseURL, baseURL: u,
userAgent: UserAgent, userAgent: UserAgent,
userPassword: []byte(UserPassword), userPassword: []byte(UserPassword),
userPrivateKey: UserPrivateKey, userPrivateKey: UserPrivateKey,