Constructor
new NSRequest()
Members
(protected) body :Object.<string, string>
Data registered to be sent as this request's body. If it is empty upon
request execution, the request will be sent as a GET request, without
a request body. Subclasses offer methods for altering this data.
Type:
- Object.<string, string>
(protected, nullable) factoryConfigurer :factory.FactoryConstructor.<any>
Function to instantiate a factory instance with which to ultimately parse the XML returned by the API.
Since the various factories all need the attributes on their root tag passed as parameter upon creation, they can only be actually instantiated while parsing is in progress, hence saving the instantiating function and not the factory itself.
Type:
- factory.FactoryConstructor.<any>
(package, nullable) useragent :string
The text that sent as the User-Agent header in requests to the NS API.
Type:
- string
(package) useRateLimit :boolean
Whether to use the in-built rate-limiter for requests to the NS API.
Type:
- boolean
- Default Value:
- true
Methods
getData() → {string}
Formats the body into a query string, as required
by the NationStates API for the request body.
Returns:
A string of the format key1=value1&key2=value2&...
- Type
- string
(async, protected) getStream() → {Promise.<Stream>}
Gets the data stream containing the XML to parse within the
send function.
Note: This "middleman" function between the send and raw
functions is needed so the DumpRequest can cleanly override the
getting of the XML stream. Since it can either use a ReadStream or an
IncomingMessage, depending on the DumpMode, but the former is
missing properties of the latter, the type-checker will complain if
raw is overridden with the possibility of returning a ReadStream.
Returns:
Stream with the XML data
- Type
- Promise.<Stream>
(async) raw() → {Promise.<http.IncomingMessage>}
Checks whether the useragent is set, then
calls the executeHTTP function and returns
its response. If useRateLimit is true,
the request is ensured to respect the API's rate-limit.
Returns:
The raw response to the request
- Type
- Promise.<http.IncomingMessage>
removeHeader(name) → {this}
Removes any prepared header with the given name.
Parameters:
| Name | Type | Description |
|---|---|---|
name |
string | Header name |
Returns:
The request, for chaining
- Type
- this
(async) send() → {Promise.<?any>}
Calls the raw function and passes the returned
response stream through the node-xml-stream-parser. The emitted events
are in turn handled by a factory created using the defined
factoryConfigurer, or, if none is
set, the factory determined by the matchFactory function.
Returns:
The chosen factory's finished product
- Type
- Promise.<?any>
setHeader(name, value) → {this}
Registers the given value to be sent under the given header name when this request is executed.
Parameters:
| Name | Type | Description |
|---|---|---|
name |
string | Header name |
value |
string | Header value |
Returns:
The request, for chaining
- Type
- this
(protected) setTargetURL(url) → {this}
Configures this request to be sent to the given URL.
Parameters:
| Name | Type | Description |
|---|---|---|
url |
string | URL to target |
Returns:
The request, for chaining
- Type
- this
(protected) useFactory(factory) → {this}
Configures this request use the given function for creating the root factory during XML parsing.
Parameters:
| Name | Type | Description |
|---|---|---|
factory |
factory.FactoryConstructor.<any> | Creation function to use |
Returns:
The request, for chaining
- Type
- this