aboutsummaryrefslogtreecommitdiff
path: root/server/store/store.go
diff options
context:
space:
mode:
Diffstat (limited to 'server/store/store.go')
-rw-r--r--server/store/store.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/server/store/store.go b/server/store/store.go
index c039d3c..a447e72 100644
--- a/server/store/store.go
+++ b/server/store/store.go
@@ -5,9 +5,23 @@ import (
"golang.org/x/crypto/ssh"
+ "github.com/nsheridan/cashier/server/config"
"github.com/nsheridan/cashier/server/util"
)
+// New returns a new configured database.
+func New(c config.Database) (CertStorer, error) {
+ switch c["type"] {
+ case "mongo":
+ return NewMongoStore(c)
+ case "mysql", "sqlite":
+ return NewSQLStore(c)
+ case "mem":
+ return NewMemoryStore(), nil
+ }
+ return NewMemoryStore(), nil
+}
+
// CertStorer records issued certs in a persistent store for audit and
// revocation purposes.
type CertStorer interface {