loginapi

package
v1.14.0 Latest Latest
Warning

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

Go to latest
Published: Jul 12, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package loginapi implements the public API of the login.example microservice, including clients and data structures.

The Login microservice demonstrates usage of authentication and authorization.

Index

Constants

View Source
const Hostname = "login.example"

Hostname is the default hostname of the microservice: login.example.

Variables

View Source
var (
	URLOfLogin       = httpx.JoinHostAndPath(Hostname, `:443/login`)
	URLOfLogout      = httpx.JoinHostAndPath(Hostname, `:443/logout`)
	URLOfWelcome     = httpx.JoinHostAndPath(Hostname, `:443/welcome`)
	URLOfAdminOnly   = httpx.JoinHostAndPath(Hostname, `:443/admin-only`)
	URLOfManagerOnly = httpx.JoinHostAndPath(Hostname, `:443/manager-only`)
)

Fully-qualified URLs of the microservice's endpoints.

Functions

This section is empty.

Types

type Client

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

Client is an interface to calling the endpoints of the login.example microservice. This simple version is for unicast calls.

func NewClient

func NewClient(caller service.Publisher) *Client

NewClient creates a new unicast client to the login.example microservice.

func (*Client) AdminOnly

func (_c *Client) AdminOnly(r *http.Request) (res *http.Response, err error)

AdminOnly is only accessible by admins.

If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*Client) AdminOnly_Get

func (_c *Client) AdminOnly_Get(ctx context.Context, url string) (res *http.Response, err error)

AdminOnly_Get performs a GET request to the AdminOnly endpoint.

AdminOnly is only accessible by admins.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*Client) AdminOnly_Post

func (_c *Client) AdminOnly_Post(ctx context.Context, url string, contentType string, body any) (res *http.Response, err error)

AdminOnly_Post performs a POST request to the AdminOnly endpoint.

AdminOnly is only accessible by admins.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.

func (*Client) ForHost

func (_c *Client) ForHost(host string) *Client

ForHost replaces the default hostname of this client.

func (*Client) Login

func (_c *Client) Login(r *http.Request) (res *http.Response, err error)

Login renders a simple login screen that authenticates a user. Known users are hardcoded as "admin", "manager" and "user". The password is "password".

If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*Client) Login_Get

func (_c *Client) Login_Get(ctx context.Context, url string) (res *http.Response, err error)

Login_Get performs a GET request to the Login endpoint.

Login renders a simple login screen that authenticates a user. Known users are hardcoded as "admin", "manager" and "user". The password is "password".

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*Client) Login_Post

func (_c *Client) Login_Post(ctx context.Context, url string, contentType string, body any) (res *http.Response, err error)

Login_Post performs a POST request to the Login endpoint.

Login renders a simple login screen that authenticates a user. Known users are hardcoded as "admin", "manager" and "user". The password is "password".

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.

func (*Client) Logout

func (_c *Client) Logout(r *http.Request) (res *http.Response, err error)

Logout renders a page that logs out the user.

If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*Client) Logout_Get

func (_c *Client) Logout_Get(ctx context.Context, url string) (res *http.Response, err error)

Logout_Get performs a GET request to the Logout endpoint.

Logout renders a page that logs out the user.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*Client) Logout_Post

func (_c *Client) Logout_Post(ctx context.Context, url string, contentType string, body any) (res *http.Response, err error)

Logout_Post performs a POST request to the Logout endpoint.

Logout renders a page that logs out the user.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.

func (*Client) ManagerOnly

func (_c *Client) ManagerOnly(r *http.Request) (res *http.Response, err error)

ManagerOnly is only accessible by managers.

If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*Client) ManagerOnly_Get

func (_c *Client) ManagerOnly_Get(ctx context.Context, url string) (res *http.Response, err error)

ManagerOnly_Get performs a GET request to the ManagerOnly endpoint.

ManagerOnly is only accessible by managers.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*Client) ManagerOnly_Post

func (_c *Client) ManagerOnly_Post(ctx context.Context, url string, contentType string, body any) (res *http.Response, err error)

ManagerOnly_Post performs a POST request to the ManagerOnly endpoint.

ManagerOnly is only accessible by managers.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.

func (*Client) Welcome

func (_c *Client) Welcome(r *http.Request) (res *http.Response, err error)

Welcome renders a page that is shown to the user after a successful login. Rendering is adjusted based on the user's roles.

If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*Client) Welcome_Get

func (_c *Client) Welcome_Get(ctx context.Context, url string) (res *http.Response, err error)

Welcome_Get performs a GET request to the Welcome endpoint.

Welcome renders a page that is shown to the user after a successful login. Rendering is adjusted based on the user's roles.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*Client) Welcome_Post

func (_c *Client) Welcome_Post(ctx context.Context, url string, contentType string, body any) (res *http.Response, err error)

Welcome_Post performs a POST request to the Welcome endpoint.

Welcome renders a page that is shown to the user after a successful login. Rendering is adjusted based on the user's roles.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.

func (*Client) WithOptions

func (_c *Client) WithOptions(opts ...pub.Option) *Client

