db

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 30, 2018 License: GPL-3.0, GPL-3.0-or-later Imports: 9 Imported by: 7

Documentation

Overview

Package db provide interfaces which provide generalized operations on databases.

Index

Constants

This section is empty.

Variables

View Source
var ErrNotFound = mgo.ErrNotFound

ErrNotFound error is returned, when CRUD method can not find query result.

Functions

This section is empty.

Types

type Account

type Account struct {
	// contains filtered or unexported fields
}

Account collection DAO.

func NewAccount

func NewAccount(session Session) Account

NewAccount constructor.

func (Account) Collection

func (a Account) Collection() Collection

Collection implementation of DAO interface.

func (Account) ConfigureCollection

func (a Account) ConfigureCollection() error

ConfigureCollection implementation of DAO interface.

func (Account) Create

func (a Account) Create(account auth.Account) error

Create create new account in Account collection. Return err, if any db error occurs.

func (Account) Fetch

func (a Account) Fetch(id bson.ObjectId) (*auth.Account, error)

Fetch return auth.Account from db by id. Return nil, if not found. Return err, if any db error occurs.

func (Account) FindByEmail

func (a Account) FindByEmail(email string) (*auth.Account, error)

FindByEmail return if exists user with email @email.

func (Account) FindByUsername

func (a Account) FindByUsername(name string) (*auth.Account, error)

FindByUsername return if exists user with login @name.

type Collection

type Collection interface {
	Find(query interface{}) *mgo.Query
	Count() (n int, err error)
	FindId(id interface{}) *mgo.Query
	Insert(docs ...interface{}) error
	Remove(selector interface{}) error
	Update(selector interface{}, update interface{}) error
	Upsert(selector interface{}, update interface{}) (info *mgo.ChangeInfo, err error)
	EnsureIndex(index mgo.Index) error
	RemoveAll(selector interface{}) (info *mgo.ChangeInfo, err error)
}

Collection is the interface implemented by types that can perform database CRUD operations.

type DAO

type DAO interface {
	// ConfigureCollection configure collection configuration such as Indexes.
	ConfigureCollection() error
	Collection() Collection
}

DAO represent collection DAO.

type Database

type Database interface {
	C(name string) Collection
}

Database provide access to Database Collection.

type Project

type Project struct {
	// contains filtered or unexported fields
}

Project collection DAO.

func NewProject

func NewProject(session Session) Project

NewProject constructor.

func (Project) Collection

func (p Project) Collection() Collection

Collection implementation of DAO interface.

func (Project) ConfigureCollection

func (p Project) ConfigureCollection() error

ConfigureCollection implementation of DAO interface.

func (Project) Create

func (p Project) Create(project project.Project) error

Create insert project into db. Return err, if any db error occurs.

func (Project) CreateVersionFrom

func (p Project) CreateVersionFrom(existingVersionID VersionID) (project.Version, error)

CreateVersionFrom works like CreateVersion, but childs are copied from existingVersion childs. Return nil, if version not found. Return err, if any db error occurs.

func (Project) CreateVersionFromLatest

func (p Project) CreateVersionFromLatest(projectID ProjectID) (project.Version, error)

CreateVersionFromLatest creates version from latest.

func (Project) Delete

func (p Project) Delete(projectID ProjectID) error

Delete remove project.Project from db. Return db.ErrorNotFound, if project does not exists in db. Return another err, if any other db error occurs.

func (Project) EnsureSingleEditableVersion

func (p Project) EnsureSingleEditableVersion(projectID ProjectID) error

EnsureSingleEditableVersion ensures that last version is only editable.

func (Project) Fetch

func (p Project) Fetch(projectID ProjectID) (project.Project, error)

Fetch project.Project. Return err, if any db error occurs or notfound.

func (Project) FetchVersion

func (p Project) FetchVersion(versionID VersionID) (project.Version, error)

FetchVersion find project.Version. Return nil, if not found. Return err, if any db error occurs.

func (Project) FetchVersionStatus

func (p Project) FetchVersionStatus(versionID VersionID) (project.VersionStatus, error)

FetchVersionStatus fetch VersionStatus.

func (Project) FindAllByAccountID

