Skip to content

Commit

Permalink
Merge f4c2f4d into 55fa26b
Browse files Browse the repository at this point in the history
  • Loading branch information
dawlib committed May 25, 2021
2 parents 55fa26b + f4c2f4d commit acb9fe3
Show file tree
Hide file tree
Showing 10 changed files with 147 additions and 0 deletions.
3 changes: 3 additions & 0 deletions lib/Castle.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ function lcfirst( $str ) {
require(dirname(__FILE__) . '/RestModel/Model.php');
require(dirname(__FILE__) . '/Castle/Models/Context.php');
require(dirname(__FILE__) . '/Castle/Models/Authenticate.php');
require(dirname(__FILE__) . '/Castle/Models/Filter.php');
require(dirname(__FILE__) . '/Castle/Models/Log.php');
require(dirname(__FILE__) . '/Castle/Models/Risk.php');
require(dirname(__FILE__) . '/Castle/Models/Review.php');
require(dirname(__FILE__) . '/Castle/CurlTransport.php');
require(dirname(__FILE__) . '/Castle/RequestContext.php');
Expand Down
37 changes: 37 additions & 0 deletions lib/Castle/Castle.php
Original file line number Diff line number Diff line change
Expand Up @@ -161,4 +161,41 @@ public static function track(Array $attributes)
$request = new Castle_Request();
$request->send('post', '/track', $attributes);
}


/**
* Filter an action
* @param String $attributes 'name', and 'user' object with 'id' are required
* @return Castle_Log
*/
public static function filter(Array $attributes)
{
$filter = new Castle_Filter($attributes);
$filter->save();
return $filter;
}

/**
* Log events
* @param String $attributes 'name', 'status' and 'user' object with 'id' are required
* @return Castle_Log
*/
public static function log(Array $attributes)
{
$log = new Castle_Log($attributes);
$log->save();
return $log;
}

/**
* Risk
* @param String $attributes 'name', 'status' and 'user' object with 'id' are required
* @return Castle_Risk
*/
public static function risk(Array $attributes)
{
$risk = new Castle_Risk($attributes);
$risk->save();
return $risk;
}
}
6 changes: 6 additions & 0 deletions lib/Castle/Models/Filter.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?php

class Castle_Filter extends RestModel
{
protected $isSingular = true;
}
6 changes: 6 additions & 0 deletions lib/Castle/Models/Log.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?php

class Castle_Log extends RestModel
{
protected $isSingular = true;
}
6 changes: 6 additions & 0 deletions lib/Castle/Models/Risk.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?php

class Castle_Risk extends RestModel
{
protected $isSingular = true;
}
3 changes: 3 additions & 0 deletions test/Castle.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ public function assertRequest($method, $url, $headers=null)
require(dirname(__FILE__) . '/../lib/RestModel/Resource.php');
require(dirname(__FILE__) . '/../lib/RestModel/Model.php');
require(dirname(__FILE__) . '/../lib/Castle/Models/Authenticate.php');
require(dirname(__FILE__) . '/../lib/Castle/Models/Filter.php');
require(dirname(__FILE__) . '/../lib/Castle/Models/Log.php');
require(dirname(__FILE__) . '/../lib/Castle/Models/Risk.php');
require(dirname(__FILE__) . '/../lib/Castle/Models/Review.php');
require(dirname(__FILE__) . '/../lib/Castle/Models/Context.php');
require(dirname(__FILE__) . '/TestTransport.php');
Expand Down
35 changes: 35 additions & 0 deletions test/CastleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,41 @@ public function testTrack()
$this->assertRequest('post', '/track');
}

public function testFilter()
{
Castle_RequestTransport::setResponse(204, '');
Castle::filter(Array(
'request_token' => '7e51335b-f4bc-4bc7-875d-b713fb61eb23-bf021a3022a1a302',
'name' => '$registration',
'user' => Array('id' => 'abc', 'email' => 'user@foobar.io')
));
$this->assertRequest('post', '/filter');
}

public function testLog()
{
Castle_RequestTransport::setResponse(204, '');
Castle::log(Array(
'request_token' => '7e51335b-f4bc-4bc7-875d-b713fb61eb23-bf021a3022a1a302',
'name' => '$login',
'status' => '$failed',
'user' => Array('id' => 'abc', 'email' => 'user@foobar.io')
));
$this->assertRequest('post', '/log');
}

public function testRisk()
{
Castle_RequestTransport::setResponse(204, '');
Castle::risk(Array(
'request_token' => '7e51335b-f4bc-4bc7-875d-b713fb61eb23-bf021a3022a1a302',
'name' => '$login',
'status' => '$succeeded',
'user' => Array('id' => 'abc', 'email' => 'user@foobar.io')
));
$this->assertRequest('post', '/risk');
}

public function testAuthenticate()
{
Castle_RequestTransport::setResponse(201, '{ "status": "approve" }');
Expand Down
17 changes: 17 additions & 0 deletions test/FilterTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

class CastleFilterTest extends Castle_TestCase
{
public function tearDown(): void
{
Castle_RequestTransport::reset();
Castle_RequestTransport::setResponse(200, '');
}

public function testApprove()
{
$filter = new Castle_Filter();
$filter->save();
$this->assertRequest('post', '/filter');
}
}
17 changes: 17 additions & 0 deletions test/LogTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

class CastleLogTest extends Castle_TestCase
{
public function tearDown(): void
{
Castle_RequestTransport::reset();
Castle_RequestTransport::setResponse(200, '');
}

public function testApprove()
{
$log = new Castle_Log();
$log->save();
$this->assertRequest('post', '/log');
}
}
17 changes: 17 additions & 0 deletions test/RiskTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

class CastleRiskTest extends Castle_TestCase
{
public function tearDown(): void
{
Castle_RequestTransport::reset();
Castle_RequestTransport::setResponse(200, '');
}

public function testApprove()
{
$risk = new Castle_Risk();
$risk->save();
$this->assertRequest('post', '/risk');
}
}

0 comments on commit acb9fe3

Please sign in to comment.