mirror of
https://github.com/sosedoff/pgweb.git
synced 2024-12-15 11:52:12 +03:00
Add a method to convert bookmark to options
We will use client.NewFromURL to create a client from stored bookmark in next commit. Since client.NewFromURL takes in a command.Options, lets add a method on Bookmark to get corresponding Option.
This commit is contained in:
parent
038cb620c6
commit
61dfe67ca8
@ -9,6 +9,7 @@ import (
|
|||||||
"github.com/BurntSushi/toml"
|
"github.com/BurntSushi/toml"
|
||||||
"github.com/mitchellh/go-homedir"
|
"github.com/mitchellh/go-homedir"
|
||||||
|
|
||||||
|
"github.com/sosedoff/pgweb/pkg/command"
|
||||||
"github.com/sosedoff/pgweb/pkg/shared"
|
"github.com/sosedoff/pgweb/pkg/shared"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -26,6 +27,19 @@ type Bookmark struct {
|
|||||||
func (b Bookmark) SSHInfoIsEmpty() bool {
|
func (b Bookmark) SSHInfoIsEmpty() bool {
|
||||||
return b.Ssh.User == "" && b.Ssh.Host == "" && b.Ssh.Port == ""
|
return b.Ssh.User == "" && b.Ssh.Host == "" && b.Ssh.Port == ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b Bookmark) ConvertToOptions() (command.Options, error) {
|
||||||
|
return command.Options{
|
||||||
|
Url: b.Url,
|
||||||
|
Host: b.Host,
|
||||||
|
Port: b.Port,
|
||||||
|
User: b.User,
|
||||||
|
Pass: b.Password,
|
||||||
|
DbName: b.Database,
|
||||||
|
Ssl: b.Ssl,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
func readServerConfig(path string) (Bookmark, error) {
|
func readServerConfig(path string) (Bookmark, error) {
|
||||||
bookmark := Bookmark{}
|
bookmark := Bookmark{}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ package bookmarks
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/sosedoff/pgweb/pkg/command"
|
||||||
"github.com/sosedoff/pgweb/pkg/shared"
|
"github.com/sosedoff/pgweb/pkg/shared"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
@ -107,3 +108,29 @@ func Test_Bookmark_SSHInfoIsEmpty(t *testing.T) {
|
|||||||
b.Ssh = populatedSSH
|
b.Ssh = populatedSSH
|
||||||
assert.False(t, b.SSHInfoIsEmpty())
|
assert.False(t, b.SSHInfoIsEmpty())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Test_ConvertToOptions(t *testing.T) {
|
||||||
|
b := Bookmark{
|
||||||
|
Url: "postgres://username:password@host:port/database?sslmode=disable",
|
||||||
|
Host: "localhost",
|
||||||
|
Port: 5432,
|
||||||
|
User: "postgres",
|
||||||
|
Password: "password",
|
||||||
|
Database: "mydatabase",
|
||||||
|
Ssl: "disable",
|
||||||
|
}
|
||||||
|
|
||||||
|
expOpt := command.Options{
|
||||||
|
Url: "postgres://username:password@host:port/database?sslmode=disable",
|
||||||
|
Host: "localhost",
|
||||||
|
Port: 5432,
|
||||||
|
User: "postgres",
|
||||||
|
Pass: "password",
|
||||||
|
DbName: "mydatabase",
|
||||||
|
Ssl: "disable",
|
||||||
|
}
|
||||||
|
opt, err := b.ConvertToOptions()
|
||||||
|
if assert.NoError(t, err) {
|
||||||
|
assert.Equal(t, expOpt, opt)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user