Skip to content

Commit

Permalink
[GO] Add go.mod in go-gin-server generator (OpenAPITools#15339)
Browse files Browse the repository at this point in the history
* Add go.mod

* Add test

* Generate import path

* Update samples
  • Loading branch information
gcatanese authored May 3, 2023
1 parent 92bcdea commit 61aadb3
Show file tree
Hide file tree
Showing 7 changed files with 80 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,7 @@ public void processOpts() {
supportingFiles.add(new SupportingFile("routers.mustache", apiPath, "routers.go"));
supportingFiles.add(new SupportingFile("README.mustache", apiPath, "README.md")
.doNotOverwrite());
supportingFiles.add(new SupportingFile("go.mod.mustache", "go.mod"));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module {{gitHost}}/{{gitUserId}}/{{gitRepoId}}{{#isGoSubmodule}}/{{packageName}}{{/isGoSubmodule}}

go 1.19

require github.com/gin-gonic/gin v1.9.0

Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,9 @@ import (
"log"

// WARNING!
// Change this to a fully-qualified import path
// once you place this file into your project.
// For example,
// Pass --git-repo-id and --git-user-id properties when generating the code
//
//sw "github.com/{{{gitUserId}}}/{{{gitRepoId}}}/{{{apiPath}}}"
//
sw "./{{apiPath}}"
sw "{{gitHost}}/{{gitUserId}}/{{gitRepoId}}{{#isGoSubmodule}}/{{packageName}}{{/isGoSubmodule}}/{{apiPath}}"
)

func main() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
/*
* Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)
* Copyright 2018 SmartBear Software
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.openapitools.codegen.goginserver;

import org.openapitools.codegen.*;
import org.openapitools.codegen.config.CodegenConfigurator;
import org.openapitools.codegen.languages.GoClientCodegen;
import org.testng.Assert;
import org.testng.annotations.Test;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class GoGinServerCodegenTest {

@Test
public void verifyGoMod() throws IOException {
File output = Files.createTempDirectory("test").toFile();
output.deleteOnExit();

final CodegenConfigurator configurator = new CodegenConfigurator()
.setGeneratorName("go-gin-server")
.setGitUserId("my-user")
.setGitRepoId("my-repo")
.setPackageName("my-package")
.setInputSpec("src/test/resources/3_0/petstore.yaml")
.setOutputDir(output.getAbsolutePath().replace("\\", "/"));

DefaultGenerator generator = new DefaultGenerator();
List<File> files = generator.opts(configurator.toClientOptInput()).generate();
files.forEach(File::deleteOnExit);

TestUtils.assertFileExists(Paths.get(output + "/go.mod"));
TestUtils.assertFileContains(Paths.get(output + "/go.mod"),
"module github.com/my-user/my-repo");
TestUtils.assertFileContains(Paths.get(output + "/go.mod"),
"require github.com/gin-gonic/gin v1.9.0");
}

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
Dockerfile
api/openapi.yaml
go.mod
go/README.md
go/api_pet.go
go/api_store.go
Expand Down
6 changes: 6 additions & 0 deletions samples/server/petstore/go-gin-api-server/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module github.com/GIT_USER_ID/GIT_REPO_ID

go 1.19

require github.com/gin-gonic/gin v1.9.0

8 changes: 2 additions & 6 deletions samples/server/petstore/go-gin-api-server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,9 @@ import (
"log"

// WARNING!
// Change this to a fully-qualified import path
// once you place this file into your project.
// For example,
// Pass --git-repo-id and --git-user-id properties when generating the code
//
//sw "github.com/GIT_USER_ID/GIT_REPO_ID/go"
//
sw "./go"
sw "github.com/GIT_USER_ID/GIT_REPO_ID/go"
)

func main() {
Expand Down

0 comments on commit 61aadb3

Please sign in to comment.