database

package
v2.0.0-...-3e2c818 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2023 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Filter

func Filter[T any](l []T, f func(T) bool) []T

func Map

func Map[T any, R any](l []T, f func(T) R) []R

func MapErr

func MapErr[T any, R any](l []T, f func(T) (R, error)) ([]R, error)

Types

type Database

type Database interface {
	NewGroup(data any) (string, error)
	NewSession(hook string, data any) (string, error)
	GetGroupByID(id string) (Group, error)
	GetSessionByID(id string) (Session, error)
	GetAllGroups() ([]Group, error)
	GetAllEntries(SaveableGetter[Schedule], SaveableGetter[Job]) ([]Entry, error)
	GetEntryByID(string, SaveableGetter[Schedule], SaveableGetter[Job]) (Entry, error)
	Close()
}

func NewMongo

func NewMongo(atlasURI string, database string) (Database, error)

type Entry

type Entry interface {
	scheduler.Entry
	Save() error
	Delete() error
	GetID() string
}

type EntryList

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

func NewEntryList

func NewEntryList(db Database, scheduleGetter SaveableGetter[Schedule], jobGetter SaveableGetter[Job]) *EntryList

func (*EntryList) Add

func (l *EntryList) Add(e scheduler.Entry)

func (*EntryList) All

func (l *EntryList) All() []scheduler.Entry

func (*EntryList) Len

func (l *EntryList) Len() int

func (*EntryList) NewEntry

func (l *EntryList) NewEntry(job scheduler.Job, schedule scheduler.Schedule) scheduler.Entry

func (*EntryList) Remove

func (l *EntryList) Remove(e scheduler.Entry)

type Group

type Group interface {
	GetID() string
	GetData() any
	SetData(data any) error
	NewSession(hook string, data any) (string, error)
	GetSessions() ([]Session, error)
}

type Job

type Job interface {
	scheduler.Job
	Saveable
}

type MongoDatabase

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

func (*MongoDatabase) Close

func (db *MongoDatabase) Close()

func (*MongoDatabase) GetAllEntries

func (db *MongoDatabase) GetAllEntries(scheduleGetter SaveableGetter[Schedule], jobGetter SaveableGetter[Job]) ([]Entry, error)

func (*MongoDatabase) GetAllGroups

func (db *MongoDatabase) GetAllGroups() ([]Group, error)

func (*MongoDatabase) GetEntryByID

func (db *MongoDatabase) GetEntryByID(id string, scheduleGetter SaveableGetter[Schedule], jobGetter SaveableGetter[Job]) (Entry, error)

func (*MongoDatabase) GetGroupByID

func (db *MongoDatabase) GetGroupByID(id string) (Group, error)

func (*MongoDatabase) GetSessionByID

func (db *MongoDatabase) GetSessionByID(id string) (Session, error)

func (*MongoDatabase) NewGroup

func (db *MongoDatabase) NewGroup(data any) (string, error)

func (*MongoDatabase) NewSession

func (db *MongoDatabase) NewSession(hook string, data any) (string, error)

type Saveable

type Saveable interface {
	GetType() string
	Save() (bson.M, error)
	Load(bson.M) error
	IsType(string) bool
}

type SaveableGetter

type SaveableGetter[T Saveable] func(string, bson.M) (T, error)

type Schedule

type Schedule interface {
	scheduler.Schedule
	Saveable
}

type Session

type Session interface {
	GetID() string
	GetData() any
	SetData(data any) error
	GetGroupID() string
	SetGroupID(groupID string) error
	GetGroup() (Group, error)
	GetPushHook() string
	SetPushHook(url string) error
	Hide() error
}

Jump to

Keyboard shortcuts

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