Skip to content

Commit

Permalink
refactored to NewProvider
Browse files Browse the repository at this point in the history
  • Loading branch information
mschneider82 committed Nov 29, 2018
1 parent f64e75a commit e7aa44c
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 174 deletions.
4 changes: 2 additions & 2 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ func main() {
case "seafile":
sharecmd.provider = seafile.NewProvider(sharecmd.config.ProviderSettings["url"], sharecmd.config.ProviderSettings["token"], sharecmd.config.ProviderSettings["repoid"])
case "googledrive":
sharecmd.provider = googledrive.NewGoogleDriveProvider(sharecmd.config.ProviderSettings["googletoken"])
sharecmd.provider = googledrive.NewProvider(sharecmd.config.ProviderSettings["googletoken"])
case "dropbox":
sharecmd.provider = dropbox.NewDropboxProvider(cfg.ProviderSettings["token"])
sharecmd.provider = dropbox.NewProvider(cfg.ProviderSettings["token"])
default:
config.Setup(*configFile)
os.Exit(0)
Expand Down
19 changes: 11 additions & 8 deletions provider/dropbox/dropbox.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@ var (
personalAppSecret = "mi55rqbz0rgb16f"
)

// Tokenmap example: { "token": "xxx" }
// TokenMap example: { "token": "xxx" }
type TokenMap map[string]string

// OAuth2DropboxConfig creates a oauth config
func OAuth2DropboxConfig() *oauth2.Config {
return &oauth2.Config{
ClientID: personalAppKey,
Expand Down Expand Up @@ -70,23 +71,24 @@ func writeTokens(filePath string, tokens TokenMap) {
}
}

// DropboxProvider implements a provider using dropbox sdk
type DropboxProvider struct {
// Provider implements a provider using dropbox sdk
type Provider struct {
Config dropbox.Config
token string
}

func NewDropboxProvider(token string) *DropboxProvider {

return &DropboxProvider{
// NewProvider creates a new Provider
func NewProvider(token string) *Provider {
return &Provider{
Config: dropbox.Config{
Token: token,
LogLevel: dropbox.LogOff,
},
}
}

func (c *DropboxProvider) Upload(file *os.File, path string) (dst string, err error) {
// Upload the file to dropbox
func (c *Provider) Upload(file *os.File, path string) (dst string, err error) {
//
if path == "" {
path = "/"
Expand Down Expand Up @@ -126,7 +128,8 @@ func (c *DropboxProvider) Upload(file *os.File, path string) (dst string, err er
return dst, nil
}

func (c *DropboxProvider) GetLink(filepath string) (string, error) {
// GetLink for file
func (c *Provider) GetLink(filepath string) (string, error) {
share := sharing.New(c.Config)
arg := sharing.NewCreateSharedLinkWithSettingsArg(filepath)

Expand Down
107 changes: 0 additions & 107 deletions provider/dropbox/dropbox_test.go

This file was deleted.

20 changes: 11 additions & 9 deletions provider/googledrive/googledrive.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,17 @@ import (
"os"
"path/filepath"

humanize "github.com/dustin/go-humanize"
//"github.com/mitchellh/ioprogress"
"github.com/coreos/ioprogress"
humanize "github.com/dustin/go-humanize"
"golang.org/x/oauth2"
"golang.org/x/oauth2/google"
drive "google.golang.org/api/drive/v3"
)

//https://developers.google.com/drive/api/v3/quickstart/go

// GoogleDriveProvider implements a provider
type GoogleDriveProvider struct {
// Provider implements a provider
type Provider struct {
Config *oauth2.Config
token *oauth2.Token
}
Expand All @@ -36,21 +35,23 @@ func OAuth2GoogleDriveConfig() *oauth2.Config {
return config
}

func NewGoogleDriveProvider(token string) *GoogleDriveProvider {
// NewProvider creates a new Provider
func NewProvider(token string) *Provider {
tok := &oauth2.Token{}
err := json.Unmarshal([]byte(token), tok)
if err != nil {
log.Fatalf("Unable to parse config file: %v", err)
}

return &GoogleDriveProvider{token: tok, Config: OAuth2GoogleDriveConfig()}
return &Provider{token: tok, Config: OAuth2GoogleDriveConfig()}
}

func (c *GoogleDriveProvider) getClient() *http.Client {
func (c *Provider) getClient() *http.Client {
return c.Config.Client(context.Background(), c.token)
}

func (c *GoogleDriveProvider) Upload(file *os.File, path string) (fileID string, err error) {
// Upload the file
func (c *Provider) Upload(file *os.File, path string) (fileID string, err error) {

fileInfo, err := file.Stat()
if err != nil {
Expand Down Expand Up @@ -84,7 +85,8 @@ func (c *GoogleDriveProvider) Upload(file *os.File, path string) (fileID string,
return r.Id, nil
}

func (c *GoogleDriveProvider) GetLink(filepath string) (string, error) {
// GetLink for fileid
func (c *Provider) GetLink(filepath string) (string, error) {
fileID := filepath

client := c.getClient()
Expand Down
48 changes: 0 additions & 48 deletions provider/googledrive/googledrive_test.go

This file was deleted.

0 comments on commit e7aa44c

Please sign in to comment.