Major changes - Ready app for initial testings
This commit is contained in:
parent
7403097008
commit
29735c60bb
|
@ -1,6 +1,25 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
require $_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php';
|
||||||
|
|
||||||
$App = new \Slim\App();
|
$App = new \Slim\App([
|
||||||
|
"settings" =>
|
||||||
|
[
|
||||||
|
"displayErrorDetails" => true
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
$App->post("/api/paddle/{authkey}/hook");
|
|
||||||
|
$App->post
|
||||||
|
(
|
||||||
|
"/api/paddle/{authkey}/detectIntent",
|
||||||
|
Hookmanager::class, ':detectPayloadIntent'
|
||||||
|
);
|
||||||
|
|
||||||
|
$App->post
|
||||||
|
(
|
||||||
|
"/api/paddle/{authkey}/hook",
|
||||||
|
Hookmanager::class, ':EventSubscriptionCreatead'
|
||||||
|
|
||||||
|
);
|
|
@ -19,6 +19,20 @@ class Hookmanager
|
||||||
private $Mailer;
|
private $Mailer;
|
||||||
|
|
||||||
|
|
||||||
|
// Can be overloaded by child classes in order to add new features.W
|
||||||
|
protected $alertTypes =
|
||||||
|
[
|
||||||
|
"subscription_created",
|
||||||
|
"subscription_updated",
|
||||||
|
"subscription_cancelled",
|
||||||
|
"subscription_payment_succeeded",
|
||||||
|
"subscription_payment_failed",
|
||||||
|
"subscription_payment_refunded",
|
||||||
|
"payment_refunded",
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
|
@ -48,13 +62,50 @@ class Hookmanager
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function EventSubscriptionCreated(Request $request, Response $response)
|
private function keyValidate($keyFromURI)
|
||||||
{
|
{
|
||||||
// Create customer with data from Paddle
|
// FIXME: Theoretically, this method does not work.
|
||||||
// Send email with customer information
|
// TODO: Devise a new way to validate keys without user ID
|
||||||
|
if($this->APITools->keysMatch($keyFromURI))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function detectPayloadIntent(Request $request, Response $response, $args)
|
||||||
|
{
|
||||||
|
if ($this->keyValidate($keyFromURI))
|
||||||
|
{
|
||||||
|
|
||||||
|
$data = $this->getStructuredVariableList($Request);
|
||||||
|
|
||||||
|
foreach ($this->alertTypes as $types => $value)
|
||||||
|
{
|
||||||
|
if ($types == $data['alert_name'])
|
||||||
|
{
|
||||||
|
$sVal = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Redirect request to approriate route.
|
||||||
|
// Use translator helper method to translate developer name to readable route name for redirect
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new LogicException("Illegal API key");
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function EventSubscriptionCreated(Request $request, Response $response, $args)
|
||||||
|
{
|
||||||
|
|
||||||
|
return $response->write($this->getStructuredVariableList($Request))->withStatus(200);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue