ShipcloudController

Extends \AdminHttpViewController

Class ShipcloudController

This class contains some helper methods for handling view requests. Be careful always when outputting raw user data to HTML or when handling POST requests because insufficient protection will lead to XSS and CSRF vulnerabilities.

package

HttpViewControllers

Methods

__construct

__construct(\HttpContextReaderInterface $httpContextReader, \HttpResponseProcessorInterface $httpResponseProcessor, \ContentViewInterface $defaultContentView) 
inherited

Arguments

$httpContextReader

\HttpContextReaderInterface

$httpResponseProcessor

\HttpResponseProcessorInterface

$defaultContentView

\ContentViewInterface

Invokes an action method by the given action name.

_callActionMethod(string $actionName) : \HttpControllerResponseInterface
inherited
Throws
\LogicException

If no action method of the given name exists.

Arguments

$actionName

string

Name of action method to call, without 'action'-Suffix.

Response

\HttpControllerResponseInterface

Response message.

modifies an array containing a delivery address to suit carrier-specific field lengths

_enforceLengthLimits(string $carrier, array $toArray) : array

Currently returns $toArray unchanged. Future operation tbd.

Arguments

$carrier

string

$toArray

array

delivery address

Response

array

Returns the expected $_POST value by the given key name.

_getPostData(string $keyName) : string|null
inherited

This method is the object oriented layer for $_POST[$keyName].

Arguments

$keyName

string

Expected key of post parameter.

Response

string|null

Either the expected value or null, of not found.

Creates and returns a key value collection which represent the global $_POST array.

_getPostDataCollection() : \KeyValueCollection
inherited

Returns the expected $_GET value by the given key name.

_getQueryParameter(string $keyName) : mixed|null
inherited

This method is the object oriented layer for $_GET[$keyName].

Arguments

$keyName

string

Expected key of query parameter.

Response

mixed|null

Either the expected value or null, of not found.

Creates and returns a key value collection which represent the global $_GET array.

_getQueryParametersCollection() : \KeyValueCollection
inherited

Returns the expected $_SERVER value by the given key name.

_getServerData(string $keyName) : string|null
inherited

This method is the object oriented layer for $_SERVER[$keyName].

Arguments

$keyName

string

Expected key of server parameter.

Response

string|null

Either the expected value or null, of not found.

computes total weight of products for an order

_getShippingWeight( $orders_id) 

Arguments

$orders_id

Uses POST data from the form returned by actionCreateLabelForm() to populate a KeyValueCollection to be fed to the ShipmentFactory

_prepareSingleFormDataForShipmentRequest(array $postDataArray, boolean $anon_from = false, string $language_code = null) : \KeyValueCollection

Arguments

$postDataArray

array

$anon_from

boolean

used for shipment quote requests

$language_code

string

ISO2 language code used for advance notices (e.g. DPD Predict)

Response

\KeyValueCollection

Renders and returns a template file.

_render(string $templateFile, array $contentArray) : string
inherited

Arguments

$templateFile

string

Template file to render.

$contentArray

array

Content array which represent the variables of the template.

Response

string

Rendered template.

Check if the $_POST['pageToken'] or $_GET['pageToken'] variable is provided and if it's valid.

_validatePageToken(string $customExceptionMessage = null) 
inherited

Example: public function proceed(HttpContextInterface $httpContext) { parent::proceed($httpContext); // proceed http context from parent class if($_SERVER['REQUEST_METHOD'] === 'POST') { $this->_validatePageToken(); // CSRF Protection } }

Throws
\Exception

If the validation fails.

Arguments

$customExceptionMessage

string

(optional) You can specify a custom exception message.

Shows a form for entering data for a label

actionCreateLabelForm() : \HttpControllerResponse

Processes form submit for forms created by actionCreateLabelForm()

actionCreateLabelFormSubmit() : \JsonHttpControllerResponse

Shows form for bulk label retrieval

actionCreateMultiLabelForm() : \HttpControllerResponse

Processes form data from form returned by actionCreateMultiLabelForm().

actionCreateMultiLabelFormSubmit() : \JsonHttpControllerResponse

Default action method.

actionDefault() : \HttpControllerResponseInterface
inherited

Every controller child class requires at least the default action method, which is invoked when the ::_getQueryParameterData('do') value is not separated by a trailing slash.

Every action method have to return an instance which implements the http controller response interface.

Response

\HttpControllerResponseInterface

Deletes a shipment label

actionDeleteShipment() 

Retrieves shipment quotes (bulk retrieval)

actionGetMultiShipmentQuote() : \JsonHttpControllerResponse

Uses form data (cf. actionCreateLabelForm()) to retrieve a shipment quote

actionGetShipmentQuote() : \JsonHttpControllerResponse

Outputs a list of labels for an order identified by its orders_id via the corresponding GET parameter

actionLoadLabelList() : \HttpControllerResponse

Retrieves list of labels for a set of orders listed in POST[orders_ids].

actionLoadMultiLabelList() : \HttpControllerResponse

Requests pickups for a given list of shipments from each of the carriers involved

actionPickupShipments() : \JsonHttpControllerResponse

Returns message to be displayed to users if the Shipcloud interface is still unconfigured

actionUnconfiguredNote() : \HttpControllerResponse

retrieves an order's total

getDeclaredValue(integer $orders_id) : double
todo

get this data from OrderService

Arguments

$orders_id

integer

the order's id

Response

double

Looks up the language for a given order and returns the 2-letter ISO code

getOrderLanguageCode(integer $orders_id) : string

Arguments

$orders_id

integer

Response

string

ISO2 language code

Searches the GXModules directory and admin/html directory for a template file, wich can be useed inside the AdminLayoutHttpControllerResponse object for the template parameter.

getTemplateFile(string $templateFile) : \ExistingFile
inherited
Throws
\Exception

if the path or file is not found

Arguments

$templateFile

string

The relative path and filename to search for

Response

\ExistingFile

containing absolute file path to the given template file

getTransportConditions

getTransportConditions( $orderId) 

Arguments

$orderId

determines if Shipcloud is configured and ready to use

isConfigured() 

makeProductName

makeProductName( $product) 

Arguments

$product

Processes a http response object which is get by invoking an action method.

proceed(\HttpContextInterface $httpContext) 
inherited

The action method is determined by the http context reader instance and the current request context. Re-implement this method in child classes to enable XSS and CSRF protection on demand.

see \HttpContextReaderInterface::getActionName \HttpResponseProcessorInterface::proceed
Throws
\LogicException

When no action method is found by the http context reader.

Arguments

$httpContext

\HttpContextInterface

Http context object which hold the request variables.

shortens a string to a maximum length, appending “…” if shortening required

shortenString(string $subject, integer $maxLength) : string

Arguments

$subject

string

string to be shortened

$maxLength

integer

maximum length

Response

string

shortened string

Heuristically splits up a street address into its component street name and house number

splitStreet( $street_address) : array

Arguments

$street_address

Response

array

with keys 'street' and 'house_no'

Makes sure that the admin status is currently given in session

validateCurrentAdminStatus() 
inherited
Throws
\LogicException

Constants

MAX_DESCRIPTION_LENGTH

MAX_DESCRIPTION_LENGTH

Properties

Query Builder

db : \CI_DB_query_builder
var

Type(s)

\CI_DB_query_builder

wrapper for text phrases

shipcloudText : \ShipcloudText
var

Type(s)

\ShipcloudText

configuration storage

shipcloudConfigurationStorage : \ShipcloudConfigurationStorage
var

Type(s)

\ShipcloudConfigurationStorage

logger

shipcloudLogger : \ShipcloudLogger
var

Type(s)

\ShipcloudLogger

httpContextReader

httpContextReader : \HttpContextReaderInterface
inherited

httpResponseProcessor

httpResponseProcessor : \HttpResponseProcessorInterface
inherited

contentView

contentView : \ContentViewInterface
inherited
var

Type(s)

\ContentViewInterface

queryParametersArray

queryParametersArray : array
inherited
var

Type(s)

array

postDataArray

postDataArray : array
inherited
var

Type(s)

array

Contain the assets needed to be included in the view HTML.

assets : \AssetCollectionInterface
inherited
var

Contain the assets needed to be included in the view HTML.

Type(s)

\AssetCollectionInterface

Server data.

serverDataArray : array
inherited
var

Server data.

Type(s)

array