call

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Jan 17, 2021 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Params

type Params struct {
	ID          uuid.UUID
	Idx         int
	UserID      *uuid.UUID
	Coll        string
	Req         string
	Client      *http.Client
	Proto       *request.Prototype
	Sess        *session.Session
	SessSvc     *session.Service
	Logger      logur.Logger
	OnStarted   func(started *RequestStarted)
	OnCompleted func(completed *RequestCompleted)
}

func (*Params) Clone

func (p *Params) Clone(proto *request.Prototype) *Params

type RequestCompleted

type RequestCompleted struct {
	Coll     string    `json:"coll"`
	Req      string    `json:"req"`
	ID       uuid.UUID `json:"id"`
	Idx      int       `json:"idx"`
	Status   string    `json:"status,omitempty"`
	Rsp      *Response `json:"rsp,omitempty"`
	Error    string    `json:"error,omitempty"`
	Duration int       `json:"duration,omitempty"`
}

type RequestStarted

type RequestStarted struct {
	Coll    string    `json:"coll"`
	Req     string    `json:"req"`
	ID      uuid.UUID `json:"id"`
	Idx     int       `json:"idx"`
	Method  string    `json:"method,omitempty"`
	URL     string    `json:"url,omitempty"`
	Started time.Time `json:"started,omitempty"`
}

type Response

type Response struct {
	Method           string         `json:"method,omitempty"`
	URL              string         `json:"url,omitempty"`
	RequestHeaders   header.Headers `json:"requestHeaders,omitempty"`
	Status           string         `json:"status"`
	StatusCode       int            `json:"statusCode,omitempty"`
	Proto            string         `json:"proto,omitempty"`
	ProtoMajor       int            `json:"protoMajor,omitempty"`
	ProtoMinor       int            `json:"protoMinor,omitempty"`
	Headers          header.Headers `json:"headers,omitempty"`
	Cookies          header.Cookies `json:"cookies,omitempty"`
	ContentLength    int64          `json:"contentLength,omitempty"`
	ContentType      string         `json:"contentType,omitempty"`
	Charset          string         `json:"charset,omitempty"`
	TransferEncoding []string       `json:"transferEncoding,omitempty"`
	Close            bool           `json:"close,omitempty"`
	Uncompressed     bool           `json:"uncompressed,omitempty"`
	Body             *body.Body     `json:"body,omitempty"`
	Timing           *Timing        `json:"timing,omitempty"`
	Error            *string        `json:"error,omitempty"`
}

func ResponseFromHTTP

func ResponseFromHTTP(p *request.Prototype, r *http.Response, sess *session.Session, timing *Timing) *Response

type Result

type Result struct {
	ID         uuid.UUID `json:"id,omitempty"`
	Collection string    `json:"collection,omitempty"`
	Request    string    `json:"request,omitempty"`
	Status     string    `json:"status,omitempty"`
	Response   *Response `json:"response,omitempty"`
	Error      string    `json:"error,omitempty"`
}

func NewErrorResult

func NewErrorResult(id uuid.UUID, coll string, req string, err string) *Result

func NewResult

func NewResult(id uuid.UUID, coll string, req string, status string) *Result

type Service

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

func NewService

func NewService(sessSvc *session.Service, logger logur.Logger) *Service

func (*Service) Call

func (s *Service) Call(userID *uuid.UUID, coll string, req string, p *request.Prototype, sess *session.Session, started func(started *RequestStarted), completed func(completed *RequestCompleted)) error

type Timing

type Timing struct {
	Began             int64 `json:"began,omitempty"`
	DNSStart          int   `json:"dnsStart,omitempty"`
	DNSEnd            int   `json:"dnsEnd,omitempty"`
	ConnectStart      int   `json:"connectStart,omitempty"`
	ConnectEnd        int   `json:"connectEnd,omitempty"`
	TLSStart          int   `json:"tlsStart,omitempty"`
	TLSEnd            int   `json:"tlsEnd,omitempty"`
	WroteHeaders      int   `json:"wroteHeaders,omitempty"`
	WroteRequest      int   `json:"wroteRequest,omitempty"`
	FirstResponseByte int   `json:"firstResponseByte,omitempty"`
	ResponseHeaders   int   `json:"responseHeaders,omitempty"`
	Completed         int   `json:"completed,omitempty"`
}

func (*Timing) Begin

func (t *Timing) Begin()

func (*Timing) Complete

func (t *Timing) Complete()

func (*Timing) CompleteHeaders

func (t *Timing) CompleteHeaders()

func (*Timing) Connect

func (t *Timing) Connect() (int, int)

func (*Timing) ConnectComplete

func (t *Timing) ConnectComplete() int

func (*Timing) DNS

func (t *Timing) DNS() (int, int)

func (*Timing) Duration

func (t *Timing) Duration() int

func (*Timing) Request

func (t *Timing) Request() (int, int, int)

func (*Timing) Sections

func (t *Timing) Sections() []*TimingSection

func (*Timing) TLS

func (t *Timing) TLS() (int, int)

func (*Timing) Trace

func (t *Timing) Trace() *httptrace.ClientTrace

type TimingSection

type TimingSection struct {
	Key   string `json:"key"`
	Start int    `json:"start"`
	End   int    `json:"end"`
}

Jump to

Keyboard shortcuts

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