WebService::Hexonet::Connector::Response - Library to provide accessibility to API response data.
This module is internally used by the WebService::Hexonet::Connector::APIClient module. To be used in the way:
# specify the used API command (used for the request that responsed with $plain)
$command = {
COMMAND => 'StatusAccount'
};
# Optionally specify replacements for place holders in static response templates e.g. {CONNECTION_URL}
# see ResponseTemplateManager. This makes of course sense and is handled internally by APIClient automatically.
# When using Repsonse class in unit tests, you could leave this probably out.
$ph = {
CONNECTION_URL => 'https://api.ispapi.net/api/call.cgi'
};
# specify the API plain-text response (this is just an example that won't fit to the command above)
$plain = "[RESPONSE]\r\nCODE=200\r\nDESCRIPTION=Command completed successfully\r\nEOF\r\n";
# create a new instance by
$r = WebService::Hexonet::Connector::Response->new($plain, $command, $ph);
HEXONET Backend API always responds in plain-text format that needs to get parsed into a useful data structure. This module manages all this: parsing data into hash format, into columns and records. It provides different methods to access the data to fit your needs.
new( $plain, $command, $ph )
Returns a new WebService::Hexonet::Connector::Response object. Specify the plain-text API response by $plain. Specify the used command by $command. Specify the hash covering all place holder variable’s replacement values by $ph. Optional.
addColumn( $key, @data )
Add a new column. Specify the column name by $key. Specify the column data by @data. Returns the current WebService::Hexonet::Connector::Response instance in use for method chaining.
addRecord( $hash )
Add a new record. Specify the row data in hash notation by $hash. Where the hash key represents the column name. Where the hash value represents the row value for that column. Returns the current WebService::Hexonet::Connector::Response instance in use for method chaining.
getColumn( $key )
Get a column for the specified column name $key. Returns an instance of WebService::Hexonet::Connector::Column.
getColumnIndex( $key, $index )
{
Get Data of the specified column $key for the given column index $index. Returns a scalar.
getColumnKeys
Get a list of available column names. NOTE: columns may differ in their data size. Returns an array.
getCommand
Get the command used within the request that resulted in this api response. This is in general the command you provided in the constructor. Returns a hash.
getCommandPlain
Get the command in plain text that you used within the API request of this response. This is in general the command you provided in the constructor. Returns a string.
getCurrentPageNumber
Returns the current page number we are in with this API response as int. Returns -1 if not found.
getCurrentRecord
Returns the current record of the iteration. It internally uses recordIndex as iterator index. Returns an instance of WebService::Hexonet::Connector::Record. Returns undef if not found.
getFirstRecordIndex
Returns the first record index of this api response as int. Returns undef if not found.
getLastRecordIndex
Returns the last record index of this api response as int. Returns undef if not found.
getListHash
Returns this api response in a List-Hash format. You will find the row data under hash key “LIST”. You will find meta data under hash key “meta”. Under “meta” data you will again find a hash, where hash key “columns” provides you a list of available column names and “pg” provides you useful paginator data. This method is thought to be used if you need something that helps you realizing tables with or without a pager. Returns a Hash.
getNextRecord
Returns the next record of the current iteration. Returns an instance of WebService::Hexonet::Connector::Record. Returns undef if not found.
getNextPageNumber
Returns the number of the next api response page for the current request as int. Returns -1 if not found.
getNumberOfPages
Returns the total number of response pages in our API for the current request as int.
getPagination
Returns paginator data of the current response / request. Returns a hash.
getPreviousPageNumber
Returns the number of the previous api response page for the current request as int. Returns -1 if not found.
getPreviousRecord
Returns the previous record of the current iteration. Returns undef if not found otherwise an instance of WebService::Hexonet::Connector::Record.
getRecord( $index )
Returns the record of the specified record index $index. Returns undef if not found otherwise an instance of WebService::Hexonet::Connector::Record.
getRecords
Returns a list of available records. Returns an array of instances of WebService::Hexonet::Connector::Record.
getRecordsCount
Returns the amount of returned records for the current request as int.
getRecordsTotalCount
Returns the total amount of available records for the current request as int.
getRecordsLimitation
Returns the limitation of the current request as int. LIMIT = … NOTE: Our system comes with a default limitation if you do not specify a limitation in list commands to avoid data load in our systems. This limitation is then returned in column “LIMIT” at index 0.
hasNextPage
Checks if a next response page exists for the current query. Returns boolean 0 or 1.
hasPreviousPage
Checks if a previous response page exists for the current query. Returns boolean 0 or 1.
rewindRecordList
Resets the current iteration to index 0.
_hasColumn( $key )
Private method. Checks if a column specified by $key exists. Returns boolean 0 or 1.
_hasCurrentRecord
Private method. Checks if the current record exists in the iteration. Returns boolean 0 or 1.
_hasNextRecord
Private method. Checks if the next record exists in the iteration. Returns boolean 0 or 1.
_hasPreviousRecord
Private method. Checks if the previous record exists in the iteration. Returns boolean 0 or 1.
This program is licensed under the MIT License.