Skip to content

Commit 445170f

Browse files
authored
Merge pull request #35 from KamilAdd-Byte/develop
Develop
2 parents be5cc01 + 72957a1 commit 445170f

File tree

9 files changed

+78
-6
lines changed

9 files changed

+78
-6
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,10 @@ To run the tests for the application, use Gradle:
9090
./gradlew test
9191
```
9292

93+
### Swagger documentation API
94+
95+
http://localhost:8090/swagger-ui/index.html
96+
9397
## License
9498

9599
This project is licensed under the MIT License.

build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ dependencies {
7373
implementation 'org.modelmapper:modelmapper:3.2.2'
7474
implementation 'org.hibernate.validator:hibernate-validator:8.0.1.Final'
7575
implementation 'org.glassfish:jakarta.el:4.0.2'
76+
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.4'
77+
implementation 'org.springdoc:springdoc-openapi-ui:1.8.0'
7678
testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2'
7779
testImplementation 'org.mockito:mockito-core:4.5.1'
7880
testImplementation 'org.mockito:mockito-junit-jupiter:4.5.1'
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package pl.commit.craft.config;
2+
3+
import org.springdoc.core.GroupedOpenApi;
4+
import org.springframework.context.annotation.Bean;
5+
import org.springframework.context.annotation.Configuration;
6+
7+
@Configuration
8+
public class OpenApiConfig {
9+
10+
@Bean
11+
public GroupedOpenApi publicApi() {
12+
return GroupedOpenApi.builder()
13+
.group("public-api")
14+
.pathsToMatch("/api/**")
15+
.build();
16+
}
17+
}

src/main/java/pl/commit/craft/controller/CommitTranslateController.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package pl.commit.craft.controller;
22

3+
import io.swagger.v3.oas.annotations.Operation;
34
import org.springframework.web.bind.annotation.*;
45
import pl.commit.craft.service.CommitTranslateService;
56

@@ -13,8 +14,13 @@ public CommitTranslateController(CommitTranslateService commitTranslateService)
1314
this.commitTranslateService = commitTranslateService;
1415
}
1516

17+
@Operation(
18+
summary = "Generate commit translation",
19+
description = "Generates a translated commit message based on the provided request information."
20+
)
1621
@PostMapping("/craft")
17-
public String generateCommit(@RequestBody CommitTranslateRequest commitTranslateRequest) {
22+
public String generateCommit(
23+
@RequestBody CommitTranslateRequest commitTranslateRequest) {
1824
return commitTranslateService.generateTranslateCommit(
1925
commitTranslateRequest.major(),
2026
commitTranslateRequest.type(),

src/main/java/pl/commit/craft/flow/CommitFlowController.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package pl.commit.craft.flow;
22

3+
import io.swagger.v3.oas.annotations.Operation;
34
import org.springframework.web.bind.annotation.PostMapping;
45
import org.springframework.web.bind.annotation.RequestBody;
56
import org.springframework.web.bind.annotation.RequestMapping;
@@ -16,6 +17,10 @@ public CommitFlowController(CommitTranslateService commitTranslateService) {
1617
this.commitTranslateService = commitTranslateService;
1718
}
1819

20+
@Operation(
21+
summary = "Generate a commit message based on the provided commit flow data",
22+
description = "This endpoint receives commit flow details and generates the corresponding commit message."
23+
)
1924
@PostMapping("/craft")
2025
public String generateCommit(@RequestBody CommitFlowRequest commitFlowRequest) {
2126
return commitTranslateService.generateFlowCommit(

src/main/java/pl/commit/craft/quick/CommitQuickController.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package pl.commit.craft.quick;
22

3+
import io.swagger.v3.oas.annotations.Operation;
4+
import io.swagger.v3.oas.annotations.Parameter;
5+
import io.swagger.v3.oas.annotations.tags.Tag;
36
import lombok.RequiredArgsConstructor;
47
import org.springframework.web.bind.annotation.PostMapping;
58
import org.springframework.web.bind.annotation.RequestBody;
@@ -9,12 +12,21 @@
912
@RestController
1013
@RequestMapping("/api/v1/commit-quick")
1114
@RequiredArgsConstructor
15+
@Tag(name = "Commit Quick Controller", description = "Very quick commit audit or PR review")
1216
public class CommitQuickController {
1317

1418
final CommitQuickService commitQuickService;
1519

20+
@Operation(
21+
summary = "Generate a quick commit message based on the provided details",
22+
description = "This endpoint receives the commit details and generates a quick commit message."
23+
)
1624
@PostMapping("/craft")
17-
public String generateCommit(@RequestBody CommitQuickRequest commitQuickRequest) {
25+
public String generateCommit(
26+
@RequestBody @Parameter(
27+
description = "Request body containing the commit details, including topic scope and Git command flag. Actual use *audit* message - Audit fix, *fix*: message - Pull request comments improved, *test*: message -Fixed tests",
28+
required = true
29+
) CommitQuickRequest commitQuickRequest) {
1830
return commitQuickService.generateQuickCommit(
1931
commitQuickRequest.topicScope(),
2032
commitQuickRequest.isGitCommand()

src/main/java/pl/commit/craft/template/CommitCraftTemplateController.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package pl.commit.craft.template;
22

3+
import io.swagger.v3.oas.annotations.Operation;
4+
import io.swagger.v3.oas.annotations.responses.ApiResponse;
35
import lombok.RequiredArgsConstructor;
46
import org.springframework.http.ResponseEntity;
57
import org.springframework.web.bind.annotation.*;
@@ -14,12 +16,24 @@ public class CommitCraftTemplateController {
1416

1517
private final CommitTemplateService commitTemplateService;
1618

19+
@Operation(
20+
summary = "Get all commit templates",
21+
description = "Fetches a list of all available commit craft templates."
22+
)
1723
@GetMapping("/all")
1824
public ResponseEntity<List<CommitCraftTemplate>> getAllTemplates() throws IOException {
1925
List<CommitCraftTemplate> templates = commitTemplateService.getAllTemplates();
2026
return ResponseEntity.ok(templates);
2127
}
2228

29+
@Operation(
30+
summary = "Create a dedicated commit template",
31+
description = "Creates a new dedicated commit template if the pattern and model scope are valid.",
32+
responses = {
33+
@ApiResponse(responseCode = "200", description = "Template added successfully"),
34+
@ApiResponse(responseCode = "400", description = "Template already exists")
35+
}
36+
)
2337
@PostMapping("/dedicated")
2438
public ResponseEntity<String> createDedicatedTemplate(@RequestBody CommitCraftTemplate template) throws IOException {
2539
boolean patternAndModelScope = CommitDedicatedTemplateValidator.validatePatternAndModelScope(template);
@@ -30,12 +44,26 @@ public ResponseEntity<String> createDedicatedTemplate(@RequestBody CommitCraftTe
3044
return ResponseEntity.badRequest().body("Template already exists.");
3145
}
3246

47+
@Operation(
48+
summary = "Remove a commit template",
49+
description = "Removes a dedicated commit template by name.",
50+
responses = {
51+
@ApiResponse(responseCode = "200", description = "Template removed successfully")
52+
}
53+
)
3354
@DeleteMapping("/removed/{name}")
3455
public ResponseEntity<String> addTemplate(@PathVariable("name") String name) throws IOException {
3556
commitTemplateService.removeDedicatedTemplate(name);
3657
return ResponseEntity.ok("Template removed successfully.");
3758
}
3859

60+
@Operation(
61+
summary = "Generate commit template JSON",
62+
description = "Generates a JSON representation of the commit template based on its name.",
63+
responses = {
64+
@ApiResponse(responseCode = "200", description = "JSON generated successfully")
65+
}
66+
)
3967
@PostMapping("/generate-json/{name}")
4068
public Map<String, Object> generateJson(@PathVariable String name) throws IOException {
4169
CommitCraftJson commitCraftJson = commitTemplateService.prepareJsonByModel(name);

src/test/java/pl/commit/craft/CommitCraftApplicationTests.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package pl.commit.craft;
22

33
import org.junit.jupiter.api.Test;
4-
import org.springframework.boot.test.context.SpringBootTest;
54

6-
@SpringBootTest
75
class CommitCraftApplicationTests {
86

97
@Test

src/test/java/pl/commit/craft/quick/CommitQuickControllerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import org.junit.jupiter.api.Test;
66
import org.springframework.beans.factory.annotation.Autowired;
77
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
8-
import org.springframework.boot.test.mock.mockito.MockBean;
98
import org.springframework.http.MediaType;
9+
import org.springframework.test.context.bean.override.mockito.MockitoBean;
1010
import org.springframework.test.web.servlet.MockMvc;
1111

1212
import static org.mockito.Mockito.*;
@@ -19,7 +19,7 @@ class CommitQuickControllerTest {
1919
@Autowired
2020
private MockMvc mockMvc;
2121

22-
@MockBean
22+
@MockitoBean
2323
private CommitQuickService commitQuickService;
2424

2525
private ObjectMapper objectMapper;

0 commit comments

Comments
 (0)