internal

package
v0.92.1 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2024 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StatusBadRequest          int = 400
	StatusConflict            int = 409
	StatusUnprocessableEntity int = 422
)

Status codes used in the CLI that map to HTTP status codes

Variables

This section is empty.

Functions

func Build

func Build(ctx context.Context, opts *BuildOptions) (any, error)

Build builds and validates GOBL data. Only structured errors are returned, which is a break from regular Go convention and replicated on all the main internal CLI functions. The object is to ensure that errors are always structured in a consistent manner.

func Bulk added in v0.14.0

func Bulk(ctx context.Context, opts *BulkOptions) <-chan *BulkResponse

Bulk processes a stream of bulk requests.

func Correct added in v0.56.0

func Correct(ctx context.Context, opts *CorrectOptions) (interface{}, error)

Correct takes a base document as input and builds a corrective document for the output. If the "ShowOptions" boolean is true, we'll attempt to determine what options are available.

func FindType added in v0.6.0

func FindType(term string) schema.ID

func Sign added in v0.40.0

func Sign(ctx context.Context, opts *SignOptions) (*gobl.Envelope, error)

Sign parses a GOBL document into an envelope, performs calculations, validates it, and finally signs its headers. The parsed envelope *must* be a draft, or else an error is returned.

func Validate added in v0.42.0

func Validate(ctx context.Context, r io.Reader) error

Validate asserts the contents of the envelope and document are correct.

func Verify

func Verify(ctx context.Context, in io.Reader, key *dsig.PublicKey) error

Verify reads a GOBL document from in, and returns an error if there are any validation errors.

Types

type BuildOptions

type BuildOptions struct {
	*ParseOptions
}

type BuildRequest added in v0.14.0

type BuildRequest struct {
	Template []byte `json:"template"`
	Data     []byte `json:"data"`
	DocType  string `json:"type"`
	Envelop  bool   `json:"envelop"`
}

BuildRequest is the payload for a build request.

type BulkOptions added in v0.46.0

type BulkOptions struct {
	// In is the input stream of requests
	In io.Reader
	// DefaultPrivateKey is the default private key to use with sign requests
	DefaultPrivateKey *dsig.PrivateKey
}

BulkOptions are the options used for processing a stream of bulk requests.

type BulkRequest added in v0.14.0

type BulkRequest struct {
	// Action is the action to perform on the payload.
	Action string `json:"action"`
	// ReqID is an opaque request ID, which is returned with the associated
	// response.
	ReqID string `json:"req_id"`
	// Payload is the payload upon which to perform the action.
	Payload json.RawMessage `json:"payload"`
	// When true, responses are indented for easier human consumption
	Indent bool `json:"indent"`
}

BulkRequest represents a single request in the stream of bulk requests.

type BulkResponse added in v0.14.0

type BulkResponse struct {
	// ReqID is an exact copy of the value provided in the request, if any.
	ReqID string `json:"req_id,omitempty"`
	// SeqID is the sequence ID of the request this response correspond to,
	// starting at 1.
	SeqID int64 `json:"seq_id"`
	// Payload is the response payload.
	Payload json.RawMessage `json:"payload,omitempty"`
	// Error represents an error processing a request item.
	Error *Error `json:"error"`
	// IsFinal will be true once the end of the request input stream has been
	// reached, or an unrecoverable error has occurred.
	IsFinal bool `json:"is_final"`
}

BulkResponse represents a single response in the stream of bulk responses.

type CorrectOptions added in v0.56.0

type CorrectOptions struct {
	// we don't need all of the parse options
	*ParseOptions
	OptionsSchema bool
	Credit        bool
	Debit         bool
	Date          cal.Date
	Data          []byte // raw json of correction options
}

CorrectOptions define all the basic options required to build a corrective document from the input.

type CorrectRequest added in v0.56.0

type CorrectRequest struct {
	Data    []byte `json:"data"`
	Options []byte `json:"options"`
	Schema  bool   `json:"schema"`
}

CorrectRequest is the payload used to generate a corrected document. If the schema option is true, the options data is ignored.

type Error added in v0.80.0

type Error struct {
	Code    int              `json:"code"`             // HTTP status code
	Key     cbc.Key          `json:"key,omitempty"`    // For GOBL errors
	Fields  gobl.FieldErrors `json:"fields,omitempty"` // Structured error messages for fields
	Message string           `json:"message,omitempty"`
}

Error wraps around around any messages generated by the cli and attempts to provide a structured output that can be interpreted.

func (*Error) Error added in v0.80.0

func (e *Error) Error() string

Error provides a string representation of the error. This should only really be used for testing purposes.

type KeygenResponse added in v0.14.0

type KeygenResponse struct {
	Private *dsig.PrivateKey `json:"private"`
	Public  *dsig.PublicKey  `json:"public"`
}

KeygenResponse is the payload for a key generation response.

type ParseOptions added in v0.42.0

type ParseOptions struct {
	Template  io.Reader
	Input     io.Reader
	DocType   string
	SetYAML   map[string]string
	SetString map[string]string
	SetFile   map[string]string

	// When set to `true`, the parsed data is wrapped in an envelope (if needed).
	Envelop bool
}

ParseOptions are the options used for parsing incoming GOBL data.

type RegimeRequest added in v0.67.0

type RegimeRequest struct {
	Code string `json:"code"`
}

type SchemaRequest added in v0.67.0

type SchemaRequest struct {
	Path string `json:"path"`
}

SchemaRequest defines a body used to request a specific JSON schema

type SignOptions added in v0.42.0

type SignOptions struct {
	*ParseOptions
	PrivateKey *dsig.PrivateKey
}

SignOptions are the options used for signing a GOBL document.

type SignRequest added in v0.48.1

type SignRequest struct {
	Template   []byte           `json:"template"`
	Data       []byte           `json:"data"`
	PrivateKey *dsig.PrivateKey `json:"privatekey"`
	DocType    string           `json:"type"`
	Envelop    bool             `json:"envelop"`
}

SignRequest is the payload for a sign request.

type ValidateRequest added in v0.42.0

type ValidateRequest struct {
	Data []byte `json:"data"`
}

type ValidateResponse added in v0.42.0

type ValidateResponse struct {
	OK bool `json:"ok"`
}

ValidateResponse is the response to a validate request.

type VerifyRequest added in v0.14.0

type VerifyRequest struct {
	Data      []byte          `json:"data"`
	PublicKey *dsig.PublicKey `json:"publickey"`
}

VerifyRequest is the payload for a verification request.

type VerifyResponse added in v0.14.0

type VerifyResponse struct {
	OK bool `json:"ok"`
}

VerifyResponse is the response to a verification request.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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