diff --git a/pom.xml b/pom.xml
index c410bd8..aabc962 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
TINetworking-swagger-codegen
jar
TINetworking-swagger-codegen
- 1.1.8
+ 1.2.0
diff --git a/src/main/java/ru/touchin/codegen/TINetworkingCodegen.java b/src/main/java/ru/touchin/codegen/TINetworkingCodegen.java
index 21a5527..e0ed9cc 100644
--- a/src/main/java/ru/touchin/codegen/TINetworkingCodegen.java
+++ b/src/main/java/ru/touchin/codegen/TINetworkingCodegen.java
@@ -208,9 +208,9 @@ public class TINetworkingCodegen extends DefaultCodegenConfig {
sourceFolder,
projectName + "+Servers.swift"));
- supportingFiles.add(new SupportingFile("Plugins.mustache",
+ supportingFiles.add(new SupportingFile("OpenAPI.mustache",
sourceFolder,
- "Plugins.swift"));
+ projectName + "+OpenAPI.swift"));
copyFistAllOfProperties = true;
}
diff --git a/src/main/resources/handlebars/TINetworking/OpenAPI.mustache b/src/main/resources/handlebars/TINetworking/OpenAPI.mustache
new file mode 100644
index 0000000..5261b68
--- /dev/null
+++ b/src/main/resources/handlebars/TINetworking/OpenAPI.mustache
@@ -0,0 +1,17 @@
+import TINetworking
+
+public extension OpenAPI {
+ enum SecurityNames: String, Hashable {
+ {{#authMethods}}
+ case {{name}}
+ {{/authMethods}}
+ }
+
+ static var {{projectName}}: Self {
+ .init(defaultServer: .default, security: [
+ {{#authMethods}}
+ "{{name}}": {{#isApiKey}}.apiKey({{#isKeyInHeader}}.header{{/isKeyInHeader}}{{#isKeyInQuery}}.query{{/isKeyInQuery}}, parameterName: "{{keyParamName}}"){{/isApiKey}}{{#isBearer}}.http(.bearer){{/isBearer}}{{#isBasic}}.http(.basic){{/isBasic}}{{#hasMore}},{{/hasMore}}
+ {{/authMethods}}
+ ])
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/handlebars/TINetworking/Plugins.mustache b/src/main/resources/handlebars/TINetworking/Plugins.mustache
deleted file mode 100644
index 6bf1d89..0000000
--- a/src/main/resources/handlebars/TINetworking/Plugins.mustache
+++ /dev/null
@@ -1,26 +0,0 @@
-import TIMoyaNetworking
-import Alamofire
-
-{{#authMethods}}
-{{#isApiKey}}
-{{#isKeyInHeader}}
-public struct {{name}}Plugin: AdditionalHeadersPlugin {
- public typealias HeaderValueProvider = () -> String?
-
- private let headerValueProvider: HeaderValueProvider
-
- public init(headerValueProvider: @escaping HeaderValueProvider) {
- self.headerValueProvider = headerValueProvider
- }
-
- public var additionalHeaders: HTTPHeaders {
- guard let value = headerValueProvider() else {
- return HTTPHeaders()
- }
-
- return HTTPHeaders(["{{{keyParamName}}}": value])
- }
-}
-{{/isKeyInHeader}}
-{{/isApiKey}}
-{{/authMethods}}
diff --git a/src/main/resources/handlebars/TINetworking/Servers.mustache b/src/main/resources/handlebars/TINetworking/Servers.mustache
index 7196a40..aa238c7 100644
--- a/src/main/resources/handlebars/TINetworking/Servers.mustache
+++ b/src/main/resources/handlebars/TINetworking/Servers.mustache
@@ -1,9 +1,3 @@
-// {{projectName}}+Servers.swift
-//
-// Generated by swagger-codegen
-// https://github.com/swagger-api/swagger-codegen
-//
-
import TINetworking
public extension Server {
diff --git a/src/main/resources/handlebars/TINetworking/api.mustache b/src/main/resources/handlebars/TINetworking/api.mustache
index 2ec1986..e338d29 100644
--- a/src/main/resources/handlebars/TINetworking/api.mustache
+++ b/src/main/resources/handlebars/TINetworking/api.mustache
@@ -1,9 +1,4 @@
-{{#operations}}//
-// {{classname}}.swift
-//
-// Generated by swagger-codegen
-// https://github.com/swagger-api/swagger-codegen
-//
+{{#operations}}
import Alamofire
import TINetworking
@@ -40,16 +35,16 @@ public extension EndpointRequest {
- parameter {{paramName}}: {{description}} {{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}
{{/parameters}}
*/
- static func {{operationId}}({{#parameters}}{{paramName}}: {{#isEnum}}{{#isContainer}}{{{dataType}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{#hasMore}}, {{/hasMore}}{{/parameters}}{{#hasParams}}, {{/hasParams}}server: Server? = nil) -> EndpointRequest<{{#parameters}}{{#isBodyParam}}{{{dataType}}}{{/isBodyParam}}{{/parameters}}{{^hasBodyParam}}Nothing{{/hasBodyParam}}, {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Nothing{{/returnType}}> {
+ static func {{operationId}}({{#parameters}}{{paramName}}: {{#isEnum}}{{#isContainer}}{{{dataType}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{#hasMore}}, {{/hasMore}}{{/parameters}}{{#hasParams}}, {{/hasParams}}server: Server? = nil, security: [[String]]? = nil) -> EndpointRequest<{{#parameters}}{{#isBodyParam}}{{{dataType}}}{{/isBodyParam}}{{/parameters}}{{^hasBodyParam}}Nothing{{/hasBodyParam}}, {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Nothing{{/returnType}}> {
.init(templatePath: "{{{path}}}",
method: .init(rawValue: "{{httpMethod}}"),
body: {{#hasBodyParam}}body{{/hasBodyParam}}{{^hasBodyParam}}nil{{/hasBodyParam}},
- {{#hasQueryParams}}
+ {{#if queryParams}}
queryParameters: [
{{#each queryParams}}
"{{{this.baseName}}}": .init(value: {{{this.paramName}}}, allowEmptyValue: {{#this.required}}false{{/this.required}}{{^this.required}}true{{/this.required}}),
{{/each}}],
- {{/hasQueryParams}}
+ {{/if}}
{{#hasPathParams}}
pathParameters: [
{{#each pathParams}}
@@ -72,6 +67,7 @@ public extension EndpointRequest {
{{/each}}],
{{/hasCookieParams}}
acceptableStatusCodes: [{{contentExtensions.x-codegen-acceptable-status-codes}}],
+ security: security ?? [{{#if authMethods}}[{{/if}}{{#authMethods}}"{{name}}"{{#hasMore}}, {{/hasMore}}{{/authMethods}}{{#if authMethods}}]{{/if}}], // note: OR requirement is not supported by swagger-codegen
server: server)
}
{{/contents}}
diff --git a/src/main/resources/handlebars/TINetworking/model.mustache b/src/main/resources/handlebars/TINetworking/model.mustache
index 88554d0..9743476 100644
--- a/src/main/resources/handlebars/TINetworking/model.mustache
+++ b/src/main/resources/handlebars/TINetworking/model.mustache
@@ -1,9 +1,4 @@
-{{#models}}{{#model}}//
-// {{classname}}.swift
-//
-// Generated by swagger-codegen
-// https://github.com/swagger-api/swagger-codegen
-//
+{{#models}}{{#model}}
import Foundation
import TIFoundationUtils