func (p Project) FindAllByAccountID(accountID bson.ObjectId) (project.List, error)

FindAllByAccountID return project.List, which contains all projects of accountID Account. Return err, if any db error occurs.

func (Project) SetVersionStatus

func (p Project) SetVersionStatus(versionID VersionID, newStatus project.VersionStatus) error

SetVersionStatus sets new VersionStatus.

func (Project) Update

func (p Project) Update(project project.Project) error

Update update project.Project. Return db.ErrorNotFound, if project does not exists in db. Return another err, if any other db error occurs.

func (Project) UpdateVersion

func (p Project) UpdateVersion(versionID VersionID, newSettings project.Settings) error

UpdateVersion update version with the given versionID.

func (Project) UpdateVersionTimestamp

func (p Project) UpdateVersionTimestamp(versionID VersionID) error

UpdateVersionTimestamp update version with the given versionID.

type ProjectID

type ProjectID struct {
	Account bson.ObjectId
	Project bson.ObjectId
}

ProjectID is used in DAOs methods args to indicate Project.

type Result

type Result struct {
	// contains filtered or unexported fields
}

Result ocollection DAO.

func NewResult

func NewResult(session Session) Result

NewResult constructor.

func (Result) Collection

func (s Result) Collection() Collection

Collection implementation of DAO interface.

func (Result) ConfigureCollection

func (s Result) ConfigureCollection() error

ConfigureCollection implementation of DAO interface.

func (Result) Create

func (s Result) Create(result result.Result) (bson.ObjectId, error)

Create Result in db, and return ObjectId of created document. Return err, if any db error occurs.

func (Result) Delete

func (s Result) Delete(versionID VersionID) error

Delete remove *result.Resultd from db. Return db.ErrorNotFound, if result does not exists in db. Return another err, if any other db error occurs.

func (Result) Fetch

func (s Result) Fetch(versionID VersionID) (result.Result, error)

Fetch *result.Result. Return nil, if not found. Return err, if any db error occurs.

func (Result) Update

func (s Result) Update(versionID VersionID, result result.Result) error

Update result.Result. Return db.ErrorNotFound, if result does not exists in db. Return another err, if any other db error occurs.

type Session

type Session interface {
	// Copy copy Session handler.
	// Copy is necessary, if you need perfom db operations on several goroutines at once.
	Copy() Session

	//Close close Session.
	Close()

	DB() Database

	Account() Account
	Project() Project
	Setup() Setup
	Result() Result

	// Configure configure db and collections.
	Configure() error
}

Session represents a communication session with the database.

type Setup

type Setup struct {
	// contains filtered or unexported fields
}

Setup ocollection DAO.

func NewSetup

func NewSetup(session Session) Setup

NewSetup constructor.

func (Setup) Collection

func (s Setup) Collection() Collection

Collection implementation of DAO interface.

func (Setup) ConfigureCollection

func (s Setup) ConfigureCollection() error

ConfigureCollection implementation of DAO interface.

func (Setup) Create

func (s Setup) Create(setup setup.Setup) (bson.ObjectId, error)

Create Setup in db, and return ObjectId of created document. Return err, if any db error occurs.

func (Setup) Delete

func (s Setup) Delete(versionID VersionID) error

Delete remove *setup.Setupd from db. Return db.ErrorNotFound, if setup does not exists in db. Return another err, if any other db error occurs.

func (Setup) Fetch

func (s Setup) Fetch(versionID VersionID) (setup.Setup, error)

Fetch setup.Setup. Return nil, if not found. Return err, if any db error occurs.

func (Setup) Update

func (s Setup) Update(versionID VersionID, setup setup.Setup) error

Update setup.Setup. Return db.ErrorNotFound, if setup does not exists in db. Return another err, if any other db error occurs.

type VersionID

type VersionID struct {
	Account bson.ObjectId
	Project bson.ObjectId
	Version project.VersionID
}

VersionID is used in DAOs methods args to indicate project Version.

Directories

Path Synopsis
Package mongo provide MongoDB implementation of db.Session interface.
Package mongo provide MongoDB implementation of db.Session interface.
Package util provide universal operations on collections.
Package util provide universal operations on collections.

Jump to

Keyboard shortcuts

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