threaddb

package
v1.0.14 Latest Latest
Warning

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

Go to latest
Published: Jul 30, 2020 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// ErrMailboxExists indicates that a mailbox with the same name and owner already exists.
	ErrMailboxExists = errors.New("mailbox already exists")
)

Functions

This section is empty.

Types

type Archive

type Archive struct {
	Cid   string `json:"cid"`
	Deals []Deal `json:"deals"`
}

Archive is a single archive containing a list of deals.

type Archives

type Archives struct {
	Current Archive   `json:"current"`
	History []Archive `json:"history"`
}

Archives contains all archives for a single bucket.

type Bucket

type Bucket struct {
	Key       string   `json:"_id"`
	Name      string   `json:"name"`
	Path      string   `json:"path"`
	EncKey    string   `json:"key,omitempty"`
	DNSRecord string   `json:"dns_record,omitempty"`
	Archives  Archives `json:"archives"`
	CreatedAt int64    `json:"created_at"`
	UpdatedAt int64    `json:"updated_at"`
}

Bucket represents the buckets threaddb collection schema.

func (*Bucket) GetEncKey

func (b *Bucket) GetEncKey() []byte

GetEncKey returns the encryption key as bytes if present.

type BucketOption

type BucketOption func(*BucketOptions)

BucketOption holds a bucket option.

func WithNewBucketKey

func WithNewBucketKey(k []byte) BucketOption

WithNewBucketKey sets the bucket encryption key.

func WithNewBucketName

func WithNewBucketName(n string) BucketOption

WithNewBucketName specifies a name for a bucket. Note: This is only valid when creating a new bucket.

func WithNewBucketToken

func WithNewBucketToken(t thread.Token) BucketOption

WithNewBucketToken sets the threaddb token.

type BucketOptions

type BucketOptions struct {
	Name  string
	Key   []byte
	Token thread.Token
}

BucketOptions defines options for interacting with buckets.

type Buckets

type Buckets struct {
	Collection
	// contains filtered or unexported fields
}

Buckets is a wrapper around a threaddb collection that performs object storage on IPFS and Filecoin.

func NewBuckets

func NewBuckets(tc *dbc.Client, pgc *powc.Client, col *mdb.FFSInstances, defaultCidConfig *ffs.DefaultConfig) (*Buckets, error)

NewBuckets returns a new buckets collection mananger.

func (*Buckets) ArchiveStatus

func (b *Buckets) ArchiveStatus(ctx context.Context, key string) (ffs.JobStatus, string, error)

ArchiveStatus returns the last known archive status on Powergate. If the return status is Failed, an extra string with the error message is provided.

func (*Buckets) ArchiveWatch

func (b *Buckets) ArchiveWatch(ctx context.Context, key string, ch chan<- string) error

ArchiveWatch allows to have the last log execution for the last archive, plus realtime human-friendly log output of how the current archive is executing. If the last archive is already done, it will simply return the log history and close the channel.

func (*Buckets) Close

func (b *Buckets) Close() error

func (*Buckets) IsArchivingEnabled

func (b *Buckets) IsArchivingEnabled() bool

IsArchivingEnabled returns whether or not Powergate archiving is enabled.

func (*Buckets) New

func (b *Buckets) New(ctx context.Context, dbID thread.ID, key string, pth path.Path, opts ...BucketOption) (*Bucket, error)

Create a bucket instance.

func (*Buckets) SaveSafe

func (b *Buckets) SaveSafe(ctx context.Context, dbID thread.ID, bucket *Bucket, opts ...Option) error

SaveSafe a bucket instance.

type Collection

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

Collection wraps a ThreadDB collection with some convenience methods.

func (*Collection) Create

func (c *Collection) Create(ctx context.Context, dbID thread.ID, instance interface{}, opts ...Option) (coredb.InstanceID, error)

Create a collection instance.

func (*Collection) Delete

func (c *Collection) Delete(ctx context.Context, dbID thread.ID, id string, opts ...Option) error

Delete a collection instance.

func (*Collection) Get

func (c *Collection) Get(ctx context.Context, dbID thread.ID, key string, instance interface{}, opts ...Option) error

Get a collection instance.

func (*Collection) List

func (c *Collection) List(ctx context.Context, dbID thread.ID, query *db.Query, instance interface{}, opts ...Option) (interface{}, error)

List collection instances.

func (*Collection) Save

func (c *Collection) Save(ctx context.Context, dbID thread.ID, instance interface{}, opts ...Option) error

Save a collection instance.

type Deal

type Deal struct {
	ProposalCid string `json:"proposal_cid"`
	Miner       string `json:"miner"`
}

Deal contains details about a Filecoin deal.

type InboxMessage

type InboxMessage struct {
	ID        string `json:"_id"`
	From      string `json:"from"`
	To        string `json:"to"`
	Body      string `json:"body"`
	Signature string `json:"signature"`
	CreatedAt int64  `json:"created_at"`
	ReadAt    int64  `json:"read_at"`
}

InboxMessage represents the inbox threaddb collection schema.

type Mail

type Mail struct {
	Inbox   Collection
	Sentbox Collection
	// contains filtered or unexported fields
}

Mail is a wrapper around a threaddb collection for sending mail between users.

func NewMail

func NewMail(tc *dbc.Client) (*Mail, error)

NewMail returns a new mail collection mananger.

func (*Mail) NewMailbox

func (m *Mail) NewMailbox(ctx context.Context, opts ...Option) (thread.ID, error)

NewMailbox creates a new threaddb mail box.

type Option

type Option func(*Options)

Option holds a collection option.

func WithToken

func WithToken(t thread.Token) Option

WithToken sets the token.

type Options

type Options struct {
	Token thread.Token
}

Options defines options for interacting with a collection.

type SentboxMessage

type SentboxMessage struct {
	ID        string `json:"_id"`
	From      string `json:"from"`
	To        string `json:"to"`
	Body      string `json:"body"`
	Signature string `json:"signature"`
	CreatedAt int64  `json:"created_at"`
}

SentboxMessage represents the sentbox threaddb collection schema.

Jump to

Keyboard shortcuts

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