Skip to content

Commit

Permalink
Merge branch 'release/0.14.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
Lee Hicks committed Feb 24, 2018
2 parents 8ac4a28 + 33f9bcc commit 110ea47
Show file tree
Hide file tree
Showing 7 changed files with 101 additions and 68 deletions.
10 changes: 8 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@ All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).

## [Unreleased]
## [0.14.2] - 2018-02-25
### Fixed
- DF-1296 Allowed for wildcard handling in session permission checks
- DF-1270 Use potentially modified request in response format handling

## [0.14.1] - 2018-01-25
### Added
- DF-1275 Initial support for multi-column constraints
Expand Down Expand Up @@ -627,8 +632,9 @@ This project adheres to [Semantic Versioning](http://semver.org/).
## 0.1.0 - 2015-10-24
First official release working with the new [dreamfactory](https://github.com/dreamfactorysoftware/dreamfactory) project.

[Unreleased]: https://github.com/dreamfactorysoftware/df-core/compare/0.14.1...HEAD
[0.14.1]: https://github.com/dreamfactorysoftware/df-core/compare/0.14.1...0.14.1
[Unreleased]: https://github.com/dreamfactorysoftware/df-core/compare/0.14.2...HEAD
[0.14.2]: https://github.com/dreamfactorysoftware/df-core/compare/0.14.1...0.14.2
[0.14.1]: https://github.com/dreamfactorysoftware/df-core/compare/0.14.0...0.14.1
[0.14.0]: https://github.com/dreamfactorysoftware/df-core/compare/0.13.1...0.14.0
[0.13.1]: https://github.com/dreamfactorysoftware/df-core/compare/0.13.0...0.13.1
[0.13.0]: https://github.com/dreamfactorysoftware/df-core/compare/0.12.3...0.13.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public function up()
if (Schema::hasColumn('system_config', 'db_version')) {
Schema::table('system_config', function (Blueprint $t) use ($onDelete) {
// delete the old stuff and create the new config
$t->dropPrimary('system_config_db_version_primary');
$t->dropColumn('db_version');
$t->dropColumn('created_date');
$t->dropColumn('last_modified_date');
Expand Down
18 changes: 14 additions & 4 deletions src/Http/Controllers/RestController.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ class RestController extends Controller
* @param null|string $version
*
* @return null|ServiceResponseInterface|Response
* @throws \DreamFactory\Core\Exceptions\NotImplementedException
*/
public function index($version = null)
{
Expand Down Expand Up @@ -93,9 +94,9 @@ public function index($version = null)
$response = ResponseFactory::create(['services' => $services, 'service_types' => $types]);
Log::info('[RESPONSE]', ['Status Code' => $response->getStatusCode(), 'Content-Type' => $response->getContentType()]);

return ResponseFactory::sendResponse($response);
return ResponseFactory::sendResponse($response, $request);
} catch (\Exception $e) {
return ResponseFactory::sendException($e);
return ResponseFactory::sendException($e, (isset($request) ? $request : null));
}
}

Expand All @@ -107,6 +108,7 @@ public function index($version = null)
* @param null|string $resource
*
* @return ServiceResponseInterface|Response|null
* @throws \DreamFactory\Core\Exceptions\NotImplementedException
*/
public function handleVersionedService($version, $service, $resource = null)
{
Expand All @@ -123,6 +125,7 @@ public function handleVersionedService($version, $service, $resource = null)
* @param null|string $resource
*
* @return ServiceResponseInterface|Response|null
* @throws \DreamFactory\Core\Exceptions\NotImplementedException
*/
public function handleService($service, $resource = null)
{
Expand All @@ -131,6 +134,13 @@ public function handleService($service, $resource = null)
return $this->handleServiceRequest($request, $service, $resource);
}

/**
* @param ServiceRequest $request
* @param $service
* @param null $resource
* @return array|ServiceResponseInterface|mixed|string|Response
* @throws \DreamFactory\Core\Exceptions\NotImplementedException
*/
protected function handleServiceRequest(ServiceRequest $request, $service, $resource = null)
{
try {
Expand All @@ -151,9 +161,9 @@ protected function handleServiceRequest(ServiceRequest $request, $service, $reso
return $response;
}

return ResponseFactory::sendResponse($response, null, null, $resource);
return ResponseFactory::sendResponse($response, $request, null, $resource);
} catch (\Exception $e) {
return ResponseFactory::sendException($e);
return ResponseFactory::sendException($e, $request);
}
}
}
2 changes: 1 addition & 1 deletion src/Http/Middleware/AccessCheck.php
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ public function handle($request, Closure $next)
throw new ForbiddenException($msg);
}
} catch (\Exception $e) {
return ResponseFactory::sendException($e, $request);
return ResponseFactory::sendException($e);
}
}
}
2 changes: 1 addition & 1 deletion src/Http/Middleware/AuthCheck.php
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ public function handle(Request $request, \Closure $next)

