database

package
v3.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2019 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseDatabase

type BaseDatabase interface {
	Connect(connection *Connection) error
	Disconnect()
}

BaseDatabase defines the simplest things a database can do: connect and disconnect

type Connection

type Connection struct {
	Host         string `json:"host"`
	DatabaseName string `json:"databaseName"`
}

A Connection struct stores information about how to connect to a database

type DatabaseUploadResponse

type DatabaseUploadResponse struct {
	BytesWritten int           `json:"bytesWritten"`
	FileID       bson.ObjectId `json:"fileID"`
	FileName     string        `json:"fileName"`
	Height       int           `json:"height"`
	Width        int           `json:"width"`
}

A DatabaseUploadResponse is used to alert a caller information about their uploaded file.

type DatabaseUploader

type DatabaseUploader interface {
	Upload(reader io.Reader, name, path string) (*DatabaseUploadResponse, error)
}

A DatabaseUploader defines an interface for uploading files to a database

type DocumentDatabase

type DocumentDatabase interface {
	BaseDatabase

	GetCollection(name string) *mgo.Collection
	GetDB() *mgo.Database
	GridFS(prefix string) *mgo.GridFS
}

DocumentDatabase defines the basics of what a document-based database system can do

type MockDocumentDatabase

type MockDocumentDatabase struct {
	ConnectFunc    func(connection *Connection) error
	DisconnectFunc func()

	GetCollectionFunc func(name string) *mgo.Collection
	GetDBFunc         func() *mgo.Database
	GridFSFunc        func(prefix string) *mgo.GridFS
}

func (*MockDocumentDatabase) Connect

func (m *MockDocumentDatabase) Connect(connection *Connection) error

func (*MockDocumentDatabase) Disconnect

func (m *MockDocumentDatabase) Disconnect()

func (*MockDocumentDatabase) GetCollection

func (m *MockDocumentDatabase) GetCollection(name string) *mgo.Collection

func (*MockDocumentDatabase) GetDB

func (m *MockDocumentDatabase) GetDB() *mgo.Database

func (*MockDocumentDatabase) GridFS

func (m *MockDocumentDatabase) GridFS(prefix string) *mgo.GridFS

type MockMongoCollection

type MockMongoCollection struct {
	CountFunc       func() (int, error)
	EnsureIndexFunc func(index mgo.Index) error
	FindFunc        func(query interface{}) *mgo.Query
	FindIdFunc      func(id interface{}) *mgo.Query
	InsertFunc      func(docs ...interface{}) error
	RemoveFunc      func(selector interface{}) error
	RemoveAllFunc   func(selector interface{}) (*mgo.ChangeInfo, error)
	RemoveIdFunc    func(id interface{}) error
	UpdateFunc      func(selector, update interface{}) error
	UpdateAllFunc   func(selector, update interface{}) (*mgo.ChangeInfo, error)
	UpdateIdFunc    func(id, update interface{}) error
	UpsertFunc      func(selector, update interface{}) (*mgo.ChangeInfo, error)
	UpsertIdFunc    func(id, update interface{}) (*mgo.ChangeInfo, error)
}

MockMongoCollection is used for unit testing to mock a MongoDB

func (*MockMongoCollection) Count

func (c *MockMongoCollection) Count() (int, error)

func (*MockMongoCollection) EnsureIndex

func (c *MockMongoCollection) EnsureIndex(index mgo.Index) error

func (*MockMongoCollection) Find

func (c *MockMongoCollection) Find(query interface{}) *mgo.Query

func (*MockMongoCollection) FindId

func (c *MockMongoCollection) FindId(id interface{}) *mgo.Query

func (*MockMongoCollection) Insert

func (c *MockMongoCollection) Insert(docs ...interface{}) error

func (*MockMongoCollection) Remove

func (c *MockMongoCollection) Remove(selector interface{}) error

func (*MockMongoCollection) RemoveAll

func (c *MockMongoCollection) RemoveAll(selector interface{}) (*mgo.ChangeInfo, error)

func (*MockMongoCollection) RemoveId

func (c *MockMongoCollection) RemoveId(id interface{}) error

func (*MockMongoCollection) Update

func (c *MockMongoCollection) Update(selector, update interface{}) error

func (*MockMongoCollection) UpdateAll

func (c *MockMongoCollection) UpdateAll(selector, update interface{}) (*mgo.ChangeInfo, error)

func (*MockMongoCollection) UpdateId

func (c *MockMongoCollection) UpdateId(id, update interface{}) error

func (*MockMongoCollection) Upsert

func (c *MockMongoCollection) Upsert(selector, update interface{}) (*mgo.ChangeInfo, error)

func (*MockMongoCollection) UpsertId

func (c *MockMongoCollection) UpsertId(id, update interface{}) (*mgo.ChangeInfo, error)

type MockMongoDatabase

type MockMongoDatabase struct {
	CFunc      func(name string) MongoCollection
	GridFSFunc func(prefix string) MongoGridFS
}

func (*MockMongoDatabase) C

func (*MockMongoDatabase) GridFS

func (m *MockMongoDatabase) GridFS(prefix string) MongoGridFS

type MockMongoQuery

