Class: UrlHelper

net~ UrlHelper

A utility class for helping to compose SolarNet URLs for the REST API.

This class is essentially abstract and meant to have mixin helper objects extend it.


new UrlHelper( [environment])

Constructor.

Parameters:
Name Type Argument Description
environment module:net~Environment | object <optional>

the optional initial environment to use; if a non-Environment object is passed then the properties of that object will be used to construct a new Environment instance

Members


environment :module:net~Environment

The environment associated with this helper.

Type:

<readonly> parameters :module:util~Configuration

Get a parameters object that can be used to hold URL variables.

Type:

Methods


<static> resolveTemplateUrl(template, params)

Replace occurances of URL template variables with values from a parameter object.

URL template variables are specified as {<em>name</em>}. The variable will be replaced by the value associated with property name in the provided parameter object. The value will be URI encoded.

Parameters:
Name Type Description
template string

a URL template

params object

an object whose properties should serve as template variables

Returns:

the URL

Type
string

<abstract> baseUrl()

Get the base URL to the REST API.

This implementation is a stub, meant for subclasses to override. This implementation simply returns module:net~UrlHelper#hostUrl.

Returns:

the base URL to the REST API

Type
string

env(key [, val])

Get or set an environment parameter.

This is a shortcut for calling module:net~Configuration#value on the environment object.

Parameters:
Name Type Argument Description
key string

the environment parameter name to get

val object <optional>

the optional value to set

Returns:

when called as a getter, the environment parameter value; when called as a setter, the environment parameters object

Type
object

hostUrl()

Get a URL for just the SolarNet host, without any path.

This method constructs an absolute URL based on the following properties configured on this instance's module:net~Environment:

  1. If environment.useTls() returns true then use HTTPS as the protocol, otherwise HTTP.
  2. Use host for the host name or IP address, unless proxyHost is available.
  3. Use port for the port, unless proxyPort is available. If neither are available, use 443 for HTTPS or 80 for HTTP.
Returns:

the URL to the SolarNet host

Type
string

hostWebSocketUrl()

Get a URL for just the SolarNet host using the WebSocket protocol, without any path.

This method constructs an absolute URL based on the following properties configured on this instance's module:net~Environment:

  1. If environment.useTls() returns true then use WSS as the protocol, otherwise WS.
  2. Use host for the host name or IP address, unless proxyHost is available.
  3. Use port for the port, unless proxyPort is available. If neither are available, use 443 for WSS or 80 for WS.
Returns:

the URL to the SolarNet host WebSocket

Type
string

parameter(key [, val])

Get or set a parameter.

This is a shortcut for calling module:net~Configuration#value on the parameters object.

Parameters:
Name Type Argument Description
key string

the parameter name to get

val Object <optional>

the optional value to set

Returns:

when called as a getter, the parameter value; when called as a setter, the parameters object

Type
Object

resolveTemplatePath(template)

Replace occurances of URL template variables with values from the parameters property and append to the host URL.

This method provides a way to resolve an absolute URL based on the configured environment and parameters on this object.

Parameters:
Name Type Description
template string

a URL path template

See:
Returns:

an absolute URL

Type
string

resolveTemplateUrl(template)

Replace occurances of URL template variables with values from the parameters property.

URL template variables are specified as {<em>name</em>}. The variable will be replaced by the value associated with property name in the parameters object. The value will be URI encoded.

Parameters:
Name Type Description
template string

a URL template

Returns:

the URL with template variables resolved

Type
string