client

package
v0.2.4 Latest Latest
Warning

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

Go to latest
Published: Jun 22, 2023 License: Apache-2.0, MIT Imports: 17 Imported by: 10

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client added in v0.2.0

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

Client is an http client for the indexer find API

func New added in v0.2.0

func New(baseURL string, options ...Option) (*Client, error)

New creates a new find HTTP client.

func (*Client) Find added in v0.2.0

func (c *Client) Find(ctx context.Context, m multihash.Multihash) (*model.FindResponse, error)

Find looks up content entries by multihash.

func (*Client) FindBatch added in v0.2.0

func (c *Client) FindBatch(ctx context.Context, mhs []multihash.Multihash) (*model.FindResponse, error)

FindBatch looks up content entries for a batch of multihashes

func (*Client) GetProvider added in v0.2.0

func (c *Client) GetProvider(ctx context.Context, providerID peer.ID) (*model.ProviderInfo, error)

func (*Client) GetStats added in v0.2.0

func (c *Client) GetStats(ctx context.Context) (*model.Stats, error)

func (*Client) ListProviders added in v0.2.0

func (c *Client) ListProviders(ctx context.Context) ([]*model.ProviderInfo, error)

type DHashClient added in v0.2.0

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

func NewDHashClient added in v0.2.0

func NewDHashClient(stiURL string, options ...Option) (*DHashClient, error)

NewDHashClient instantiates a new client that uses Reader Privacy API for querying data. It requires more roundtrips to fullfill one query however it also protects the user from a passive observer. dhstoreURL specifies the URL of the double hashed store that can respond to find encrypted multihash and find encrypted metadata requests.

func (*DHashClient) Find added in v0.2.0

func (c *DHashClient) Find(ctx context.Context, mh multihash.Multihash) (*model.FindResponse, error)

Find launches FindAsync in a separate go routine and assembles the result into FindResponse as if it was a synchronous invocation.

func (*DHashClient) FindAsync added in v0.2.0

func (c *DHashClient) FindAsync(ctx context.Context, mh multihash.Multihash, resChan chan<- model.ProviderResult) error

FindAsync implements double hashed lookup workflow. FindAsync returns results on resChan until there are no more results or error. When finished, resChan is closed and the error or nil is returned.

type Interface

type Interface interface {
	// Find queries for provider content records for a single multihash.
	Find(context.Context, multihash.Multihash) (*model.FindResponse, error)
	// FindBatch queries for provider content records for a batch of multihashes.
	FindBatch(context.Context, []multihash.Multihash) (*model.FindResponse, error)

	// GetProvider gets information about the provider identified by peer.ID.
	GetProvider(context.Context, peer.ID) (*model.ProviderInfo, error)
	// ListPrividers gets information about all providers known to the indexer.
	ListProviders(ctx context.Context) ([]*model.ProviderInfo, error)

	// GetStats get statistics for indexer.
	GetStats(context.Context) (*model.Stats, error)
}

Interface is the interface implemented by all find clients.

type Option added in v0.2.0

type Option func(*config) error

Option is a function that sets a value in a config.

func WithClient added in v0.2.0

func WithClient(c *http.Client) Option

WithClient allows creation of the http client using an underlying network round tripper / client.

func WithDHStoreURL added in v0.2.2

func WithDHStoreURL(u string) Option

WithDHStoreURL allows specifying different URLs for dhstore (/multihash and /metadata endpoints) and storetheindex (/providers endpoint). This might be useful as dhstore and storetheindex are different services that might not necessarily be behind the same URL. However the data from both of them is required to assemble results.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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