api

package
v0.16.0 Latest Latest
Warning

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

Go to latest
Published: Jan 12, 2021 License: GPL-3.0 Imports: 17 Imported by: 0

Documentation

Overview

Package api provides primitives to interact the openapi HTTP API.

Code generated by github.com/deepmap/oapi-codegen DO NOT EDIT.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewAddDocumentRequest

func NewAddDocumentRequest(server string, body AddDocumentJSONRequestBody) (*http.Request, error)

NewAddDocumentRequest calls the generic AddDocument builder with application/json body

func NewAddDocumentRequestWithBody

func NewAddDocumentRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewAddDocumentRequestWithBody generates requests for AddDocument with any type of body

func NewGetDocumentContentsRequest

func NewGetDocumentContentsRequest(server string, hash string) (*http.Request, error)

NewGetDocumentContentsRequest generates requests for GetDocumentContents

func NewGetDocumentRequest

func NewGetDocumentRequest(server string, hash string) (*http.Request, error)

NewGetDocumentRequest generates requests for GetDocument

func NewListDocumentsRequest

func NewListDocumentsRequest(server string) (*http.Request, error)

NewListDocumentsRequest generates requests for ListDocuments

func ParseAddDocumentResponse

func ParseAddDocumentResponse(rsp *http.Response) (*addDocumentResponse, error)

ParseAddDocumentResponse parses an HTTP response from a AddDocumentWithResponse call

func ParseGetDocumentContentsResponse

func ParseGetDocumentContentsResponse(rsp *http.Response) (*getDocumentContentsResponse, error)

ParseGetDocumentContentsResponse parses an HTTP response from a GetDocumentContentsWithResponse call

func ParseGetDocumentResponse

func ParseGetDocumentResponse(rsp *http.Response) (*getDocumentResponse, error)

ParseGetDocumentResponse parses an HTTP response from a GetDocumentWithResponse call

func ParseListDocumentsResponse

func ParseListDocumentsResponse(rsp *http.Response) (*listDocumentsResponse, error)

ParseListDocumentsResponse parses an HTTP response from a ListDocumentsWithResponse call

func RegisterHandlers

func RegisterHandlers(router EchoRouter, si ServerInterface)

RegisterHandlers adds each server route to the EchoRouter.

Types

type AddDocumentJSONBody

type AddDocumentJSONBody DocumentWithContents

AddDocumentJSONBody defines parameters for AddDocument.

type AddDocumentJSONRequestBody

type AddDocumentJSONRequestBody AddDocumentJSONBody

AddDocumentRequestBody defines body for AddDocument for application/json ContentType.

type ApiWrapper

type ApiWrapper struct {
	Service pkg.NetworkClient
}

ApiWrapper is needed to connect the implementation to the echo ServiceWrapper

func (ApiWrapper) AddDocument

func (a ApiWrapper) AddDocument(ctx echo.Context) error

func (ApiWrapper) GetDocument

func (a ApiWrapper) GetDocument(ctx echo.Context, hashAsString string) error

func (ApiWrapper) GetDocumentContents

func (a ApiWrapper) GetDocumentContents(ctx echo.Context, hashAsString string) error

func (ApiWrapper) ListDocuments

func (a ApiWrapper) ListDocuments(ctx echo.Context) error

type Client

type Client struct {
	// The endpoint of the server conforming to this interface, with scheme,
	// https://api.deepmap.com for example.
	Server string

	// Doer for performing requests, typically a *http.Client with any
	// customized settings, such as certificate chains.
	Client HttpRequestDoer

	// A callback for modifying requests which are generated before sending over
	// the network.
	RequestEditor RequestEditorFn
}

Client which conforms to the OpenAPI3 specification for this service.

func NewClient

func NewClient(server string, opts ...ClientOption) (*Client, error)

Creates a new Client, with reasonable defaults

func (*Client) AddDocument

func (c *Client) AddDocument(ctx context.Context, body AddDocumentJSONRequestBody) (*http.Response, error)

func (*Client) AddDocumentWithBody

func (c *Client) AddDocumentWithBody(ctx context.Context, contentType string, body io.Reader) (*http.Response, error)

func (*Client) GetDocument

func (c *Client) GetDocument(ctx context.Context, hash string) (*http.Response, error)

func (*Client) GetDocumentContents

func (c *Client) GetDocumentContents(ctx context.Context, hash string) (*http.Response, error)

func (*Client) ListDocuments

func (c *Client) ListDocuments(ctx context.Context) (*http.Response, error)

type ClientInterface

type ClientInterface interface {
	// ListDocuments request
	ListDocuments(ctx context.Context) (*http.Response, error)

	// AddDocument request  with any body
	AddDocumentWithBody(ctx context.Context, contentType string, body io.Reader) (*http.Response, error)

	AddDocument(ctx context.Context, body AddDocumentJSONRequestBody) (*http.Response, error)

	// GetDocument request
	GetDocument(ctx context.Context, hash string) (*http.Response, error)

	// GetDocumentContents request
	GetDocumentContents(ctx context.Context, hash string) (*http.Response, error)
}

The interface specification for the client above.

type ClientOption

type ClientOption func(*Client) error

ClientOption allows setting custom parameters during construction

func WithBaseURL

func WithBaseURL(baseURL string) ClientOption

WithBaseURL overrides the baseURL.

func WithHTTPClient

func WithHTTPClient(doer HttpRequestDoer) ClientOption

