Skip to content

Commit 0effbae

Browse files
committed
add lumen api.mustache to generate controller & license update & resource dir restructure
1 parent ee024c4 commit 0effbae

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1136
-1163
lines changed

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/LumenServerCodegen.java

Lines changed: 28 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,20 @@
99
public class LumenServerCodegen extends DefaultCodegen implements CodegenConfig {
1010

1111
// source folder where to write the files
12-
protected String sourceFolder = "src";
12+
protected String sourceFolder = "";
13+
14+
public static final String SRC_BASE_PATH = "srcBasePath";
15+
public static final String COMPOSER_VENDOR_NAME = "composerVendorName";
16+
public static final String COMPOSER_PROJECT_NAME = "composerProjectName";
17+
protected String invokerPackage = "Swagger\\Client";
18+
protected String composerVendorName = null;
19+
protected String composerProjectName = null;
20+
protected String packagePath = "SwaggerClient-php";
21+
protected String artifactVersion = null;
22+
protected String srcBasePath = "lib";
1323
protected String apiVersion = "1.0.0";
14-
24+
protected String apiDirName = "Api";
25+
1526
/**
1627
* Configures the type of generator.
1728
*
@@ -46,13 +57,8 @@ public LumenServerCodegen() {
4657
super();
4758

4859
// set the output folder here
49-
outputFolder = "generated-code/lumen";
50-
String packagePath = "lumen";
51-
52-
// modelPackage = packagePath + "\\lib\\Models";
53-
// apiPackage = packagePath + "\\lib";
54-
// // outputFolder = "generated-code" + File.separator + "slim";
55-
// modelTemplateFiles.put("model.mustache", ".php");
60+
outputFolder = "lumen";
61+
String packagePath = "";
5662

5763
/**
5864
* Models. You can write model files using the modelTemplateFiles map.
@@ -75,7 +81,8 @@ public LumenServerCodegen() {
7581

7682

7783
// no api files
78-
apiTemplateFiles.clear();
84+
// apiTemplateFiles.clear();
85+
apiTemplateFiles.put("api.mustache", ".php");
7986

8087
// embeddedTemplateDir = templateDir = "slim";
8188

@@ -115,43 +122,18 @@ public LumenServerCodegen() {
115122
* entire object tree available. If the input file has a suffix of `.mustache
116123
* it will be processed by the template engine. Otherwise, it will be copied
117124
*/
118-
// supportingFiles.add(new SupportingFile("index.mustache", packagePath, "index.php"));
119-
// supportingFiles.add(new SupportingFile("routes.mustache", packagePath, "routes.php"));
120-
121-
supportingFiles.add(new SupportingFile("composer.json", packagePath, "composer.json"));
125+
supportingFiles.add(new SupportingFile("composer.mustache", packagePath, "composer.json"));
122126
supportingFiles.add(new SupportingFile("readme.md", packagePath, "readme.md"));
123-
supportingFiles.add(new SupportingFile("artisan", packagePath, "artisan"));
124-
// supportingFiles.add(new SupportingFile("server.php", packagePath, "server.php"));
125-
126-
supportingFiles.add(new SupportingFile("bootstrap" + File.separator + "app.php", packagePath + File.separator + "bootstrap", "app.php"));
127-
128-
supportingFiles.add(new SupportingFile("public" + File.separator + "index.php", packagePath + File.separator + "public", "index.php"));
129-
130-
supportingFiles.add(new SupportingFile("app" + File.separator + "User.php", packagePath + File.separator + "app", "User.php"));
131-
supportingFiles.add(new SupportingFile("app" + File.separator + "Console" + File.separator + "Kernel.php", packagePath + File.separator + "app" + File.separator + "Console", "Kernel.php"));
132-
supportingFiles.add(new SupportingFile("app" + File.separator + "Exceptions" + File.separator + "Handler.php", packagePath + File.separator + "app" + File.separator + "Exceptions", "Handler.php"));
133-
// supportingFiles.add(new SupportingFile("app" + File.separator + "Http" + File.separator + "Kernel.php", packagePath + File.separator + "app" + File.separator + "Http", "Kernel.php"));
134-
supportingFiles.add(new SupportingFile("app" + File.separator + "Http" + File.separator + "routes.mustache", packagePath + File.separator + "app" + File.separator + "Http", "routes.php"));
135-
136-
supportingFiles.add(new SupportingFile("app" + File.separator + "Http" + File.separator + "Controllers" + File.separator + "Controller.php", packagePath + File.separator + "app" + File.separator + "Http" + File.separator + "Controllers" + File.separator, "Controller.php"));
137-
supportingFiles.add(new SupportingFile("app" + File.separator + "Http" + File.separator + "Controllers" + File.separator + "ExampleController.php", packagePath + File.separator + "app" + File.separator + "Http" + File.separator + "Controllers" + File.separator, "ExampleController.php"));
138-
// supportingFiles.add(new SupportingFile("app" + File.separator + "Http" + File.separator + "Controllers" + File.separator + "Auth" + File.separator + "AuthController.php", packagePath + File.separator + "app" + File.separator + "Http" + File.separator + "Controllers" + File.separator + "Auth" + File.separator, "AuthController.php"));
139-
// supportingFiles.add(new SupportingFile("app" + File.separator + "Http" + File.separator + "Controllers" + File.separator + "Auth" + File.separator + "PasswordController.php", packagePath + File.separator + "app" + File.separator + "Http" + File.separator + "Controllers" + File.separator + "Auth" + File.separator, "PasswordController.php"));
127+
supportingFiles.add(new SupportingFile("app.php", packagePath + File.separator + "bootstrap", "app.php"));
128+
supportingFiles.add(new SupportingFile("index.php", packagePath + File.separator + "public", "index.php"));
129+
supportingFiles.add(new SupportingFile("User.php", packagePath + File.separator + "app", "User.php"));
130+
supportingFiles.add(new SupportingFile("Kernel.php", packagePath + File.separator + "app" + File.separator + "Console", "Kernel.php"));
131+
supportingFiles.add(new SupportingFile("Handler.php", packagePath + File.separator + "app" + File.separator + "Exceptions", "Handler.php"));
132+
supportingFiles.add(new SupportingFile("routes.mustache", packagePath + File.separator + "app" + File.separator + "Http", "routes.php"));
140133

141-
supportingFiles.add(new SupportingFile("app" + File.separator + "Http" + File.separator + "Middleware" + File.separator + "Authenticate.php", packagePath + File.separator + "app" + File.separator + "Http" + File.separator + "Middleware" + File.separator, "Authenticate.php"));
142-
supportingFiles.add(new SupportingFile("app" + File.separator + "Http" + File.separator + "Middleware" + File.separator + "ExampleMiddleware.php", packagePath + File.separator + "app" + File.separator + "Http" + File.separator + "Middleware" + File.separator, "ExampleMiddleware.php"));
143-
// supportingFiles.add(new SupportingFile("app" + File.separator + "Http" + File.separator + "Middleware" + File.separator + "RedirectIfAuthenticated.php", packagePath + File.separator + "app" + File.separator + "Http" + File.separator + "Middleware" + File.separator, "RedirectIfAuthenticated.php"));
144-
// supportingFiles.add(new SupportingFile("app" + File.separator + "Http" + File.separator + "Middleware" + File.separator + "VerifyCsrfToken.php", packagePath + File.separator + "app" + File.separator + "Http" + File.separator + "Middleware" + File.separator, "VerifyCsrfToken.php"));
134+
supportingFiles.add(new SupportingFile("Controller.php", packagePath + File.separator + "app" + File.separator + "Http" + File.separator + "Controllers" + File.separator, "Controller.php"));
135+
supportingFiles.add(new SupportingFile("Authenticate.php", packagePath + File.separator + "app" + File.separator + "Http" + File.separator + "Middleware" + File.separator, "Authenticate.php"));
145136

146-
// supportingFiles.add(new SupportingFile("app" + File.separator + "Http" + File.separator + "Requests" + File.separator + "Request.php", packagePath + File.separator + "app" + File.separator + "Http" + File.separator + "Requests" + File.separator, "Request.php"));
147-
148-
supportingFiles.add(new SupportingFile("app" + File.separator + "Providers" + File.separator + "AppServiceProvider.php", packagePath + File.separator + "app" + File.separator + "Providers", "AppServiceProvider.php"));
149-
supportingFiles.add(new SupportingFile("app" + File.separator + "Providers" + File.separator + "AuthServiceProvider.php", packagePath + File.separator + "app" + File.separator + "Providers", "AuthServiceProvider.php"));
150-
supportingFiles.add(new SupportingFile("app" + File.separator + "Providers" + File.separator + "EventServiceProvider.php", packagePath + File.separator + "app" + File.separator + "Providers", "EventServiceProvider.php"));
151-
// supportingFiles.add(new SupportingFile("app" + File.separator + "Providers" + File.separator + "RouteServiceProvider.php", packagePath + File.separator + "app" + File.separator + "Providers", "RouteServiceProvider.php"));
152-
153-
// supportingFiles.add(new SupportingFile("config" + File.separator + "app.php", packagePath + File.separator + "config" + File.separator, "app.php"));
154-
155137
/**
156138
* Language Specific Primitives. These types will not trigger imports by
157139
* the client generator
@@ -188,7 +170,8 @@ public String modelFileFolder() {
188170
*/
189171
@Override
190172
public String apiFileFolder() {
191-
return outputFolder + "/" + sourceFolder + "/" + apiPackage().replace('.', File.separatorChar);
173+
return outputFolder + "/app/Http/controllers";
174+
// return outputFolder + "/" + sourceFolder + "/" + apiPackage().replace('.', File.separatorChar);
192175
}
193176

194177
/**
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
<?php
2+
3+
{{>licenseInfo}}
4+
5+
namespace App\Http\Controllers;
6+
7+
use Illuminate\Support\Facades\Request;
8+
9+
{{#operations}}class {{classname}} extends Controller
10+
{
11+
/**
12+
* Constructor
13+
*/
14+
public function __construct()
15+
{
16+
}
17+
18+
{{#operation}}
19+
/**
20+
* Operation {{{operationId}}}
21+
*
22+
* {{{summary}}}.
23+
*
24+
{{#pathParams}} * @param {{dataType}} ${{paramName}} {{description}} {{#required}}(required){{/required}}{{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}
25+
{{/pathParams}} *
26+
* @return Http response
27+
*/
28+
public function {{operationId}}({{#pathParams}}${{paramName}}{{#hasMore}}, {{/hasMore}}{{/pathParams}})
29+
{
30+
$input = Request::all();
31+
32+
//path params validation
33+
{{#pathParams}}
34+
{{#hasValidation}}
35+
{{#maxLength}}
36+
if (strlen(${{paramName}}]) > {{maxLength}}) {
37+
throw new \InvalidArgumentException('invalid length for ${{paramName}} when calling {{classname}}.{{operationId}}, must be smaller than or equal to {{maxLength}}.');
38+
}
39+
{{/maxLength}}
40+
{{#minLength}}
41+
if (strlen(${{paramName}}]) < {{minLength}}) {
42+
throw new \InvalidArgumentException('invalid length for ${{paramName}} when calling {{classname}}.{{operationId}}, must be bigger than or equal to {{minLength}}.');
43+
}
44+
{{/minLength}}
45+
{{#maximum}}
46+
if (${{paramName}}] > {{maximum}}) {
47+
throw new \InvalidArgumentException('invalid value for ${{paramName}} when calling {{classname}}.{{operationId}}, must be smaller than or equal to {{maximum}}.');
48+
}
49+
{{/maximum}}
50+
{{#minimum}}
51+
if (${{paramName}}] < {{minimum}}) {
52+
throw new \InvalidArgumentException('invalid value for ${{paramName}} when calling {{classname}}.{{operationId}}, must be bigger than or equal to {{minimum}}.');
53+
}
54+
{{/minimum}}
55+
{{#pattern}}
56+
if (!preg_match("{{pattern}}", ${{paramName}}])) {
57+
throw new \InvalidArgumentException('invalid value for ${{paramName}} when calling {{classname}}.{{operationId}}, must conform to the pattern {{pattern}}.');
58+
}
59+
{{/pattern}}
60+
{{/hasValidation}}
61+
{{/pathParams}}
62+
63+
64+
//not path params validation
65+
{{#allParams}}
66+
{{^pathParams}}
67+
{{#required}}
68+
if (!isset($input['{{paramName}}'])) {
69+
throw new \InvalidArgumentException('Missing the required parameter ${{paramName}} when calling {{operationId}}');
70+
}
71+
{{/required}}
72+
{{#hasValidation}}
73+
{{#maxLength}}
74+
if (strlen($input['{{paramName}}']) > {{maxLength}}) {
75+
throw new \InvalidArgumentException('invalid length for ${{paramName}} when calling {{classname}}.{{operationId}}, must be smaller than or equal to {{maxLength}}.');
76+
}
77+
{{/maxLength}}
78+
{{#minLength}}
79+
if (strlen($input['{{paramName}}']) < {{minLength}}) {
80+
throw new \InvalidArgumentException('invalid length for ${{paramName}} when calling {{classname}}.{{operationId}}, must be bigger than or equal to {{minLength}}.');
81+
}
82+
{{/minLength}}
83+
{{#maximum}}
84+
if ($input['{{paramName}}'] > {{maximum}}) {
85+
throw new \InvalidArgumentException('invalid value for ${{paramName}} when calling {{classname}}.{{operationId}}, must be smaller than or equal to {{maximum}}.');
86+
}
87+
{{/maximum}}
88+
{{#minimum}}
89+
if ($input['{{paramName}}'] < {{minimum}}) {
90+
throw new \InvalidArgumentException('invalid value for ${{paramName}} when calling {{classname}}.{{operationId}}, must be bigger than or equal to {{minimum}}.');
91+
}
92+
{{/minimum}}
93+
{{#pattern}}
94+
if (!preg_match("{{pattern}}", $input['{{paramName}}'])) {
95+
throw new \InvalidArgumentException('invalid value for ${{paramName}} when calling {{classname}}.{{operationId}}, must conform to the pattern {{pattern}}.');
96+
}
97+
{{/pattern}}
98+
{{/hasValidation}}
99+
${{paramName}} = $input['{{paramName}}'];
100+
101+
{{/pathParams}}
102+
{{/allParams}}
103+
104+
return response('How about implementing {{nickname}} as a {{httpMethod}} method ?');
105+
}
106+
{{/operation}}
107+
}
108+
{{/operations}}

modules/swagger-codegen/src/main/resources/lumen/bootstrap/app.php renamed to modules/swagger-codegen/src/main/resources/lumen/app.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
realpath(__DIR__.'/../')
4242
);
4343

44-
// $app->withFacades();
44+
$app->withFacades();
4545

4646
// $app->withEloquent();
4747

@@ -66,8 +66,6 @@
6666
App\Console\Kernel::class
6767
);
6868

69-
class_alias('Illuminate\Support\Facades\Request', 'Request'); //to use the Reqesut facade
70-
7169
/*
7270
|--------------------------------------------------------------------------
7371
| Register Middleware

modules/swagger-codegen/src/main/resources/lumen/app/Console/Commands/.gitkeep

Whitespace-only changes.

modules/swagger-codegen/src/main/resources/lumen/app/Http/Controllers/ExampleController.php

Lines changed: 0 additions & 36 deletions
This file was deleted.

0 commit comments

Comments
 (0)