Skip to content

Commit e2dbfb0

Browse files
frontend display
1 parent c48523c commit e2dbfb0

File tree

3 files changed

+34
-21
lines changed

3 files changed

+34
-21
lines changed

src/LaravelRequestDocs.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,12 @@ public function getControllersInfo(array $onlyMethods): Collection
189189
$controllerName = (new ReflectionClass($controllerFullPath))->getShortName();
190190
}
191191

192-
$pathParameters = $this->routePath->getPathParameters($route);
192+
$pathParameters = [];
193+
$pp = $this->routePath->getPathParameters($route);
194+
// same format as rules
195+
foreach ($pp as $k => $v) {
196+
$pathParameters[$k] = [$v];
197+
}
193198

194199
$doc = new Doc(
195200
$route->uri,

ui/src/components/ApiInfo.tsx

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,25 @@ export default function ApiInfo(props: Props) {
4747
</code>
4848
</h3>
4949
{(Object.keys(lrdDocsItem.path_parameters).length > 0) && (
50-
<h3 className='pt-4'>
51-
<span className='text-sm text-slate-500'>
52-
PATH PARAMETERS
53-
</span>
54-
{(Object.keys(lrdDocsItem.path_parameters).map((rule) => (
55-
<div key={shortid.generate()}>
56-
<ApiInfoRules key={shortid.generate()} mainRule={rule} lrdDocsItem={ lrdDocsItem } />
57-
</div>
58-
)))}
59-
</h3>
50+
<>
51+
<h3 className='pt-4'>
52+
<span className='text-sm text-slate-500'>
53+
PATH PARAMETERS
54+
</span>
55+
</h3>
56+
<div className='pt-4'>
57+
58+
<table className="table table-fixed table-compact w-full">
59+
<tbody>
60+
{Object.keys(lrdDocsItem.path_parameters).map((rule) => (
61+
<ApiInfoRules key={shortid.generate()} mainRule={rule} rules={lrdDocsItem.path_parameters[rule]} />
62+
))}
63+
</tbody>
64+
</table>
65+
</div>
66+
</>
67+
68+
6069
)}
6170

6271
<h3 className='pt-4'>
@@ -74,7 +83,7 @@ export default function ApiInfo(props: Props) {
7483
<table className="table table-fixed table-compact w-full">
7584
<tbody>
7685
{lrdDocsItem.rules && Object.keys(lrdDocsItem.rules).map((rule) => (
77-
<ApiInfoRules key={shortid.generate()} mainRule={rule} lrdDocsItem={lrdDocsItem} />
86+
<ApiInfoRules key={shortid.generate()} mainRule={rule} rules={lrdDocsItem.rules[rule]} />
7887
))}
7988
</tbody>
8089
</table>

ui/src/components/elements/ApiInfoRules.tsx

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
import React from 'react';
22
import { explode } from '../../libs/strings'
33
import shortid from 'shortid';
4-
import type { IAPIInfo } from '../../libs/types'
54
import { ChevronRightIcon, LinkIcon, EnvelopeIcon } from '@heroicons/react/24/outline'
65

76
interface Props {
8-
lrdDocsItem: any,
7+
rules: string[],
98
mainRule: string,
109
}
1110

1211
export default function ApiInfoRules(props: Props) {
13-
const { lrdDocsItem, mainRule } = props
12+
const { rules, mainRule } = props
1413
const StyledRule = (rule: any): JSX.Element => {
1514
const theRule = rule.rule
1615
const split = theRule.split(':')
@@ -83,14 +82,14 @@ export default function ApiInfoRules(props: Props) {
8382
<ChevronRightIcon key={shortid.generate()} className='inline-block w-4 h-4' />
8483
) : (<span key={shortid.generate()}></span>)}
8584
</code>
86-
{lrdDocsItem.rules[mainRule].map((rule) => (
85+
{rules.map((rule) => (
8786
rule.split('|').map((theRule) => (
8887
(theRule == "file" || theRule == "image") ? (
8988
<div key={shortid.generate()} className="block badge badge-success badge-outline ml-4 mt-1 mb-1 rounded-sm title">{theRule}</div>
9089
) : (<span key={shortid.generate()}></span>)
9190
))
9291
))}
93-
{lrdDocsItem.rules[mainRule].map((rule) => (
92+
{rules.map((rule) => (
9493
rule.split('|').map((theRule) => (
9594
(theRule == "required") ? (
9695
<div className='block ml-6' key={shortid.generate()}>
@@ -99,7 +98,7 @@ export default function ApiInfoRules(props: Props) {
9998
) : (<span key={shortid.generate()}></span>)
10099
))
101100
))}
102-
{lrdDocsItem.rules[mainRule].map((rule) => (
101+
{rules.map((rule) => (
103102
rule.split('|').map((theRule) => (
104103
(theRule.startsWith("required_if")) ? (
105104
<div className='block ml-6' key={shortid.generate()}>
@@ -110,7 +109,7 @@ export default function ApiInfoRules(props: Props) {
110109
))}
111110
</th>
112111
<td>
113-
{lrdDocsItem.rules[mainRule].map((rule) => (
112+
{rules.map((rule) => (
114113
rule.split('|').map((theRule) => {
115114
if (theRule == "required") {
116115
return (<span key={shortid.generate()}></span>)
@@ -131,15 +130,15 @@ export default function ApiInfoRules(props: Props) {
131130
return (<span key={shortid.generate()}></span>)
132131
})
133132
))}
134-
{lrdDocsItem.rules[mainRule].map((rule) => (
133+
{rules.map((rule) => (
135134
rule.split('|').map((theRule) => {
136135
if (theRule == "required") {
137136
return (<span key={shortid.generate()}></span>)
138137
}
139138
return (<span key={shortid.generate()}></span>)
140139
})
141140
))}
142-
{lrdDocsItem.rules[mainRule].map((rule) => (
141+
{rules.map((rule) => (
143142
rule.split('|').map((theRule) => {
144143
if (theRule == "required"
145144
|| theRule == "integer"

0 commit comments

Comments
 (0)