Skip to content

Commit

Permalink
Merge pull request #129 from Lomkit/fix/bug_documentation-routes
Browse files Browse the repository at this point in the history
🐛 documentation routes
  • Loading branch information
GautierDele authored Jul 10, 2024
2 parents c5d525f + 7573bf1 commit 2e004b9
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 34 deletions.
23 changes: 11 additions & 12 deletions src/Documentation/Schemas/OpenAPI.php
Original file line number Diff line number Diff line change
Expand Up @@ -265,18 +265,17 @@ public function generatePaths()
$controller = $route->getController();

if ($controller instanceof Controller) {
$path = match (Str::afterLast($route->getName(), '.')) {
'details' => (new Path())->generateDetailAndDestroy($controller),
'search' => (new Path())->generateSearch($controller),
'mutate' => (new Path())->generateMutate($controller),
'operate' => (new Path())->generateActions($controller),
'restore' => (new Path())->generateRestore($controller),
'forceDelete' => (new Path())->generateForceDelete($controller),
default => null
};

if (!is_null($path)) {
$paths['/'.$route->uri()] = $path;
switch ($actionMethod = $route->getActionMethod()) {
case 'mutate':
case 'search':
case 'operate':
case 'restore':
case 'forceDelete':
case 'details':
case 'destroy':
$path = $paths['/'.$route->uri()] ?? new Path();
$paths['/'.$route->uri()] = $path->{'generate'.Str::ucfirst($actionMethod)}($controller);
break;
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/Documentation/Schemas/Operation.php
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ public function generate(): Schema
*
* @return Operation
*/
public function generateDetail(Controller $controller): Operation
public function generateDetails(Controller $controller): Operation
{
return $controller->generateDocumentationDetailOperation(
$this
Expand Down Expand Up @@ -267,7 +267,7 @@ public function generateMutate(Controller $controller): Operation
*
* @return Operation
*/
public function generateActions(Controller $controller): Operation
public function generateOperate(Controller $controller): Operation
{
return $controller->generateDocumentationActionsOperation(
$this
Expand Down
46 changes: 26 additions & 20 deletions src/Documentation/Schemas/Path.php
Original file line number Diff line number Diff line change
Expand Up @@ -380,24 +380,35 @@ public function generate(): Path
}

/**
* Generates a Path schema with operations for retrieving resource details and performing resource deletion.
* Generates a Path schema with operations for performing resource deletion.
*
* @param Controller $controller The controller instance used for generating documentation.
*
* @return Path
*/
public function generateDetailAndDestroy(Controller $controller): Path
public function generateDestroy(Controller $controller): Path
{
return $this
->withGet(
(new Operation())
->generateDetail($controller)
)
->withDelete(
(new Operation())
->generateDestroy($controller)
)
->generate();
);
}

/**
* Generates a Path schema with operations for retrieving resource details.
*
* @param Controller $controller The controller instance used for generating documentation.
*
* @return Path
*/
public function generateDetails(Controller $controller): Path
{
return $this
->withGet(
(new Operation())
->generateDetails($controller)
);
}

/**
Expand All @@ -413,8 +424,7 @@ public function generateSearch(Controller $controller): Path
->withPost(
(new Operation())
->generateSearch($controller)
)
->generate();
);
}

/**
Expand All @@ -430,8 +440,7 @@ public function generateMutate(Controller $controller): Path
->withPost(
(new Operation())
->generateMutate($controller)
)
->generate();
);
}

/**
Expand All @@ -441,12 +450,12 @@ public function generateMutate(Controller $controller): Path
*
* @return Path
*/
public function generateActions(Controller $controller): Path
public function generateOperate(Controller $controller): Path
{
return $this
->withPost(
(new Operation())
->generateActions($controller)
->generateOperate($controller)
)
->withParameters(
[
Expand All @@ -462,8 +471,7 @@ public function generateActions(Controller $controller): Path
->withRequired()
->generate(),
]
)
->generate();
);
}

/**
Expand All @@ -479,8 +487,7 @@ public function generateRestore(Controller $controller): Path
->withPost(
(new Operation())
->generateRestore($controller)
)
->generate();
);
}

/**
Expand All @@ -496,7 +503,6 @@ public function generateForceDelete(Controller $controller): Path
->withDelete(
(new Operation())
->generateForceDelete($controller)
)
->generate();
);
}
}

0 comments on commit 2e004b9

Please sign in to comment.