Skip to content

Commit

Permalink
Merge pull request #268 from deanblackborough/dev
Browse files Browse the repository at this point in the history
Minor fixes
deanblackborough authored Jul 28, 2023
2 parents 919814d + bea7e02 commit a10ba01
Showing 7 changed files with 83 additions and 111 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -2,6 +2,11 @@

The complete changelog for the Costs to Expect REST API, our changelog follows the format defined at https://keepachangelog.com/en/1.0.0/

## [v3.14.1] - 2023-07-28
### Fixed
- User id not included in the permitted users responses.
- Moved some authentication OPTIONS responses from behind the authentication guard.

## [v3.14.0] - 2023-07-05
### Added
- Continued expanding our test suite.
54 changes: 9 additions & 45 deletions app/Http/Controllers/View/AuthenticationController.php
Original file line number Diff line number Diff line change
@@ -197,11 +197,7 @@ public function optionsPermittedResourceType(): Http\JsonResponse
{
$user = auth()->guard('api')->user();

if ($user === null) {
return Response::authenticationRequired();
}

$response = new PermittedResourceType(['view'=> true, 'manage'=> true]);
$response = new PermittedResourceType(['view'=> $user !== null, 'manage'=> $user !== null]);

return $response->create()->response();
}
@@ -219,11 +215,7 @@ public function optionsPermittedResourceTypeResources(): Http\JsonResponse
{
$user = auth()->guard('api')->user();

if ($user === null) {
return Response::authenticationRequired();
}

$response = new PermittedResourceTypeResources(['view'=> true, 'manage'=> true]);
$response = new PermittedResourceTypeResources(['view'=> $user !== null, 'manage'=> $user !== null]);

return $response->create()->response();
}
@@ -232,11 +224,7 @@ public function optionsPermittedResourceTypes(): Http\JsonResponse
{
$user = auth()->guard('api')->user();

if ($user === null) {
return Response::authenticationRequired();
}

$response = new PermittedResourceTypes(['view'=> true, 'manage'=> true]);
$response = new PermittedResourceTypes(['view'=> $user !== null, 'manage'=> $user !== null]);

return $response->create()->response();
}
@@ -252,11 +240,7 @@ public function optionsRequestDelete(): Http\JsonResponse
{
$user = auth()->guard('api')->user();

if ($user === null) {
return Response::authenticationRequired();
}

$response = new RequestDelete(['view'=> true, 'manage'=> true]);
$response = new RequestDelete(['view'=> $user !== null, 'manage'=> $user !== null]);

return $response->create()->response();
}
@@ -311,11 +295,7 @@ public function optionsUpdateProfile(): Http\JsonResponse
{
$user = auth()->guard('api')->user();

if ($user === null) {
return Response::authenticationRequired();
}

$response = new UpdateProfile(['view'=> true, 'manage'=> true]);
$response = new UpdateProfile(['view'=> $user !== null, 'manage'=> $user !== null]);

return $response->create()->response();
}
@@ -324,11 +304,7 @@ public function optionsUpdatePassword(): Http\JsonResponse
{
$user = auth()->guard('api')->user();

if ($user === null) {
return Response::authenticationRequired();
}

$response = new UpdatePassword(['view'=> true, 'manage'=> true]);
$response = new UpdatePassword(['view'=> $user !== null, 'manage'=> $user !== null]);

return $response->create()->response();
}
@@ -418,11 +394,7 @@ public function optionsUser(): Http\JsonResponse
{
$user = auth()->guard('api')->user();

if ($user === null) {
return Response::authenticationRequired();
}

$response = new \App\HttpOptionResponse\Auth\User(['view'=> true, 'manage'=> true]);
$response = new \App\HttpOptionResponse\Auth\User(['view'=> $user !== null, 'manage'=> $user !== null]);

return $response->create()->response();
}
@@ -431,11 +403,7 @@ public function optionsTokens(): Http\JsonResponse
{
$user = auth()->guard('api')->user();

if ($user === null) {
return Response::authenticationRequired();
}

$response = new \App\HttpOptionResponse\Auth\Tokens(['view'=> true, 'manage'=> true]);
$response = new \App\HttpOptionResponse\Auth\Tokens(['view'=> $user !== null, 'manage'=> $user !== null]);

return $response->create()->response();
}
@@ -444,11 +412,7 @@ public function optionsToken(): Http\JsonResponse
{
$user = auth()->guard('api')->user();

if ($user === null) {
return Response::authenticationRequired();
}

$response = new \App\HttpOptionResponse\Auth\Token(['view'=> true, 'manage'=> true]);
$response = new \App\HttpOptionResponse\Auth\Token(['view'=> $user !== null, 'manage'=> $user !== null]);

return $response->create()->response();
}
2 changes: 2 additions & 0 deletions app/Models/PermittedUser.php
Original file line number Diff line number Diff line change
@@ -61,6 +61,7 @@ public function paginatedCollection(
): array {
$collection = $this->select(
'permitted_user.id AS permitted_user_id',
'users.id AS permitted_user_user_id',
'users.name AS permitted_user_name',
'users.email AS permitted_user_email',
'permitted_user.created_at AS permitted_user_created_at'
@@ -96,6 +97,7 @@ public function single(int $resource_type_id, int $permitted_user_id): ?array
{
$result = $this->select(
'permitted_user.id AS permitted_user_id',
'users.id AS permitted_user_user_id',
'users.name AS permitted_user_name',
'users.email AS permitted_user_email',
'permitted_user.created_at AS permitted_user_created_at'
1 change: 1 addition & 0 deletions app/Transformer/PermittedUser.php
Original file line number Diff line number Diff line change
@@ -15,6 +15,7 @@ public function format(array $to_transform): void
{
$this->transformed = [
'id' => $this->hash->permittedUser()->encode($to_transform['permitted_user_id']),
'user_id' => $this->hash->user()->encode($to_transform['permitted_user_user_id']),
'name' => $to_transform['permitted_user_name'],
'email' => $to_transform['permitted_user_email'],
'created' => $to_transform['permitted_user_created_at']
4 changes: 2 additions & 2 deletions config/api/app/version.php
Original file line number Diff line number Diff line change
@@ -3,9 +3,9 @@
declare(strict_types=1);

return [
'version'=> 'v3.14.0',
'version'=> 'v3.14.1',
'prefix' => 'v3',
'release_date' => '2023-07-05',
'release_date' => '2023-07-28',
'changelog' => [
'api' => '/v3/changelog',
'markdown' => 'https://github.com/costs-to-expect/api/blob/master/CHANGELOG.md'
4 changes: 4 additions & 0 deletions public/api/schema/permitted-user.json
Original file line number Diff line number Diff line change
@@ -5,6 +5,9 @@
"id": {
"type": "string"
},
"user_id": {
"type": "string"
},
"name": {
"type": "string"
},
@@ -17,6 +20,7 @@
},
"required": [
"id",
"user_id",
"name",
"email",
"created"
124 changes: 60 additions & 64 deletions routes/api/auth.php
Original file line number Diff line number Diff line change
@@ -79,6 +79,56 @@ function () {
'auth/user/migrate/budget-pro/request-migration',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsMigrateBudgetProRequestDelete']
)->name('auth.user.migrate.budget-pro.request-delete.options');

Route::options(
'auth/user/permitted-resource-types',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsPermittedResourceTypes']
)->name('auth.user.permitted-resource-types.list.options');

Route::options(
'auth/user',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsUser']
)->name('auth.user.options');

Route::options(
'auth/update-password',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsUpdatePassword']
)->name('auth.update-password.options');

Route::options(
'auth/update-profile',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsUpdateProfile']
)->name('auth.update-profile.options');

Route::options(
'auth/user/permitted-resource-types/{permitted_resource_type_id}',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsPermittedResourceType']
)->name('auth.user.permitted-resource-types.show.options');

Route::options(
'auth/user/permitted-resource-types/{permitted_resource_type_id}/resources',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsPermittedResourceTypeResources']
)->name('auth.user.permitted-resource-types-resources.list.options');

Route::options(
'auth/user/permitted-resource-types/{permitted_resource_type_id}/resources/{resource_id}',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsPermittedResourceTypeResource']
)->name('auth.user.permitted-resource-types-resources.show.options');

Route::options(
'auth/user/request-delete',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsRequestDelete']
)->name('auth.user.request-delete.options');

Route::options(
'auth/user/tokens',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsTokens']
)->name('auth.user.token.list.options');

Route::options(
'auth/user/tokens/{token_id}',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsToken']
)->name('auth.user.token.show.options');
}
);

@@ -91,68 +141,37 @@ function () {
]
],
static function () {
Route::options(
'auth/update-password',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsUpdatePassword']
)->name('auth.update-password.options');

Route::post(
'auth/update-password',
[App\Http\Controllers\Action\AuthenticationController::class, 'updatePassword']
)->name('auth.update-password');

Route::options(
'auth/update-profile',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsUpdateProfile']
)->name('auth.update-profile.options');

Route::post(
'auth/update-profile',
[App\Http\Controllers\Action\AuthenticationController::class, 'updateProfile']
)->name('auth.update-profile');

Route::options(
'auth/user',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsUser']
)->name('auth.user.options');

Route::get(
'auth/user',
[App\Http\Controllers\View\AuthenticationController::class, 'user']
);


Route::post(
'auth/user/migrate/budget-pro/request-migration',
[App\Http\Controllers\Action\AuthenticationController::class, 'migrateBudgetProRequestDelete']
)->name('auth.user.migrate.budget-pro.request-delete');


Route::get(
'auth/user/permitted-resource-types',
[App\Http\Controllers\View\AuthenticationController::class, 'permittedResourceTypes']
)->name('auth.user.permitted-resource-types.list');

Route::options(
'auth/user/permitted-resource-types',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsPermittedResourceTypes']
)->name('auth.user.permitted-resource-types.list.options');

Route::get(
'auth/user/permitted-resource-types/{permitted_resource_type_id}',
[App\Http\Controllers\View\AuthenticationController::class, 'permittedResourceType']
)->name('auth.user.permitted-resource-types.show');

Route::options(
'auth/user/permitted-resource-types/{permitted_resource_type_id}',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsPermittedResourceType']
)->name('auth.user.permitted-resource-types.show.options');

Route::options(
'auth/user/permitted-resource-types/{permitted_resource_type_id}/request-delete',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsRequestResourceTypeDelete']
)->name('auth.user.request-resource-type-delete.options');

Route::post(
'auth/user/permitted-resource-types/{permitted_resource_type_id}/request-delete',
[App\Http\Controllers\Action\AuthenticationController::class, 'requestResourceTypeDelete']
@@ -163,59 +182,26 @@ static function () {
[App\Http\Controllers\View\AuthenticationController::class, 'permittedResourceTypesResources']
)->name('auth.user.permitted-resource-types-resources.list');

Route::options(
'auth/user/permitted-resource-types/{permitted_resource_type_id}/resources',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsPermittedResourceTypeResources']
)->name('auth.user.permitted-resource-types-resources.list.options');

Route::get(
'auth/user/permitted-resource-types/{permitted_resource_type_id}/resources/{resource_id}',
[App\Http\Controllers\View\AuthenticationController::class, 'permittedResourceTypesResource']
)->name('auth.user.permitted-resource-types-resources.show');

Route::options(
'auth/user/permitted-resource-types/{permitted_resource_type_id}/resources/{resource_id}',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsPermittedResourceTypeResource']
)->name('auth.user.permitted-resource-types-resources.show.options');

Route::options(
'auth/user/permitted-resource-types/{permitted_resource_type_id}/resources/{resource_id}/request-delete',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsRequestResourceDelete']
)->name('auth.user.request-resource-delete.options');

Route::post(
'auth/user/permitted-resource-types/{permitted_resource_type_id}/resources/{resource_id}/request-delete',
[App\Http\Controllers\Action\AuthenticationController::class, 'requestResourceDelete']
)->name('auth.user.request-resource-delete');


Route::options(
'auth/user/request-delete',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsRequestDelete']
)->name('auth.user.request-delete.options');

Route::post(
'auth/user/request-delete',
[App\Http\Controllers\Action\AuthenticationController::class, 'requestDelete']
)->name('auth.user.request-delete');



Route::options(
'auth/user/tokens',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsTokens']
)->name('auth.user.token.list.options');

Route::get(
'auth/user/tokens',
[App\Http\Controllers\View\AuthenticationController::class, 'tokens']
)->name('auth.user.token.list');

Route::options(
'auth/user/tokens/{token_id}',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsToken']
)->name('auth.user.token.show.options');

Route::get(
'auth/user/tokens/{token_id}',
[App\Http\Controllers\View\AuthenticationController::class, 'token']
@@ -225,5 +211,15 @@ static function () {
'auth/user/tokens/{token_id}',
[App\Http\Controllers\Action\AuthenticationController::class, 'deleteToken']
)->name('auth.user.token.delete');

Route::options(
'auth/user/permitted-resource-types/{permitted_resource_type_id}/resources/{resource_id}/request-delete',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsRequestResourceDelete']
)->name('auth.user.request-resource-delete.options');

Route::options(
'auth/user/permitted-resource-types/{permitted_resource_type_id}/request-delete',
[App\Http\Controllers\View\AuthenticationController::class, 'optionsRequestResourceTypeDelete']
)->name('auth.user.request-resource-type-delete.options');
}
);

0 comments on commit a10ba01

Please sign in to comment.