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:
akarki15 2016-11-10 01:22:16 -05:00
parent 038cb620c6
commit 61dfe67ca8
2 changed files with 41 additions and 0 deletions

View File

@ -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{}

View File

@ -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)
}
}