WithOptions applies options to requests made by this client.

type MulticastClient

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

MulticastClient is an interface to calling the endpoints of the login.example microservice. This advanced version is for multicast calls.

func NewMulticastClient

func NewMulticastClient(caller service.Publisher) *MulticastClient

NewMulticastClient creates a new multicast client to the login.example microservice.

func (*MulticastClient) AdminOnly

func (_c *MulticastClient) AdminOnly(ctx context.Context, r *http.Request) <-chan *pub.Response

AdminOnly is only accessible by admins.

If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*MulticastClient) AdminOnly_Get

func (_c *MulticastClient) AdminOnly_Get(ctx context.Context, url string) <-chan *pub.Response

AdminOnly_Get performs a GET request to the AdminOnly endpoint.

AdminOnly is only accessible by admins.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*MulticastClient) AdminOnly_Post

func (_c *MulticastClient) AdminOnly_Post(ctx context.Context, url string, contentType string, body any) <-chan *pub.Response

AdminOnly_Post performs a POST request to the AdminOnly endpoint.

AdminOnly is only accessible by admins.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.

func (*MulticastClient) ForHost

func (_c *MulticastClient) ForHost(host string) *MulticastClient

ForHost replaces the default hostname of this client.

func (*MulticastClient) Login

func (_c *MulticastClient) Login(ctx context.Context, r *http.Request) <-chan *pub.Response

Login renders a simple login screen that authenticates a user. Known users are hardcoded as "admin", "manager" and "user". The password is "password".

If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*MulticastClient) Login_Get

func (_c *MulticastClient) Login_Get(ctx context.Context, url string) <-chan *pub.Response

Login_Get performs a GET request to the Login endpoint.

Login renders a simple login screen that authenticates a user. Known users are hardcoded as "admin", "manager" and "user". The password is "password".

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*MulticastClient) Login_Post

func (_c *MulticastClient) Login_Post(ctx context.Context, url string, contentType string, body any) <-chan *pub.Response

Login_Post performs a POST request to the Login endpoint.

Login renders a simple login screen that authenticates a user. Known users are hardcoded as "admin", "manager" and "user". The password is "password".

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.

func (*MulticastClient) Logout

func (_c *MulticastClient) Logout(ctx context.Context, r *http.Request) <-chan *pub.Response

Logout renders a page that logs out the user.

If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*MulticastClient) Logout_Get

func (_c *MulticastClient) Logout_Get(ctx context.Context, url string) <-chan *pub.Response

Logout_Get performs a GET request to the Logout endpoint.

Logout renders a page that logs out the user.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*MulticastClient) Logout_Post

func (_c *MulticastClient) Logout_Post(ctx context.Context, url string, contentType string, body any) <-chan *pub.Response

Logout_Post performs a POST request to the Logout endpoint.

Logout renders a page that logs out the user.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.

func (*MulticastClient) ManagerOnly

func (_c *MulticastClient) ManagerOnly(ctx context.Context, r *http.Request) <-chan *pub.Response

ManagerOnly is only accessible by managers.

If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*MulticastClient) ManagerOnly_Get

func (_c *MulticastClient) ManagerOnly_Get(ctx context.Context, url string) <-chan *pub.Response

ManagerOnly_Get performs a GET request to the ManagerOnly endpoint.

ManagerOnly is only accessible by managers.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*MulticastClient) ManagerOnly_Post

func (_c *MulticastClient) ManagerOnly_Post(ctx context.Context, url string, contentType string, body any) <-chan *pub.Response

ManagerOnly_Post performs a POST request to the ManagerOnly endpoint.

ManagerOnly is only accessible by managers.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.

func (*MulticastClient) Welcome

func (_c *MulticastClient) Welcome(ctx context.Context, r *http.Request) <-chan *pub.Response

Welcome renders a page that is shown to the user after a successful login. Rendering is adjusted based on the user's roles.

If a request is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*MulticastClient) Welcome_Get

func (_c *MulticastClient) Welcome_Get(ctx context.Context, url string) <-chan *pub.Response

Welcome_Get performs a GET request to the Welcome endpoint.

Welcome renders a page that is shown to the user after a successful login. Rendering is adjusted based on the user's roles.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint.

func (*MulticastClient) Welcome_Post

func (_c *MulticastClient) Welcome_Post(ctx context.Context, url string, contentType string, body any) <-chan *pub.Response

Welcome_Post performs a POST request to the Welcome endpoint.

Welcome renders a page that is shown to the user after a successful login. Rendering is adjusted based on the user's roles.

If a URL is not provided, it defaults to the URL of the endpoint. Otherwise, it is resolved relative to the URL of the endpoint. If the body if of type io.Reader, []byte or string, it is serialized in binary form. If it is of type url.Values, it is serialized as form data. All other types are serialized as JSON. If a content type is not explicitly provided, an attempt will be made to derive it from the body.

func (*MulticastClient) WithOptions

func (_c *MulticastClient) WithOptions(opts ...pub.Option) *MulticastClient

WithOptions applies options to requests made by this client.

Jump to

Keyboard shortcuts

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