store

package
v0.0.0-...-ab77271 Latest Latest
Warning

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

Go to latest
Published: Jul 23, 2018 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package store contains all permanent store related tasks, such as creating, retrieving, updating and deleting models from the underlying database.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BanStore

type BanStore interface {
	// IsBanned verifies if an IP address is banned or not
	IsBanned(ip string) (*model.Ban, bool, error)
}

BanStore abstracts ban data access

type BoardStore

type BoardStore interface {
	// CreateBoard creates a board
	CreateBoard(board *model.Board) error
	// AllBoards return all existing boards
	AllBoards() ([]*model.Board, error)
	// GetBoard gets an specific board
	GetBoard(uri string) (*model.Board, error)
	// UpdateBoard updates a board
	UpdateBoard(board *model.Board) error
	// DeleteBoard deletes a board
	DeleteBoard(uri string) error
}

BoardStore abstracts board data access

type MongoStore

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

MongoStore is a MongoDB implementation of Store

func (*MongoStore) AllBoards

func (s *MongoStore) AllBoards() ([]*model.Board, error)

AllBoards return all existing boards

func (*MongoStore) AllUsers

func (s *MongoStore) AllUsers() ([]*model.User, error)

AllUsers return all users

func (*MongoStore) Bans

func (s *MongoStore) Bans() *mgo.Collection

Bans return the bans collection

func (*MongoStore) Boards

func (s *MongoStore) Boards() *mgo.Collection

Boards return the boards collection

func (*MongoStore) BumpThread

func (s *MongoStore) BumpThread(threadID string) error

BumpThreads bumps a thread

func (*MongoStore) Clone

func (s *MongoStore) Clone() Store

Clone creates a new Store with a new MongoDB connection

func (*MongoStore) Close

func (s *MongoStore) Close()

Close closes a MongoDB connection

func (*MongoStore) CreateBoard

func (s *MongoStore) CreateBoard(board *model.Board) error

CreateBoard creates a board

func (*MongoStore) CreatePost

func (s *MongoStore) CreatePost(p *model.Post) error

CreatePost creates a new post

func (*MongoStore) CreateUser

func (s *MongoStore) CreateUser(user *model.User) error

CreateUser creates a user

func (*MongoStore) Database

func (s *MongoStore) Database() *mgo.Database

Database returns the internal MongoDB database

func (*MongoStore) DeleteBoard

func (s *MongoStore) DeleteBoard(uri string) error

DeleteBoard deletes a board

func (*MongoStore) DeletePost

func (s *MongoStore) DeletePost(id string) error

DeletePost deletes a post

func (*MongoStore) DeleteUser

func (s *MongoStore) DeleteUser(username string) error

DeleteUser deletes a user

func (*MongoStore) GetBoard

func (s *MongoStore) GetBoard(uri string) (board *model.Board, err error)

GetBoard gets an specific board

func (*MongoStore) GetPost

func (s *MongoStore) GetPost(postID string) (*model.Post, error)

GetPost returns a specific post

func (*MongoStore) GetReplies

func (s *MongoStore) GetReplies(threadID string) ([]*model.Post, error)

GetReplies return all thread replies

func (*MongoStore) GetThread

func (s *MongoStore) GetThread(threadID string) (*model.Thread, error)

GetThread returns a thread with it's replies

func (*MongoStore) GetUser

func (s *MongoStore) GetUser(username string) (*model.User, error)

GetUset gets an user

func (*MongoStore) IsBanned

func (s *MongoStore) IsBanned(ip string) (ban *model.Ban, exists bool, err error)

IsBanned verifies if an IP address is banned or not

func (*MongoStore) Posts

func (s *MongoStore) Posts() *mgo.Collection

Posts return the posts collection

func (*MongoStore) Session

func (s *MongoStore) Session() *mgo.Session

Session returns the internal MongoDB session

func (*MongoStore) UpdateBoard

func (s *MongoStore) UpdateBoard(board *model.Board) error

UpdateBoard updates a board

func (*MongoStore) UpdatePost

func (s *MongoStore) UpdatePost(p *model.Post) error

UpdatePost updates a post

func (*MongoStore) UpdateUser

func (s *MongoStore) UpdateUser(user *model.User) error

UpdateUser updates a user

func (*MongoStore) Users

func (s *MongoStore) Users() *mgo.Collection

Users return the users collection

type PostStore

type PostStore interface {
	// CreatePost creates a new post
	CreatePost(p *model.Post) error
	// GetPost returns a specific post
	GetPost(postID string) (*model.Post, error)
	// UpdatePost updates a post
	UpdatePost(p *model.Post) error
	// DeletePost deletes a post
	DeletePost(postID string) error

	// GetThread returns a thread with it's replies
	GetThread(threadID string) (*model.Thread, error)
	// GetReplies return all thread replies
	GetReplies(postID string) ([]*model.Post, error)
	// BumpThreads bumps a thread
	BumpThread(threadID string) error
}

PostStore abstracts post data access

type Store

type Store interface {
	BoardStore
	PostStore
	UserStore
	BanStore

	Clone() Store
	Close()
}

Store abstracts all database access

func NewStore

func NewStore(uri string, database string) (Store, error)

NewStore create a new MongoDB backed data Store

type UserStore

type UserStore interface {
	// CreateUser creates a user
	CreateUser(user *model.User) error
	// AllUsers return all users
	AllUsers() ([]*model.User, error)
	// GetUset gets an user
	GetUser(username string) (*model.User, error)
	// UpdateUser updates a user
	UpdateUser(user *model.User) error
	// DeleteUser deletes a user
	DeleteUser(username string) error
}

UserStore abstracts user data access

Jump to

Keyboard shortcuts

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