1
0
mirror of https://github.com/flarum/core.git synced 2025-07-23 17:51:24 +02:00

Upgrade Zend Diactoros to 1.1

This gives us a bunch of handy helper classes for empty responses,
redirects, HTML and JSON content types.

Closes flarum/core#153
This commit is contained in:
Franz Liedke
2015-06-26 22:34:34 +02:00
parent 260f4c85bf
commit cca97398ae
10 changed files with 92 additions and 53 deletions

View File

@@ -1,7 +1,7 @@
<?php namespace Flarum\Api\Actions;
use Flarum\Api\Request;
use Zend\Diactoros\Response;
use Zend\Diactoros\Response\EmptyResponse;
abstract class DeleteAction extends JsonApiAction
{
@@ -16,7 +16,7 @@ abstract class DeleteAction extends JsonApiAction
{
$this->delete($request);
return new Response('php://memory', 204);
return new EmptyResponse(204);
}
/**

View File

@@ -1,10 +1,10 @@
<?php namespace Flarum\Api\Actions;
use Flarum\Api\Request;
use Flarum\Api\Actions\JsonApiAction;
use Flarum\Core\Repositories\UserRepositoryInterface;
use Flarum\Core\Commands\RequestPasswordResetCommand;
use Illuminate\Contracts\Bus\Dispatcher;
use Zend\Diactoros\Response\EmptyResponse;
class ForgotAction extends JsonApiAction
{
@@ -32,6 +32,6 @@ class ForgotAction extends JsonApiAction
new RequestPasswordResetCommand($email)
);
return $this->json();
return new EmptyResponse();
}
}

View File

@@ -4,7 +4,7 @@ use Flarum\Api\Request;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Flarum\Core\Exceptions\ValidationFailureException;
use Flarum\Core\Exceptions\PermissionDeniedException;
use Zend\Diactoros\Response;
use Zend\Diactoros\Response\JsonResponse;
abstract class JsonApiAction implements ActionInterface
{
@@ -27,28 +27,14 @@ abstract class JsonApiAction implements ActionInterface
'path' => $field
];
}
return $this->json(['errors' => $errors], 422);
return new JsonResponse(['errors' => $errors], 422);
} catch (PermissionDeniedException $e) {
return $this->json(null, 401);
return new JsonResponse(null, 401);
} catch (ModelNotFoundException $e) {
return $this->json(null, 404);
return new JsonResponse(null, 404);
}
}
protected function json($data = null, $status = 200)
{
if ($data === null) {
$data = new \ArrayObject();
}
$data = json_encode($data, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT);
$response = new Response('php://memory', $status);
$response->getBody()->write($data);
return $response;
}
/**
* Handle an API request and return an API response.
*

View File

@@ -6,6 +6,7 @@ use Flarum\Core\Repositories\UserRepositoryInterface;
use Flarum\Core\Exceptions\PermissionDeniedException;
use Flarum\Core\Events\UserEmailChangeWasRequested;
use Illuminate\Contracts\Bus\Dispatcher;
use Zend\Diactoros\Response\JsonResponse;
class TokenAction extends JsonApiAction
{
@@ -39,7 +40,7 @@ class TokenAction extends JsonApiAction
if (! $user->is_activated) {
event(new UserEmailChangeWasRequested($user, $user->email));
return $this->json([
return new JsonResponse([
'code' => 'confirm_email',
'email' => $user->email
], 401);
@@ -49,7 +50,7 @@ class TokenAction extends JsonApiAction
new GenerateAccessTokenCommand($user->id)
);
return $this->json([
return new JsonResponse([
'token' => $token->id,
'userId' => $user->id
]);

View File

@@ -2,7 +2,7 @@
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Zend\Diactoros\Response\StringResponse;
use Zend\Diactoros\Response\JsonResponse;
use Zend\Stratigility\ErrorMiddlewareInterface;
class JsonApiErrors implements ErrorMiddlewareInterface
@@ -31,6 +31,6 @@ class JsonApiErrors implements ErrorMiddlewareInterface
'errors' => [$errorObject]
];
return StringResponse::json($data, $status);
return new JsonResponse($data, $status);
}
}