datastoredb

package
v1.15.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 6, 2019 License: MIT Imports: 3 Imported by: 2

Documentation

Overview

Package datastoredb 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:

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

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DatastoreDB

type DatastoreDB struct {
	*datastore.Client
	// contains filtered or unexported fields
}

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 occurred, the zero-value string is returned along with the error

func (*DatastoreDB) PutString

func (dsdb *DatastoreDB) PutString(key string, value string) (err error)

PutString stores the key/value to the database

func (*DatastoreDB) Scan

func (dsdb *DatastoreDB) Scan() (entries map[string]string, err error)

Scan returns all key/values from the database

type EntryValue

type EntryValue struct {
	Value string `datastore:",noindex"`
}

EntryValue represents an entity/entry value mapped to a datastore key

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL