GambioAfterbuyAjaxController
extends AdminHttpViewController
in package
Class AdminHttpViewController
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.
Table of Contents
- PHRASE_MISSING_ORDER_ID = 'missing_order_id'
- PHRASE_SENT_INITIAL = 'sent_initial'
- PHRASE_SENT_SUCCESSFULLY = 'sent_successfully'
- PHRASE_SENT_UNSUCCESSFULLY = 'sent_unsuccessfully'
- PHRASE_SENT_UPDATE = 'sent_update'
- PHRASE_UNAUTHENTICATED = 'unauthenticated'
- PHRASE_UNKNOWN_ORDER_STATUS = 'unknown_order_status'
- $assets : AssetCollectionInterface
- $contentView : ContentViewInterface
- $httpContextReader : HttpContextReaderInterface
- $httpResponseProcessor : HttpResponseProcessorInterface
- $postDataArray : array<string|int, mixed>
- $queryParametersArray : array<string|int, mixed>
- $serverDataArray : array<string|int, mixed>
- $abInfoService : AfterbuyInformationService|null
- $abXmlService : AfterbuyOrderXmlApiService|null
- $logger : AfterbuyLogger|null
- $paidService : AfterbuyCheckPaidStatusService|null
- $textManager : LanguageTextManager|null
- $trackingLinkService : AfterbuyOrderTrackingLinkService|null
- __construct() : mixed
- actionDefault() : HttpControllerResponseInterface
- Default action method.
- actionSendOrder() : JsonHttpControllerResponse
- proceed() : mixed
- Processes a http response object which is get by invoking an action method.
- validateCurrentAdminStatus() : mixed
- Makes sure that the admin status is currently given in session
- _callActionMethod() : HttpControllerResponseInterface
- Invokes an action method by the given action name.
- _getPostData() : string|null
- Returns the expected $_POST value by the given key name.
- _getPostDataCollection() : KeyValueCollection
- Creates and returns a key value collection which represent the global $_POST array.
- _getQueryParameter() : mixed|null
- Returns the expected $_GET value by the given key name.
- _getQueryParametersCollection() : KeyValueCollection
- Creates and returns a key value collection which represent the global $_GET array.
- _getServerData() : string|null
- Returns the expected $_SERVER value by the given key name.
- _isAdmin() : mixed
- Check if the customer is the admin.
- _render() : string
- Renders and returns a template file.
- _validatePageToken() : mixed
- Check if the $_POST['pageToken'] or $_GET['pageToken'] variable is provided and if it's valid.
- createErrorResponse() : JsonHttpControllerResponse
- Utility method to create an error response.
- createSuccessResponse() : JsonHttpControllerResponse
- Utility method to create a success response.
- getOrderId() : int
- Tries to return the order id from the http query.
- getTemplateFile() : ExistingFile
- Searches the GXModules directory and admin/html directory for a template file, wich can be useed inside the AdminLayoutHttpControllerResponse object for the template parameter.
- isTransmitted() : bool
- Checks if order is already transmitted to afterbuy.
- isValidJson() : bool
- isValidRequestMethod() : bool
- prepareJsonInput() : array<string|int, mixed>
- sendToAfterbuy() : string
- Sends the order to afterbuy. Returns a translated success message.
- initServices() : void
- Initializes the controller services.
- syncTrackingLinks() : void
- Tries to synchronize the Afterbuy tracking code with the given order.
Constants
PHRASE_MISSING_ORDER_ID
private
mixed
PHRASE_MISSING_ORDER_ID
= 'missing_order_id'
PHRASE_SENT_INITIAL
private
mixed
PHRASE_SENT_INITIAL
= 'sent_initial'
PHRASE_SENT_SUCCESSFULLY
private
mixed
PHRASE_SENT_SUCCESSFULLY
= 'sent_successfully'
PHRASE_SENT_UNSUCCESSFULLY
private
mixed
PHRASE_SENT_UNSUCCESSFULLY
= 'sent_unsuccessfully'
PHRASE_SENT_UPDATE
private
mixed
PHRASE_SENT_UPDATE
= 'sent_update'
PHRASE_UNAUTHENTICATED
private
mixed
PHRASE_UNAUTHENTICATED
= 'unauthenticated'
PHRASE_UNKNOWN_ORDER_STATUS
private
mixed
PHRASE_UNKNOWN_ORDER_STATUS
= 'unknown_order_status'
Properties
$assets
protected
AssetCollectionInterface
$assets
$contentView
protected
ContentViewInterface
$contentView
$httpContextReader
protected
HttpContextReaderInterface
$httpContextReader
$httpResponseProcessor
protected
HttpResponseProcessorInterface
$httpResponseProcessor
$postDataArray
protected
array<string|int, mixed>
$postDataArray
$queryParametersArray
protected
array<string|int, mixed>
$queryParametersArray
$serverDataArray
protected
array<string|int, mixed>
$serverDataArray
$abInfoService
private
AfterbuyInformationService|null
$abInfoService
$abXmlService
private
AfterbuyOrderXmlApiService|null
$abXmlService
$logger
private
AfterbuyLogger|null
$logger
$paidService
private
AfterbuyCheckPaidStatusService|null
$paidService
$textManager
private
LanguageTextManager|null
$textManager
$trackingLinkService
private
AfterbuyOrderTrackingLinkService|null
$trackingLinkService
Methods
__construct()
public
__construct(HttpContextReaderInterface $httpContextReader, HttpResponseProcessorInterface $httpResponseProcessor, ContentViewInterface $defaultContentView) : mixed
Parameters
- $httpContextReader : HttpContextReaderInterface
- $httpResponseProcessor : HttpResponseProcessorInterface
- $defaultContentView : ContentViewInterface
Return values
mixed —actionDefault()
Default action method.
public
actionDefault() : HttpControllerResponseInterface
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.
Return values
HttpControllerResponseInterface —actionSendOrder()
public
actionSendOrder() : JsonHttpControllerResponse
Return values
JsonHttpControllerResponse —proceed()
Processes a http response object which is get by invoking an action method.
public
proceed(HttpContextInterface $httpContext) : mixed
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.
Parameters
- $httpContext : HttpContextInterface
-
Http context object which hold the request variables.
Tags
Return values
mixed —validateCurrentAdminStatus()
Makes sure that the admin status is currently given in session
public
validateCurrentAdminStatus() : mixed
Tags
Return values
mixed —_callActionMethod()
Invokes an action method by the given action name.
protected
_callActionMethod(string $actionName) : HttpControllerResponseInterface
Parameters
- $actionName : string
-
Name of action method to call, without 'action'-Suffix.
Tags
Return values
HttpControllerResponseInterface —Response message.
_getPostData()
Returns the expected $_POST value by the given key name.
protected
_getPostData(string $keyName) : string|null
This method is the object oriented layer for $_POST[$keyName].
Parameters
- $keyName : string
-
Expected key of post parameter.
Return values
string|null —Either the expected value or null, of not found.
_getPostDataCollection()
Creates and returns a key value collection which represent the global $_POST array.
protected
_getPostDataCollection() : KeyValueCollection
Return values
KeyValueCollection —_getQueryParameter()
Returns the expected $_GET value by the given key name.
protected
_getQueryParameter(string $keyName) : mixed|null
This method is the object oriented layer for $_GET[$keyName].
Parameters
- $keyName : string
-
Expected key of query parameter.
Return values
mixed|null —Either the expected value or null, of not found.
_getQueryParametersCollection()
Creates and returns a key value collection which represent the global $_GET array.
protected
_getQueryParametersCollection() : KeyValueCollection
Return values
KeyValueCollection —_getServerData()
Returns the expected $_SERVER value by the given key name.
protected
_getServerData(string $keyName) : string|null
This method is the object oriented layer for $_SERVER[$keyName].
Parameters
- $keyName : string
-
Expected key of server parameter.
Return values
string|null —Either the expected value or null, of not found.
_isAdmin()
Check if the customer is the admin.
protected
_isAdmin() : mixed
Tags
Return values
mixed —_render()
Renders and returns a template file.
protected
_render(string $templateFile, array<string|int, mixed> $contentArray) : string
Parameters
- $templateFile : string
-
Template file to render.
- $contentArray : array<string|int, mixed>
-
Content array which represent the variables of the template.
Return values
string —Rendered template.
_validatePageToken()
Check if the $_POST['pageToken'] or $_GET['pageToken'] variable is provided and if it's valid.
protected
_validatePageToken([string $customExceptionMessage = null ]) : mixed
Example: public function proceed(HttpContextInterface $httpContext) { parent::proceed($httpContext); // proceed http context from parent class if($_SERVER['REQUEST_METHOD'] === 'POST') { $this->_validatePageToken(); // CSRF Protection } }
Parameters
- $customExceptionMessage : string = null
-
(optional) You can specify a custom exception message.
Tags
Return values
mixed —createErrorResponse()
Utility method to create an error response.
protected
createErrorResponse(string $errorMessage) : JsonHttpControllerResponse
Parameters
- $errorMessage : string
Return values
JsonHttpControllerResponse —createSuccessResponse()
Utility method to create a success response.
protected
createSuccessResponse(string $message) : JsonHttpControllerResponse
Parameters
- $message : string
Return values
JsonHttpControllerResponse —getOrderId()
Tries to return the order id from the http query.
protected
getOrderId() : int
Tags
Return values
int —getTemplateFile()
Searches the GXModules directory and admin/html directory for a template file, wich can be useed inside the AdminLayoutHttpControllerResponse object for the template parameter.
protected
getTemplateFile(string $templateFile) : ExistingFile
Parameters
- $templateFile : string
-
The relative path and filename to search for
Tags
Return values
ExistingFile —containing absolute file path to the given template file
isTransmitted()
Checks if order is already transmitted to afterbuy.
protected
isTransmitted(int $orderId) : bool
Parameters
- $orderId : int
Tags
Return values
bool —isValidJson()
protected
isValidJson(string $string) : bool
Parameters
- $string : string
Return values
bool —isValidRequestMethod()
protected
isValidRequestMethod(string $method) : bool
Parameters
- $method : string
Return values
bool —prepareJsonInput()
protected
prepareJsonInput(string $json) : array<string|int, mixed>
Parameters
- $json : string
Return values
array<string|int, mixed> —sendToAfterbuy()
Sends the order to afterbuy. Returns a translated success message.
protected
sendToAfterbuy(int $orderIdInt, AfterbuyOrderStatus $orderPaidStatus) : string
Only orders with status 'paid' or 'unpaid' are sent to Afterbuy. Unknown order status results in an error.
If the order is paid and was already sent to afterbuy, only the XML-API is used to update the order information, otherwise the whole order is sent to Afterbuy initially.
If the order is unpaid but was not send to Afterbuy, the order will be sent initially.
Parameters
- $orderIdInt : int
- $orderPaidStatus : AfterbuyOrderStatus
Tags
Return values
string —initServices()
Initializes the controller services.
private
initServices() : void
Tags
Return values
void —syncTrackingLinks()
Tries to synchronize the Afterbuy tracking code with the given order.
private
syncTrackingLinks(int $orderId) : void
Parameters
- $orderId : int