Skip to content

Commit 00b4d73

Browse files
committed
Update schema
1 parent 3cb21c9 commit 00b4d73

File tree

7 files changed

+25
-16
lines changed

7 files changed

+25
-16
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# v5.9.0
22
# New
3-
- Added `public/{slugOrId}` endpoints
3+
- Documented `public/{slugOrId}` endpoints
44
- You can now access public bar data via `public/{slugOrId}` endpoints
55
- Added GET `public/{slugOrId}/menu` endpoint
66
- Added GET `public/{slugOrId}/cocktails` endpoint

app/Http/Controllers/Public/BarController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class BarController extends Controller
2323
public function show(string $slugOrId): BarResource
2424
{
2525
$bar = Bar::where('slug', $slugOrId)->orWhere('id', $slugOrId)->firstOrFail();
26-
if (!$bar->is_public) {
26+
if (!$bar->isPublic()) {
2727
abort(404);
2828
}
2929

app/Http/Controllers/Public/CocktailController.php

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class CocktailController extends Controller
3939
public function index(Request $request, string $slugOrId): JsonResource
4040
{
4141
$bar = Bar::where('slug', $slugOrId)->orWhere('id', $slugOrId)->firstOrFail();
42-
if (!$bar->is_public) {
42+
if (!$bar->isPublic()) {
4343
abort(404);
4444
}
4545

@@ -66,23 +66,22 @@ public function index(Request $request, string $slugOrId): JsonResource
6666
return CocktailResource::collection($cocktails->withQueryString());
6767
}
6868

69-
#[OAT\Get(path: '/public/{slugOrId}/cocktails/{slugOrPublicId}', tags: ['Public'], operationId: 'showPublicBarCocktail', description: 'Show public information about cocktail. If valid public ID is provided it will used, if not it will use cocktail slug.', summary: 'Show cocktail', parameters: [
69+
#[OAT\Get(path: '/public/{slugOrId}/cocktails/{cocktailSlug}', tags: ['Public'], operationId: 'showPublicBarCocktail', description: 'Show public information about cocktail.', summary: 'Show cocktail', parameters: [
7070
new OAT\Parameter(name: 'slugOrId', in: 'path', required: true, description: 'Database id of bar', schema: new OAT\Schema(type: 'string')),
71-
new OAT\Parameter(name: 'slugOrPublicId', in: 'path', required: true, description: 'Cocktail slug or public id (ULID)', schema: new OAT\Schema(type: 'string')),
71+
new OAT\Parameter(name: 'cocktailSlug', in: 'path', required: true, description: 'Cocktail slug', schema: new OAT\Schema(type: 'string')),
7272
], security: [])]
7373
#[BAO\SuccessfulResponse(content: [
7474
new BAO\WrapObjectWithData(CocktailResource::class),
7575
])]
7676
#[BAO\NotFoundResponse]
77-
public function show(string $barId, string $slugOrPublicId): CocktailResource
77+
public function show(string $barId, string $cocktailSlug): CocktailResource
7878
{
7979
$bar = Bar::where('slug', $barId)->orWhere('id', $barId)->firstOrFail();
80-
if (!$bar->is_public) {
80+
if (!$bar->isPublic()) {
8181
abort(404);
8282
}
8383

84-
$cocktail = Cocktail::where('public_id', $slugOrPublicId)
85-
->orWhere('slug', $slugOrPublicId)
84+
$cocktail = Cocktail::where('slug', $cocktailSlug)
8685
->with('ingredients.ingredient', 'ingredients.substitutes.ingredient', 'images', 'tags', 'utensils')
8786
->firstOrFail();
8887

app/Http/Controllers/Public/MenuController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
class MenuController extends Controller
1414
{
15-
#[OAT\Get(path: '/public/{slugOrId}/menu', tags: ['Public'], operationId: 'showPublicBarMenu', description: 'Show a public bar menu details', summary: 'Show public menu', parameters: [
15+
#[OAT\Get(path: '/public/{slugOrId}/menu', tags: ['Public'], operationId: 'showPublicBarMenu', description: 'Show a public bar menu details. The bar must have menu enabled.', summary: 'Show public menu', parameters: [
1616
new OAT\Parameter(name: 'slugOrId', in: 'path', required: true, description: 'Database id or slug of bar', schema: new OAT\Schema(type: 'string')),
1717
], security: [])]
1818
#[BAO\SuccessfulResponse(content: [

app/Http/Resources/BarResource.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public function toArray($request)
9999
$this->relationLoaded('images'),
100100
fn () => ImageResource::collection($this->images)
101101
),
102-
'is_public' => (bool) $this->is_public,
102+
'is_public' => $this->is_public,
103103
];
104104
}
105105
}

app/Models/Bar.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,16 @@ public function isAccessible(): bool
186186
return $this->status !== BarStatusEnum::Deactivated->value;
187187
}
188188

189+
public function isProvisioning(): bool
190+
{
191+
return $this->status === BarStatusEnum::Provisioning->value;
192+
}
193+
194+
public function isPublic(): bool
195+
{
196+
return $this->is_public && $this->isAccessible() && !$this->isProvisioning();
197+
}
198+
189199
public function getIngredientsDirectory(): string
190200
{
191201
return 'ingredients/' . $this->id . '/';

docs/openapi-generated.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5983,12 +5983,12 @@ paths:
59835983
data: { $ref: '#/components/schemas/APIError' }
59845984
type: object
59855985
security: []
5986-
'/public/{slugOrId}/cocktails/{slugOrPublicId}':
5986+
'/public/{slugOrId}/cocktails/{cocktailSlug}':
59875987
get:
59885988
tags:
59895989
- Public
59905990
summary: 'Show cocktail'
5991-
description: 'Show public information about cocktail. If valid public ID is provided it will used, if not it will use cocktail slug.'
5991+
description: 'Show public information about cocktail.'
59925992
operationId: showPublicBarCocktail
59935993
parameters:
59945994
-
@@ -5999,9 +5999,9 @@ paths:
59995999
schema:
60006000
type: string
60016001
-
6002-
name: slugOrPublicId
6002+
name: cocktailSlug
60036003
in: path
6004-
description: 'Cocktail slug or public id (ULID)'
6004+
description: 'Cocktail slug'
60056005
required: true
60066006
schema:
60076007
type: string
@@ -6048,7 +6048,7 @@ paths:
60486048
tags:
60496049
- Public
60506050
summary: 'Show public menu'
6051-
description: 'Show a public bar menu details'
6051+
description: 'Show a public bar menu details. The bar must have menu enabled.'
60526052
operationId: showPublicBarMenu
60536053
parameters:
60546054
-

0 commit comments

Comments
 (0)