diff --git a/.github/workflows/nextjs.yml b/.github/workflows/nextjs.yml new file mode 100644 index 0000000..322116d --- /dev/null +++ b/.github/workflows/nextjs.yml @@ -0,0 +1,32 @@ +on: [push] + +name: "CI Node" + +jobs: + test: + name: Test + + runs-on: ubuntu-latest + + strategy: + matrix: + node-versions: [16, 18] + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-versions }} + + - name: NPM Install + working-directory: ./ui + run: npm install + + - name: Build, lint and export + working-directory: ./ui + run: npm run export + + + diff --git a/.github/workflows/phptest.yml b/.github/workflows/phptest.yml index a672354..39288bb 100644 --- a/.github/workflows/phptest.yml +++ b/.github/workflows/phptest.yml @@ -1,6 +1,6 @@ on: [push] -name: "CI" +name: "CI PHP" jobs: test: diff --git a/.gitignore b/.gitignore index 99e05e4..40f3206 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ node_modules .php-cs-fixer.cache .DS_Store _ide_helper.php +dist diff --git a/resources/dist/app.js b/resources/dist/app.js deleted file mode 100644 index 2a2392b..0000000 --- a/resources/dist/app.js +++ /dev/null @@ -1 +0,0 @@ -console.log("test") diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index 3dfb299..2e611dc 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -1,759 +1 @@ - - -
- - - -HTTP Method | -{{$doc['httpMethod']}} | -
URL | -- @{{window.location.origin}}/{{$doc['uri']}} - | -
Controller | -{{$doc['controller_full_path']}} | -
Controller Method | -{{"@" .$doc['method']}} | -
Middleware {{ $loop->index + 1 }} | -{{$middleware}} | -
No. | -Attributes | -Type | -Nullable | -Bail | -Rules | -
---|---|---|---|---|---|
{{$loop->index+1}} | -- {{$attribute}} - @foreach ($rules as $rule) - @if (str_contains($rule, 'required')) - *required - @endif - @endforeach - | -- @foreach ($rules as $rule) - @if (str_contains($rule, 'integer')) - Integer - @endif - @if (str_contains($rule, 'numeric')) - Numeric - @endif - @if (str_contains($rule, 'string')) - String - @endif - @if (str_contains($rule, 'json')) - JSON - @endif - @if (str_contains($rule, 'array')) - Array - @endif - @if (str_contains($rule, 'date')) - Date - @endif - @if (str_contains($rule, 'boolean')) - Boolean - @endif - @if (str_contains($rule, 'file') || str_contains($rule, 'image')) - File - @endif - @endforeach - | -- @foreach ($rules as $rule) - @if (str_contains($rule, 'nullable')) - Nullable - @endif - @endforeach - | -- @foreach ($rules as $rule) - @if (str_contains($rule, 'bail')) - Bail - @endif - @endforeach - | -
-
- @foreach ($rules as $rule)
- @foreach (explode('|', $rule) as $r)
- @if (!in_array($r, ['required', 'integer', 'string', 'boolean', 'array', 'nullable', 'bail', 'file', 'image', 'numeric']))
- {{$r}}
- @if (!$loop->last)
- |
- @endif
- @endif
- @endforeach
- @endforeach
-
- |
-
Enter your request URL with query params
-JSON body for the POST|PUT|DELETE request
-- Response status, code and time. -
- -Status | -- - SUCCESS - - - ERROR - - | -
Status Code | -- - - - - | -
Memory Usage | -- - - | -
Response Time | -- - - | -
- Response headers. -
-Response from the server
-- No SQL queries executed for this request. -
-- SQL queries executed for this request. -
Total Queries | -- - | -
Total Query time | -- - ms - - | -
- SQL queries -
-@{{index+1}}. - - @{{query.time}}ms - -
-
+ curl https://api.laravel-request-docs.com/v1/sample
+
+ + { ++ ) +} \ No newline at end of file diff --git a/ui/components/APIParamTable.tsx b/ui/components/APIParamTable.tsx new file mode 100644 index 0000000..0a6c4e1 --- /dev/null +++ b/ui/components/APIParamTable.tsx @@ -0,0 +1,73 @@ +import React from "react" +import { AdjustmentsHorizontalIcon } from "@heroicons/react/24/outline" + +import Table from "./ui/Table" + +export interface APIParamTableProps { + params: IAPIRule; +} + +const RuleNames = { + required: ["required"], + types: ["string", "integer", "numeric", "array", "boolean"], +} + +interface IRules { + required?: boolean, + type?: string[], + rules?: string[], +} + +function getRules(ruleStr: string): IRules { + const rules = ruleStr.split("|") + + return { + required: rules.findIndex((val) => RuleNames.required.includes(val)) >= 0, + type: rules.filter((val) => RuleNames.types.includes(val)), + rules: rules.filter((val) => ![...RuleNames.required, ...RuleNames.types].includes(val)) + } +} + +export default function APIParamTable({ params }: APIParamTableProps) { + const rules = Object.keys(params) + return ( +{children} + } +