type MockMongoQuery struct {
	AllFunc      func(result interface{}) error
	CountFunc    func() (int, error)
	DistinctFunc func(key string, result interface{}) error
	LimitFunc    func(n int) MongoQuery
	OneFunc      func(result interface{}) error
	SelectFunc   func(selector interface{}) MongoQuery
	SkipFunc     func(n int) MongoQuery
	SortFunc     func(fields ...string) MongoQuery
}

MockMongoQuery is used for unit testing MongoDB queries

func (*MockMongoQuery) All

func (m *MockMongoQuery) All(result interface{}) error

func (*MockMongoQuery) Count

func (m *MockMongoQuery) Count() (int, error)

func (*MockMongoQuery) Distinct

func (m *MockMongoQuery) Distinct(key string, result interface{}) error

func (*MockMongoQuery) Limit

func (m *MockMongoQuery) Limit(n int) MongoQuery

func (*MockMongoQuery) One

func (m *MockMongoQuery) One(result interface{}) error

func (*MockMongoQuery) Select

func (m *MockMongoQuery) Select(selector interface{}) MongoQuery

func (*MockMongoQuery) Skip

func (m *MockMongoQuery) Skip(n int) MongoQuery

func (*MockMongoQuery) Sort

func (m *MockMongoQuery) Sort(fields ...string) MongoQuery

type MockMongoSession

type MockMongoSession struct {
	DBFunc func(name string) MongoDatabase
}

func (*MockMongoSession) Close

func (m *MockMongoSession) Close()

func (*MockMongoSession) DB

type MongoCollection

type MongoCollection interface {
	Count() (int, error)
	EnsureIndex(index mgo.Index) error
	Find(query interface{}) *MongoQueryWrapper
	FindId(id interface{}) *mgo.Query
	Insert(docs ...interface{}) error
	Remove(selector interface{}) error
	RemoveAll(selector interface{}) (*mgo.ChangeInfo, error)
	RemoveId(id interface{}) error
	Update(selector, update interface{}) error
	UpdateAll(selector, update interface{}) (*mgo.ChangeInfo, error)
	UpdateId(id, update interface{}) error
	Upsert(selector, update interface{}) (*mgo.ChangeInfo, error)
	UpsertId(id, update interface{}) (*mgo.ChangeInfo, error)
}

MongoCollection is an interface describing MongoDB collection methods

type MongoDatabase

type MongoDatabase interface {
	C(name string) MongoCollection
	GridFS(prefix string) *mgo.GridFS
}

type MongoDatabaseService

type MongoDatabaseService struct {
	DB      *mgo.Database
	Session *mgo.Session
}

MongoDatabaseService encapsulates behaviors for working with MongoDB databases

func (*MongoDatabaseService) Connect

func (d *MongoDatabaseService) Connect(connection *Connection) error

func (*MongoDatabaseService) Disconnect

func (d *MongoDatabaseService) Disconnect()

func (*MongoDatabaseService) GetCollection

func (d *MongoDatabaseService) GetCollection(name string) *mgo.Collection

func (*MongoDatabaseService) GetDB

func (d *MongoDatabaseService) GetDB() *mgo.Database

func (*MongoDatabaseService) GridFS

func (d *MongoDatabaseService) GridFS(prefix string) *mgo.GridFS

type MongoGridFS

type MongoGridFS interface {
	Create(name string) (MongoGridFile, error)
	Find(query interface{}) MongoQuery
	Open(name string) (MongoGridFile, error)
	OpenId(id interface{}) (MongoGridFile, error)
	OpenNext(MongoIter, MongoGridFile) bool
	Remove(name string) error
	RemoveId(id interface{}) error
}

type MongoGridFile

type MongoGridFile interface {
	Abort()
	Close() error
	ContentType() string
	GetMeta(result interface{}) error
	Id() interface{}
	MD5() (md5 string)
	Name() string
	Read(b []byte) (int, error)
	Seek(offset int64, whence int) (int64, error)
	SetChunkSize(bytes int)
	SetContentType(ctype string)
	SetId(id interface{})
	SetMeta(metadata interface{})
	SetName(name string)
	Size() (bytes int64)
	UploadDate() time.Time
	Write(data []byte) (int, error)
}

type MongoIter

type MongoIter interface {
	All(result interface{}) error
	Close() error
	Err() error
	For(result interface{}, f func() error) error
	Next(result interface{}) bool
	Timeout() bool
}

type MongoQuery

type MongoQuery interface {
	All(result interface{}) error
	Count() (int, error)
	Distinct(key string, result interface{}) error
	Limit(n int) MongoQuery
	One(result interface{}) error
	Select(selector interface{}) MongoQuery
	Skip(n int) MongoQuery
	Sort(fields ...string) MongoQuery
}

MongoQuery is an interface describing a MongoDB query

type MongoQueryWrapper

type MongoQueryWrapper struct {
	*mgo.Query
}

type MongoSession

type MongoSession interface {
	Close()
	DB(name string) MongoDatabase
}

type MongoUploader

type MongoUploader struct {
	DB DocumentDatabase
}

A MongoUploader uploads files to a MongoDB database. This struct satisfies the DatabaseUploader interface

func (*MongoUploader) Upload

func (u *MongoUploader) Upload(reader io.Reader, name, path string) (*DatabaseUploadResponse, error)

Upload uploads a file into the MongoDB GridFS system

Jump to

Keyboard shortcuts

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