Skip to content

Commit 4e68a65

Browse files
committed
[feature] skelton for the validate endpoint diffrent scenarios
1 parent 20d64cb commit 4e68a65

3 files changed

Lines changed: 104 additions & 0 deletions

File tree

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.evolvedbinary.bblValidator.controller;
2+
3+
import com.evolvedbinary.bblValidator.dto.ValidationForm;
4+
import com.evolvedbinary.bblValidator.dto.ValidationResponse;
5+
import io.micronaut.http.MediaType;
6+
import io.micronaut.http.annotation.Body;
7+
import io.micronaut.http.annotation.Consumes;
8+
import io.micronaut.http.annotation.Controller;
9+
import io.micronaut.http.annotation.Post;
10+
import io.micronaut.http.annotation.QueryValue;
11+
12+
@Controller("/validate")
13+
public class ValidateController {
14+
15+
// SCENARIO: Form URL Encoded
16+
// Matches when Content-Type is 'application/x-www-form-urlencoded'
17+
@Post
18+
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
19+
public ValidationResponse validateForm(@Body ValidationForm form) {
20+
return new ValidationResponse(form.schemaId(), form.url(), true, "form handler");
21+
}
22+
23+
// SCENARIO: CSV Body + Query param
24+
// Matches when Content-Type is 'text/csv'
25+
@Post
26+
@Consumes(MediaType.TEXT_CSV)
27+
public ValidationResponse validateCsv(@QueryValue("schema-id") String schemaId,
28+
@Body String csvContent) {
29+
30+
return new ValidationResponse(schemaId, csvContent, true, "text handler");
31+
}
32+
33+
// SCENARIO: Query Params Only
34+
// We use ALL here as a fallback, but specific types above take precedence
35+
@Post
36+
@Consumes(MediaType.ALL)
37+
public ValidationResponse validateParams(@QueryValue("schema-id") String schemaId,
38+
@QueryValue String url) {
39+
return new ValidationResponse(schemaId, url, true, "query handler");
40+
}
41+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.evolvedbinary.bblValidator.dto;
2+
3+
import io.micronaut.serde.annotation.Serdeable;
4+
5+
@Serdeable
6+
public record ValidationForm(
7+
String schemaId,
8+
String url) {
9+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.evolvedbinary.bblValidator.dto;
2+
3+
import io.micronaut.serde.annotation.Serdeable;
4+
5+
@Serdeable
6+
public class ValidationResponse {
7+
8+
private String schemaId;
9+
private String url;
10+
private boolean valid;
11+
private String source;
12+
13+
public ValidationResponse() {
14+
}
15+
16+
public ValidationResponse(String schemaId, String url, boolean valid, String source) {
17+
this.schemaId = schemaId;
18+
this.url = url;
19+
this.valid = valid;
20+
this.source = source;
21+
}
22+
23+
public String getSchemaId() {
24+
return schemaId;
25+
}
26+
27+
public void setSchemaId(String schemaId) {
28+
this.schemaId = schemaId;
29+
}
30+
31+
public String getUrl() {
32+
return url;
33+
}
34+
35+
public void setUrl(String url) {
36+
this.url = url;
37+
}
38+
39+
public boolean isValid() {
40+
return valid;
41+
}
42+
43+
public void setValid(boolean valid) {
44+
this.valid = valid;
45+
}
46+
47+
public String getSource() {
48+
return source;
49+
}
50+
51+
public void setSource(String url) {
52+
this.source = source;
53+
}
54+
}

0 commit comments

Comments
 (0)