Documentation ¶
Overview ¶
Package databasedb provides an implementation of github.com/alexandre-normand/slackscot/store's StringStorer interface backed by the Google Cloud Datastore.
Requirements for the Google Cloud Datastore integration:
- A valid project id with datastore mode enabled
- Google Cloud Credentials (typically in the form of a json file with credentials from https://console.cloud.google.com/apis/credentials/serviceaccountkey)
Example code:
import ( "github.com/alexandre-normand/slackscot/store/datastoredb" "google.golang.org/api/option" ) func main() { // The first argument is going to be this instance's namespace so the plugin name is a good candidate. // The second argument is the gcloud project id which is what you'll have created with your gcloud service account // The third argument are client options which are most useful for providing credentials either in the form of a pre-parsed json file or // most commonly, the path to a json credentials file karmaStorer, err := datastoredb.New(plugins.KarmaPluginName, "youppi", option.WithCredentialsFile(*gcloudCredentialsFile)) if err != nil { log.Fatalf("Opening [%s] db failed: %s", plugins.KarmaPluginName, err.Error()) } defer karmaStorer.Close() // Do something with the database karma := plugins.NewKarma(karmaStorer)} // Run your instance ... }
Index ¶
- type DatastoreDB
- func (dsdb *DatastoreDB) Close() (err error)
- func (dsdb *DatastoreDB) DeleteString(key string) (err error)
- func (dsdb *DatastoreDB) GetString(key string) (value string, err error)
- func (dsdb *DatastoreDB) PutString(key string, value string) (err error)
- func (dsdb *DatastoreDB) Scan() (entries map[string]string, err error)
- type EntryValue
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DatastoreDB ¶
DatastoreDB implements the slackscot StringStorer interface. It maps the given name (usually a plugin name) to the datastore entity Kind to isolate data between different plugins
func New ¶
func New(name string, gcloudProjectID string, gcloudClientOpts ...option.ClientOption) (dsdb *DatastoreDB, err error)
New returns a new instance of DatastoreDB for the given name (which maps to the datastore entity "Kind" and can be thought of as the namespace). This function also requires a gcloudProjectID as well as at least one option to provide gcloud client credentials
func (*DatastoreDB) Close ¶ added in v1.10.0
func (dsdb *DatastoreDB) Close() (err error)
Close closes the underlying datastore client
func (*DatastoreDB) DeleteString ¶
func (dsdb *DatastoreDB) DeleteString(key string) (err error)
DeleteString deletes the entry for the given key. If the entry is not found an error is returned
func (*DatastoreDB) GetString ¶
func (dsdb *DatastoreDB) GetString(key string) (value string, err error)
GetString returns the value associated to a given key. If the value is not found or an error occured, the zero-value string is returned along with the error
type EntryValue ¶
type EntryValue struct {
Value string `datastore:",noindex"`
}
EntryValue represents an entity/entry value mapped to a datastore key