665 B
platform.go
package digitalocean
import (
"context"
"fmt"
"github.com/digitalocean/godo"
"github.com/readysite/readysite/pkg/platform"
"golang.org/x/oauth2"
)
type backend struct {
client *godo.Client
ctx context.Context
}
// New creates a DigitalOcean platform.
func New(token string) (*platform.Platform, error) {
if token == "" {
return nil, fmt.Errorf("token required")
}
tokenSource := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: token})
oauthClient := oauth2.NewClient(context.Background(), tokenSource)
return &platform.Platform{
Backend: &backend{
client: godo.NewClient(oauthClient),
ctx: context.Background(),
},
}, nil
}