Skip to content

Commit

Permalink
Begin testing API (see #3)
Browse files Browse the repository at this point in the history
  • Loading branch information
tobyzerner committed Jan 19, 2015
1 parent 49be841 commit 2fcb1dc
Show file tree
Hide file tree
Showing 10 changed files with 3,119 additions and 29 deletions.
4 changes: 3 additions & 1 deletion src/Flarum/Api/Actions/Base.php
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,9 @@ protected function respondWithArray($array, $statusCode = 200, $headers = [])
protected function respondWithDocument($statusCode = 200, $headers = [])
{
// @todo remove this
$this->document->addMeta('pageload', microtime(true) - LARAVEL_START);
if (defined('LARAVEL_START')) {
$this->document->addMeta('pageload', microtime(true) - LARAVEL_START);
}

Event::fire('flarum.api.willRespondWithDocument', [$this->document]);

Expand Down
50 changes: 25 additions & 25 deletions src/routes.api.php
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
<?php

function action_handler($class)
$action = function($class)
{
return function () use ($class) {
$action = \App::make($class);
$request = app('request');
$parameters = Route::current()->parameters();
return $action->handle($request, $parameters);
};
}
};

Route::group(['prefix' => 'api'], function () {
Route::group(['prefix' => 'api'], function () use ($action) {

/*
|--------------------------------------------------------------------------
Expand All @@ -21,31 +21,31 @@ function action_handler($class)
// List users
Route::get('users', [
'as' => 'flarum.api.users.index',
'uses' => action_handler('Flarum\Api\Actions\Users\Index')
'uses' => $action('Flarum\Api\Actions\Users\Index')
]);

// Register a user
Route::post('users', [
'as' => 'flarum.api.users.create',
'uses' => action_handler('Flarum\Api\Actions\Users\Create')
'uses' => $action('Flarum\Api\Actions\Users\Create')
]);

// Get a single user
Route::get('users/{id}', [
'as' => 'flarum.api.users.show',
'uses' => action_handler('Flarum\Api\Actions\Users\Show')
'uses' => $action('Flarum\Api\Actions\Users\Show')
]);

// Edit a user
Route::put('users/{id}', [
'as' => 'flarum.api.users.update',
'uses' => action_handler('Flarum\Api\Actions\Users\Update')
'uses' => $action('Flarum\Api\Actions\Users\Update')
]);

// Delete a user
Route::delete('users/{id}', [
'as' => 'flarum.api.users.delete',
'uses' => action_handler('Flarum\Api\Actions\Users\Delete')
'uses' => $action('Flarum\Api\Actions\Users\Delete')
]);

/*
Expand All @@ -57,13 +57,13 @@ function action_handler($class)
// List activity
Route::get('activity', [
'as' => 'flarum.api.activity.index',
'uses' => action_handler('Flarum\Api\Actions\Activity\Index')
'uses' => $action('Flarum\Api\Actions\Activity\Index')
]);

// List notifications for the current user
Route::get('notifications', [
'as' => 'flarum.api.notifications.index',
'uses' => action_handler('Flarum\Api\Actions\Notifications\Index')
'uses' => $action('Flarum\Api\Actions\Notifications\Index')
]);

/*
Expand All @@ -75,31 +75,31 @@ function action_handler($class)
// List discussions
Route::get('discussions', [
'as' => 'flarum.api.discussions.index',
'uses' => action_handler('Flarum\Api\Actions\Discussions\Index')
'uses' => $action('Flarum\Api\Actions\Discussions\Index')
]);

// Create a discussion
Route::post('discussions', [
'as' => 'flarum.api.discussions.create',
'uses' => action_handler('Flarum\Api\Actions\Discussions\Create')
'uses' => $action('Flarum\Api\Actions\Discussions\Create')
]);

// Show a single discussion
Route::get('discussions/{id}', [
'as' => 'flarum.api.discussions.show',
'uses' => action_handler('Flarum\Api\Actions\Discussions\Show')
'uses' => $action('Flarum\Api\Actions\Discussions\Show')
]);

// Edit a discussion
Route::put('discussions/{id}', [
'as' => 'flarum.api.discussions.update',
'uses' => action_handler('Flarum\Api\Actions\Discussions\Update')
'uses' => $action('Flarum\Api\Actions\Discussions\Update')
]);

// Delete a discussion
Route::delete('discussions/{id}', [
'as' => 'flarum.api.discussions.delete',
'uses' => action_handler('Flarum\Api\Actions\Discussions\Delete')
'uses' => $action('Flarum\Api\Actions\Discussions\Delete')
]);

/*
Expand All @@ -111,32 +111,32 @@ function action_handler($class)
// List posts, usually for a discussion
Route::get('posts', [
'as' => 'flarum.api.posts.index',
'uses' => action_handler('Flarum\Api\Actions\Posts\Index')
'uses' => $action('Flarum\Api\Actions\Posts\Index')
]);

// Create a post
// @todo consider 'discussions/{id}/links/posts'?
Route::post('posts', [
'as' => 'flarum.api.posts.create',
'uses' => action_handler('Flarum\Api\Actions\Posts\Create')
'uses' => $action('Flarum\Api\Actions\Posts\Create')
]);

// Show a single or multiple posts by ID
Route::get('posts/{id}', [
'as' => 'flarum.api.posts.show',
'uses' => action_handler('Flarum\Api\Actions\Posts\Show')
'uses' => $action('Flarum\Api\Actions\Posts\Show')
]);

// Edit a post
Route::put('posts/{id}', [
'as' => 'flarum.api.posts.update',
'uses' => action_handler('Flarum\Api\Actions\Posts\Update')
'uses' => $action('Flarum\Api\Actions\Posts\Update')
]);

// Delete a post
Route::delete('posts/{id}', [
'as' => 'flarum.api.posts.delete',
'uses' => action_handler('Flarum\Api\Actions\Posts\Delete')
'uses' => $action('Flarum\Api\Actions\Posts\Delete')
]);

/*
Expand All @@ -148,31 +148,31 @@ function action_handler($class)
// List groups
Route::get('groups', [
'as' => 'flarum.api.groups.index',
'uses' => action_handler('Flarum\Api\Actions\Groups\Index')
'uses' => $action('Flarum\Api\Actions\Groups\Index')
]);

// Create a group
Route::post('groups', [
'as' => 'flarum.api.groups.create',
'uses' => action_handler('Flarum\Api\Actions\Groups\Create')
'uses' => $action('Flarum\Api\Actions\Groups\Create')
]);

// Show a single group
Route::get('groups/{id}', [
'as' => 'flarum.api.groups.show',
'uses' => action_handler('Flarum\Api\Actions\Groups\Show')
'uses' => $action('Flarum\Api\Actions\Groups\Show')
]);

// Edit a group
Route::put('groups/{id}', [
'as' => 'flarum.api.groups.update',
'uses' => action_handler('Flarum\Api\Actions\Groups\Update')
'uses' => $action('Flarum\Api\Actions\Groups\Update')
]);

// Delete a group
Route::delete('groups/{id}', [
'as' => 'flarum.api.groups.delete',
'uses' => action_handler('Flarum\Api\Actions\Groups\Delete')
'uses' => $action('Flarum\Api\Actions\Groups\Delete')
]);

});
10 changes: 10 additions & 0 deletions tests/_support/ApiHelper.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php
namespace Codeception\Module;

// here you can define custom actions
// all public methods declared in helper class will be available in $I

class ApiHelper extends \Codeception\Module
{

}
2 changes: 1 addition & 1 deletion tests/acceptance/AcceptanceTester.php
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?php //[STAMP] 62377ab49c890e65388dcf2e4aedfd9c
<?php //[STAMP] 35004e907fa829d784ccbf5cd2166fcf

// This class was automatically generated by build task
// You should not change it manually as it will be overwritten on next build
Expand Down
3 changes: 3 additions & 0 deletions tests/api.suite.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
class_name: ApiTester
modules:
enabled: [Laravel4, REST, Asserts, ApiHelper]
Loading

0 comments on commit 2fcb1dc

Please sign in to comment.