return $next($request);
} catch (\Exception $e) {
return ResponseFactory::sendException($e, $request);
return ResponseFactory::sendException($e);
}
}

Expand Down
47 changes: 23 additions & 24 deletions src/Utility/ResponseFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

namespace DreamFactory\Core\Utility;

use DreamFactory\Core\Components\ExceptionResponse;
use DreamFactory\Core\Exceptions\BadRequestException;
use DreamFactory\Core\Exceptions\RestException;
use DreamFactory\Core\Components\DfResponse;
use DreamFactory\Core\Components\ExceptionResponse;
use DreamFactory\Core\Contracts\HttpStatusCodeInterface;
use DreamFactory\Core\Enums\HttpStatusCodes;
use DreamFactory\Core\Contracts\ServiceRequestInterface;
use DreamFactory\Core\Contracts\ServiceResponseInterface;
use DreamFactory\Core\Enums\DataFormats;
use DreamFactory\Core\Enums\HttpStatusCodes;
use DreamFactory\Core\Exceptions\DfException;
use DreamFactory\Core\Exceptions\RestException;

/**
* Class ResponseFactory
Expand Down Expand Up @@ -52,24 +52,21 @@ public static function createExceptionFromResponse(ServiceResponseInterface $res
}

/**
* @param \DreamFactory\Core\Contracts\ServiceResponseInterface $response
* @param null $accepts
* @param null $asFile
* @param string $resource
* @param ServiceResponseInterface $response
* @param ServiceRequestInterface|null $request
* @param null $asFile
* @param string $resource
*
* @return \Symfony\Component\HttpFoundation\Response
* @throws \DreamFactory\Core\Exceptions\BadRequestException
* @throws \DreamFactory\Core\Exceptions\NotImplementedException
*/
public static function sendResponse(
ServiceResponseInterface $response,
$accepts = null,
ServiceRequestInterface $request = null,
$asFile = null,
$resource = 'resource'
) {
if (empty($accepts)) {
$accepts = static::getAcceptedTypes();
}
$accepts = static::getAcceptedTypes($request);

if (empty($asFile)) {
$asFile = \Request::input('file');
Expand Down Expand Up @@ -200,7 +197,6 @@ public static function sendResponse(
* @param ServiceResponseInterface $response
*
* @return array|mixed|string
* @throws BadRequestException
*/
public static function sendScriptResponse(ServiceResponseInterface $response)
{
Expand Down Expand Up @@ -234,28 +230,31 @@ public static function sendScriptResponse(ServiceResponseInterface $response)
}

/**
* @param \Exception $e
* @param \Illuminate\Http\Request $request
* @param \Exception $e
* @param ServiceRequestInterface $request
*
* @return array|mixed|string
* @throws \DreamFactory\Core\Exceptions\NotImplementedException
*/
public static function sendException(
\Exception $e,
/** @noinspection PhpUnusedParameterInspection */
$request = null
) {
public static function sendException(\Exception $e, ServiceRequestInterface $request = null)
{
$response = static::exceptionToServiceResponse($e);

return ResponseFactory::sendResponse($response);
return ResponseFactory::sendResponse($response, $request);
}

/**
*
* @param ServiceRequestInterface|null $request
* @return array
*/
public static function getAcceptedTypes()
public static function getAcceptedTypes(ServiceRequestInterface $request = null)
{
$accepts = \Request::query('accept', \Request::header('ACCEPT'));
if ($request) {
$accepts = $request->getParameter('accept', $request->getHeader('accept'));
} else {
$accepts = \Request::query('accept', \Request::header('accept'));
}
$accepts = array_map('trim', explode(',', $accepts));

return $accepts;
Expand Down
Loading

0 comments on commit 110ea47

Please sign in to comment.