WithHTTPClient allows overriding the default Doer, which is automatically created using http.Client. This is useful for tests.

func WithRequestEditorFn

func WithRequestEditorFn(fn RequestEditorFn) ClientOption

WithRequestEditorFn allows setting up a callback function, which will be called right before sending the request. This can be used to mutate the request.

type ClientWithResponses

type ClientWithResponses struct {
	ClientInterface
}

ClientWithResponses builds on ClientInterface to offer response payloads

func NewClientWithResponses

func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error)

NewClientWithResponses creates a new ClientWithResponses, which wraps Client with return type handling

func (*ClientWithResponses) AddDocumentWithBodyWithResponse

func (c *ClientWithResponses) AddDocumentWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader) (*addDocumentResponse, error)

AddDocumentWithBodyWithResponse request with arbitrary body returning *AddDocumentResponse

func (*ClientWithResponses) AddDocumentWithResponse

func (c *ClientWithResponses) AddDocumentWithResponse(ctx context.Context, body AddDocumentJSONRequestBody) (*addDocumentResponse, error)

func (*ClientWithResponses) GetDocumentContentsWithResponse

func (c *ClientWithResponses) GetDocumentContentsWithResponse(ctx context.Context, hash string) (*getDocumentContentsResponse, error)

GetDocumentContentsWithResponse request returning *GetDocumentContentsResponse

func (*ClientWithResponses) GetDocumentWithResponse

func (c *ClientWithResponses) GetDocumentWithResponse(ctx context.Context, hash string) (*getDocumentResponse, error)

GetDocumentWithResponse request returning *GetDocumentResponse

func (*ClientWithResponses) ListDocumentsWithResponse

func (c *ClientWithResponses) ListDocumentsWithResponse(ctx context.Context) (*listDocumentsResponse, error)

ListDocumentsWithResponse request returning *ListDocumentsResponse

type Document

type Document struct {

	// Hex-encoded hash of the document
	Hash string `json:"hash"`

	// Timestamp at which the document was created in nanoseconds (since Unix epoch)
	Timestamp int64 `json:"timestamp"`

	// type of the document
	Type string `json:"type"`
}

Document defines model for Document.

type DocumentWithContents

type DocumentWithContents struct {

	// Actual contents of the document
	Contents []byte `json:"contents"`

	// Timestamp at which the document was created in nanoseconds (since Unix epoch)
	Timestamp int64 `json:"timestamp"`

	// type of the document
	Type string `json:"type"`
}

DocumentWithContents defines model for DocumentWithContents.

type EchoRouter

type EchoRouter interface {
	CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
	TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
}

This is a simple interface which specifies echo.Route addition functions which are present on both echo.Echo and echo.Group, since we want to allow using either of them for path registration

type HttpClient

type HttpClient struct {
	ServerAddress string
	Timeout       time.Duration
}

HttpClient holds the server address and other basic settings for the http client

func (HttpClient) AddDocumentWithContents

func (hb HttpClient) AddDocumentWithContents(timestamp time.Time, docType string, contents []byte) (*model.Document, error)

func (HttpClient) GetDocument

func (hb HttpClient) GetDocument(hash model.Hash) (*model.DocumentDescriptor, error)

func (HttpClient) GetDocumentContents

func (hb HttpClient) GetDocumentContents(hash model.Hash) (io.ReadCloser, error)

func (HttpClient) ListDocuments

func (hb HttpClient) ListDocuments() ([]model.DocumentDescriptor, error)

func (HttpClient) Subscribe

func (hb HttpClient) Subscribe(documentType string) documentlog.DocumentQueue

type HttpRequestDoer

type HttpRequestDoer interface {
	Do(req *http.Request) (*http.Response, error)
}

Doer performs HTTP requests.

The standard http.Client implements this interface.

type RequestEditorFn

type RequestEditorFn func(ctx context.Context, req *http.Request) error

RequestEditorFn is the function signature for the RequestEditor callback function

type ServerInterface

type ServerInterface interface {
	// Lists the documents on the log
	// (GET /api/document)
	ListDocuments(ctx echo.Context) error
	// Adds a document to the document log
	// (POST /api/document)
	AddDocument(ctx echo.Context) error
	// Retrieves a document
	// (GET /api/document/{hash})
	GetDocument(ctx echo.Context, hash string) error
	// Gets the document contents
	// (GET /api/document/{hash}/contents)
	GetDocumentContents(ctx echo.Context, hash string) error
}

ServerInterface represents all server handlers.

type ServerInterfaceWrapper

type ServerInterfaceWrapper struct {
	Handler ServerInterface
}

ServerInterfaceWrapper converts echo contexts to parameters.

func (*ServerInterfaceWrapper) AddDocument

func (w *ServerInterfaceWrapper) AddDocument(ctx echo.Context) error

AddDocument converts echo context to params.

func (*ServerInterfaceWrapper) GetDocument

func (w *ServerInterfaceWrapper) GetDocument(ctx echo.Context) error

GetDocument converts echo context to params.

func (*ServerInterfaceWrapper) GetDocumentContents

func (w *ServerInterfaceWrapper) GetDocumentContents(ctx echo.Context) error

GetDocumentContents converts echo context to params.

func (*ServerInterfaceWrapper) ListDocuments

func (w *ServerInterfaceWrapper) ListDocuments(ctx echo.Context) error

ListDocuments converts echo context to params.

Jump to

Keyboard shortcuts

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