Documentation
ΒΆ
Index ΒΆ
Constants ΒΆ
This section is empty.
Variables ΒΆ
This section is empty.
Functions ΒΆ
func Execute ΒΆ
func Execute[T HTTPResponser](ctx context.Context, engine *Engine, requester HTTPRequester) (T, error)
Execute sends an HTTP request using the provided requester and handles the response using the provided responser.
Types ΒΆ
type Date ΒΆ
Date is a type alias for time.Time, used to represent date values in the API.
func (Date) MarshalJSON ΒΆ
MarshalJSON encodes the Date as a string in the format "2006-01-02".
func (Date) MarshalText ΒΆ
MarshalText encodes the Date as a string in the format "2006-01-02".
func (Date) String ΒΆ
String returns the string representation of the Date in the format "2006-01-02".
func (*Date) UnmarshalJSON ΒΆ
UnmarshalJSON decodes a JSON string into a Date type.
func (*Date) UnmarshalText ΒΆ
UnmarshalText decodes a text string into a Date type. This is required when using Date type as a map key.
type Engine ΒΆ
type Engine struct {
// contains filtered or unexported fields
}
Engine is the main structure that handles communication with the Teamwork API.
func NewEngine ΒΆ
func NewEngine(session Session, opts ...EngineOption) *Engine
NewEngine creates a new Engine instance with the provided HTTP client and session.
type EngineOption ΒΆ
type EngineOption func(*Engine)
EngineOption is a function that modifies the Engine configuration.
func WithHTTPClient ΒΆ
func WithHTTPClient(client *http.Client) EngineOption
WithHTTPClient sets the HTTP client for the Engine. By default, it uses http.DefaultClient.
func WithLogger ΒΆ
func WithLogger(logger *slog.Logger) EngineOption
WithLogger sets the logger for the Engine. By default, it uses slog.Default().
func WithRequestMiddleware ΒΆ added in v0.0.3
func WithRequestMiddleware(middleware func(HTTPRequester) HTTPRequester) EngineOption
WithRequestMiddleware adds a request middleware to the Engine. Middlewares are applied in the order they are added.
func WithResponseMiddleware ΒΆ added in v0.0.3
func WithResponseMiddleware(middleware func(HTTPResponser) HTTPResponser) EngineOption
WithResponseMiddleware adds a response middleware to the Engine. Middlewares are applied in the order they are added.
type HTTPError ΒΆ added in v0.0.3
HTTPError represents an error response from the API.
func NewHTTPError ΒΆ added in v0.0.3
NewHTTPError creates a new HTTPError from an http.Response.
type HTTPRequester ΒΆ
type HTTPRequester interface {
HTTPRequest(ctx context.Context, server string) (*http.Request, error)
}
HTTPRequester knows how to create an HTTP request for a specific entity.
type HTTPResponser ΒΆ
HTTPResponser knows how to handle an HTTP response for a specific entity.
type OptionalDateTime ΒΆ
OptionalDateTime is a type alias for time.Time, used to represent date and time values in the API. The difference is that it will accept empty strings as valid values.
func (OptionalDateTime) MarshalJSON ΒΆ
func (d OptionalDateTime) MarshalJSON() ([]byte, error)
MarshalJSON encodes the OptionalDateTime as a string in the format "2006-01-02T15:04:05Z07:00".
func (*OptionalDateTime) UnmarshalJSON ΒΆ
func (d *OptionalDateTime) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes a JSON string into an OptionalDateTime type.
type Relationship ΒΆ added in v0.0.3
type Relationship struct {
ID int64 `json:"id"`
Type string `json:"type"`
Meta map[string]any `json:"meta,omitempty"`
}
Relationship describes the relation between the main entity and a sideload type.
type Session ΒΆ
type Session interface {
Authenticate(ctx context.Context, req *http.Request) error
Server() string
}
Session is an interface that defines the methods required for a session to authenticate requests to the Teamwork Engine.
type Time ΒΆ
Time is a type alias for time.Time, used to represent time values in the API.
func (Time) MarshalJSON ΒΆ
MarshalJSON encodes the Time as a string in the format "15:04:05".
func (Time) MarshalText ΒΆ
MarshalText encodes the Time as a string in the format "15:04:05".
func (Time) String ΒΆ
String returns the string representation of the Time in the format "15:04:05".
func (*Time) UnmarshalJSON ΒΆ
UnmarshalJSON decodes a JSON string into a Date type.
func (*Time) UnmarshalText ΒΆ
UnmarshalText decodes a text string into a Time type. This is required when using Time type as a map key.