Skip to content

Commit

Permalink
feat: introducing graphql code generator #4
Browse files Browse the repository at this point in the history
feat: introducing graphql code generator
  • Loading branch information
Andras-Csanyi authored Jun 24, 2024
2 parents 3b80dc9 + 8042e1e commit c6ef0bc
Show file tree
Hide file tree
Showing 75 changed files with 1,099 additions and 1,318 deletions.
47 changes: 45 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>com.andrascsanyi</groupId>
<artifactId>bean-validation-extensions</artifactId>
<version>0.1.6</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
Expand Down Expand Up @@ -72,11 +77,18 @@
<version>1.5.5.Final</version>
</dependency>

<!-- Test -->

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-suite</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webflux</artifactId>
Expand Down Expand Up @@ -125,20 +137,51 @@
</compilerArgs>
</configuration>
</plugin>

<plugin>
<groupId>io.github.kobylynskyi</groupId>
<artifactId>graphql-codegen-maven-plugin</artifactId>
<version>5.10.0</version>
<executions>
<execution>
<id>document-schema-generation</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<graphqlSchemas>
<rootDir>${project.basedir}/src/main/resources/graphql/document</rootDir>
<includePattern>.*\.graphqls?</includePattern>
<recursive>true</recursive>
</graphqlSchemas>
<outputDir>
${project.build.directory}/generated-sources/graphql/document
</outputDir>
<configurationFiles>
${project.basedir}/schemaConfigs/gql/document.json
</configurationFiles>
</configuration>
</execution>
</executions>
</plugin>

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.4.0</version>
<executions>
<execution>
<id>add-source</id>
<id>add-document-schema-source-folder</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>target/generate-sources</source>
<source>
${project.build.directory}/generate-sources/graphql/document/
</source>
</sources>
</configuration>
</execution>
Expand Down
24 changes: 24 additions & 0 deletions schemaConfigs/gql/document.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"packageName": "com.andrascsanyi.encyclopediagalactica.document.api.graphql.entities",
"modelValidationAnnotation": "@jakarta.validation.constraints.NotNull",
"apiInterfaceStrategy": "DO_NOT_GENERATE",
"addGeneratedAnnotation": true,
"generatedAnnotation": "jakarta.annotation.Generated",
"generateBuilder": true,
"generateJacksonTypeIdResolver": true,
"customAnnotationsMapping": {
"ApplicationInput.id": [
"com.andrascsanyi.beanvalidatorextensions.LongAsStringMustBeZero(groups = {com.andrascsanyi.encyclopediagalactica.document.api.graphql.scenarios.AddApplicationScenario.class})"
],
"ApplicationInput.name": [
"com.andrascsanyi.beanvalidatorextensions.TrimmedNotBlank(groups = {com.andrascsanyi.encyclopediagalactica.document.api.graphql.scenarios.AddApplicationScenario.class})",
"com.andrascsanyi.beanvalidatorextensions.TrimmedNotEmpty(groups = {com.andrascsanyi.encyclopediagalactica.document.api.graphql.scenarios.AddApplicationScenario.class})",
"com.andrascsanyi.beanvalidatorextensions.TrimmedSize(min = 3, max = 255, groups = {com.andrascsanyi.encyclopediagalactica.document.api.graphql.scenarios.AddApplicationScenario.class})"
],
"ApplicationInput.description": [
"com.andrascsanyi.beanvalidatorextensions.TrimmedNotBlank(groups = {com.andrascsanyi.encyclopediagalactica.document.api.graphql.scenarios.AddApplicationScenario.class})",
"com.andrascsanyi.beanvalidatorextensions.TrimmedNotEmpty(groups = {com.andrascsanyi.encyclopediagalactica.document.api.graphql.scenarios.AddApplicationScenario.class})",
"com.andrascsanyi.beanvalidatorextensions.TrimmedSize(min = 3, max = 255, groups = {com.andrascsanyi.encyclopediagalactica.document.api.graphql.scenarios.AddApplicationScenario.class})"
]
}
}

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading

0 comments on commit c6ef0bc

Please sign in to comment.