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 }