github.com/hyperledger/aries-framework-go@v0.3.2/pkg/client/ld/client.go (about)

     1  /*
     2  Copyright SecureKey Technologies Inc. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package ld
     8  
     9  import (
    10  	"github.com/hyperledger/aries-framework-go/pkg/doc/ldcontext"
    11  	"github.com/hyperledger/aries-framework-go/pkg/doc/ldcontext/remote"
    12  	"github.com/hyperledger/aries-framework-go/pkg/ld"
    13  	ldstore "github.com/hyperledger/aries-framework-go/pkg/store/ld"
    14  )
    15  
    16  // provider contains dependencies for the JSON-LD service.
    17  type provider interface {
    18  	JSONLDContextStore() ldstore.ContextStore
    19  	JSONLDRemoteProviderStore() ldstore.RemoteProviderStore
    20  }
    21  
    22  // Client is a JSON-LD SDK client.
    23  type Client struct {
    24  	service ld.Service
    25  }
    26  
    27  // NewClient returns a new instance of Client.
    28  func NewClient(ctx provider, opts ...Option) *Client {
    29  	c := &Client{
    30  		service: ld.New(ctx),
    31  	}
    32  
    33  	for _, opt := range opts {
    34  		opt(c)
    35  	}
    36  
    37  	return c
    38  }
    39  
    40  // AddContexts adds JSON-LD contexts to the underlying storage.
    41  func (c *Client) AddContexts(documents []ldcontext.Document) error {
    42  	return c.service.AddContexts(documents)
    43  }
    44  
    45  // AddRemoteProvider adds remote provider and JSON-LD contexts from that provider.
    46  func (c *Client) AddRemoteProvider(providerEndpoint string, opts ...remote.ProviderOpt) (string, error) {
    47  	return c.service.AddRemoteProvider(providerEndpoint, opts...)
    48  }
    49  
    50  // RefreshRemoteProvider updates contexts from the remote provider.
    51  func (c *Client) RefreshRemoteProvider(providerID string, opts ...remote.ProviderOpt) error {
    52  	return c.service.RefreshRemoteProvider(providerID, opts...)
    53  }
    54  
    55  // DeleteRemoteProvider deletes remote provider and contexts from that provider.
    56  func (c *Client) DeleteRemoteProvider(providerID string, opts ...remote.ProviderOpt) error {
    57  	return c.service.DeleteRemoteProvider(providerID, opts...)
    58  }
    59  
    60  // GetAllRemoteProviders gets all remote providers.
    61  func (c *Client) GetAllRemoteProviders() ([]ldstore.RemoteProviderRecord, error) {
    62  	return c.service.GetAllRemoteProviders()
    63  }
    64  
    65  // RefreshAllRemoteProviders updates contexts from all remote providers.
    66  func (c *Client) RefreshAllRemoteProviders(opts ...remote.ProviderOpt) error {
    67  	return c.service.RefreshAllRemoteProviders(opts...)
    68  }
    69  
    70  // Option configures the JSON-LD client.
    71  type Option func(c *Client)
    72  
    73  // WithLDService sets the custom JSON-LD service.
    74  func WithLDService(svc ld.Service) Option {
    75  	return func(c *Client) {
    76  		c.service = svc
    77  	}
    78  }