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.

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.

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