diff --git a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/api/DetectorApi.java b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/api/DetectorApi.java new file mode 100644 index 00000000..7a6b081f --- /dev/null +++ b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/api/DetectorApi.java @@ -0,0 +1,117 @@ +package de.tum.in.www1.hephaestus.intelligenceservice.api; + +import de.tum.in.www1.hephaestus.intelligenceservice.ApiClient; +import de.tum.in.www1.hephaestus.intelligenceservice.BaseApi; + +import de.tum.in.www1.hephaestus.intelligenceservice.model.DetectorRequest; +import de.tum.in.www1.hephaestus.intelligenceservice.model.DetectorResponse; +import de.tum.in.www1.hephaestus.intelligenceservice.model.HTTPValidationError; + +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.stream.Collectors; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestClientException; +import org.springframework.web.client.HttpClientErrorException; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.core.io.FileSystemResource; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +public class DetectorApi extends BaseApi { + + public DetectorApi() { + super(new ApiClient()); + } + + public DetectorApi(ApiClient apiClient) { + super(apiClient); + } + + /** + * Detect bad practices given rules. + * + *

200 - Successful Response + *

422 - Validation Error + * @param detectorRequest (required) + * @return DetectorResponse + * @throws RestClientException if an error occurs while attempting to invoke the API + */ + public DetectorResponse detectDetectorPost(DetectorRequest detectorRequest) throws RestClientException { + return detectDetectorPostWithHttpInfo(detectorRequest).getBody(); + } + + /** + * Detect bad practices given rules. + * + *

200 - Successful Response + *

422 - Validation Error + * @param detectorRequest (required) + * @return ResponseEntity<DetectorResponse> + * @throws RestClientException if an error occurs while attempting to invoke the API + */ + public ResponseEntity detectDetectorPostWithHttpInfo(DetectorRequest detectorRequest) throws RestClientException { + Object localVarPostBody = detectorRequest; + + // verify the required parameter 'detectorRequest' is set + if (detectorRequest == null) { + throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'detectorRequest' when calling detectDetectorPost"); + } + + + final MultiValueMap localVarQueryParams = new LinkedMultiValueMap(); + final HttpHeaders localVarHeaderParams = new HttpHeaders(); + final MultiValueMap localVarCookieParams = new LinkedMultiValueMap(); + final MultiValueMap localVarFormParams = new LinkedMultiValueMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); + final String[] localVarContentTypes = { + "application/json" + }; + final MediaType localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes); + + String[] localVarAuthNames = new String[] { }; + + ParameterizedTypeReference localReturnType = new ParameterizedTypeReference() {}; + return apiClient.invokeAPI("/detector/", HttpMethod.POST, Collections.emptyMap(), localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localReturnType); + } + + @Override + public ResponseEntity invokeAPI(String url, HttpMethod method, Object request, ParameterizedTypeReference returnType) throws RestClientException { + String localVarPath = url.replace(apiClient.getBasePath(), ""); + Object localVarPostBody = request; + + final Map uriVariables = new HashMap(); + final MultiValueMap localVarQueryParams = new LinkedMultiValueMap(); + final HttpHeaders localVarHeaderParams = new HttpHeaders(); + final MultiValueMap localVarCookieParams = new LinkedMultiValueMap(); + final MultiValueMap localVarFormParams = new LinkedMultiValueMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); + final String[] localVarContentTypes = { + "application/json" + }; + final MediaType localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes); + + String[] localVarAuthNames = new String[] { }; + + return apiClient.invokeAPI(localVarPath, method, uriVariables, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, returnType); + } +} diff --git a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/model/DetectorRequest.java b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/model/DetectorRequest.java new file mode 100644 index 00000000..f4bea958 --- /dev/null +++ b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/model/DetectorRequest.java @@ -0,0 +1,156 @@ +/* + * Hephaestus Intelligence Service API + * API documentation for the Hephaestus Intelligence Service. + * + * The version of the OpenAPI document: 0.0.1 + * Contact: felixtj.dietrich@tum.de + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package de.tum.in.www1.hephaestus.intelligenceservice.model; + +import java.util.Objects; +import java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import de.tum.in.www1.hephaestus.intelligenceservice.model.PullRequest; +import de.tum.in.www1.hephaestus.intelligenceservice.model.Rule; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonTypeName; +import org.hibernate.validator.constraints.*; + +/** + * DetectorRequest + */ +@JsonPropertyOrder({ + DetectorRequest.JSON_PROPERTY_PULL_REQUESTS, + DetectorRequest.JSON_PROPERTY_RULES +}) +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +public class DetectorRequest { + public static final String JSON_PROPERTY_PULL_REQUESTS = "pull_requests"; + private List pullRequests = new ArrayList<>(); + + public static final String JSON_PROPERTY_RULES = "rules"; + private List rules = new ArrayList<>(); + + public DetectorRequest() { + } + + public DetectorRequest pullRequests(List pullRequests) { + + this.pullRequests = pullRequests; + return this; + } + + public DetectorRequest addPullRequestsItem(PullRequest pullRequestsItem) { + if (this.pullRequests == null) { + this.pullRequests = new ArrayList<>(); + } + this.pullRequests.add(pullRequestsItem); + return this; + } + + /** + * Get pullRequests + * @return pullRequests + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_PULL_REQUESTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public List getPullRequests() { + return pullRequests; + } + + + @JsonProperty(JSON_PROPERTY_PULL_REQUESTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setPullRequests(List pullRequests) { + this.pullRequests = pullRequests; + } + + public DetectorRequest rules(List rules) { + + this.rules = rules; + return this; + } + + public DetectorRequest addRulesItem(Rule rulesItem) { + if (this.rules == null) { + this.rules = new ArrayList<>(); + } + this.rules.add(rulesItem); + return this; + } + + /** + * Get rules + * @return rules + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_RULES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public List getRules() { + return rules; + } + + + @JsonProperty(JSON_PROPERTY_RULES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setRules(List rules) { + this.rules = rules; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DetectorRequest detectorRequest = (DetectorRequest) o; + return Objects.equals(this.pullRequests, detectorRequest.pullRequests) && + Objects.equals(this.rules, detectorRequest.rules); + } + + @Override + public int hashCode() { + return Objects.hash(pullRequests, rules); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DetectorRequest {\n"); + sb.append(" pullRequests: ").append(toIndentedString(pullRequests)).append("\n"); + sb.append(" rules: ").append(toIndentedString(rules)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/model/DetectorResponse.java b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/model/DetectorResponse.java new file mode 100644 index 00000000..582db519 --- /dev/null +++ b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/model/DetectorResponse.java @@ -0,0 +1,116 @@ +/* + * Hephaestus Intelligence Service API + * API documentation for the Hephaestus Intelligence Service. + * + * The version of the OpenAPI document: 0.0.1 + * Contact: felixtj.dietrich@tum.de + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package de.tum.in.www1.hephaestus.intelligenceservice.model; + +import java.util.Objects; +import java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import de.tum.in.www1.hephaestus.intelligenceservice.model.PullRequestWithBadPractices; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonTypeName; +import org.hibernate.validator.constraints.*; + +/** + * DetectorResponse + */ +@JsonPropertyOrder({ + DetectorResponse.JSON_PROPERTY_DETECT_BAD_PRACTICES +}) +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +public class DetectorResponse { + public static final String JSON_PROPERTY_DETECT_BAD_PRACTICES = "detectBadPractices"; + private List detectBadPractices = new ArrayList<>(); + + public DetectorResponse() { + } + + public DetectorResponse detectBadPractices(List detectBadPractices) { + + this.detectBadPractices = detectBadPractices; + return this; + } + + public DetectorResponse addDetectBadPracticesItem(PullRequestWithBadPractices detectBadPracticesItem) { + if (this.detectBadPractices == null) { + this.detectBadPractices = new ArrayList<>(); + } + this.detectBadPractices.add(detectBadPracticesItem); + return this; + } + + /** + * Get detectBadPractices + * @return detectBadPractices + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_DETECT_BAD_PRACTICES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public List getDetectBadPractices() { + return detectBadPractices; + } + + + @JsonProperty(JSON_PROPERTY_DETECT_BAD_PRACTICES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setDetectBadPractices(List detectBadPractices) { + this.detectBadPractices = detectBadPractices; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DetectorResponse detectorResponse = (DetectorResponse) o; + return Objects.equals(this.detectBadPractices, detectorResponse.detectBadPractices); + } + + @Override + public int hashCode() { + return Objects.hash(detectBadPractices); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DetectorResponse {\n"); + sb.append(" detectBadPractices: ").append(toIndentedString(detectBadPractices)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/model/PullRequest.java b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/model/PullRequest.java new file mode 100644 index 00000000..f00e3624 --- /dev/null +++ b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/model/PullRequest.java @@ -0,0 +1,166 @@ +/* + * Hephaestus Intelligence Service API + * API documentation for the Hephaestus Intelligence Service. + * + * The version of the OpenAPI document: 0.0.1 + * Contact: felixtj.dietrich@tum.de + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package de.tum.in.www1.hephaestus.intelligenceservice.model; + +import java.util.Objects; +import java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonTypeName; +import org.hibernate.validator.constraints.*; + +/** + * PullRequest + */ +@JsonPropertyOrder({ + PullRequest.JSON_PROPERTY_DESCRIPTION, + PullRequest.JSON_PROPERTY_ID, + PullRequest.JSON_PROPERTY_TITLE +}) +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +public class PullRequest { + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TITLE = "title"; + private String title; + + public PullRequest() { + } + + public PullRequest description(String description) { + + this.description = description; + return this; + } + + /** + * Get description + * @return description + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public String getDescription() { + return description; + } + + + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setDescription(String description) { + this.description = description; + } + + public PullRequest id(String id) { + + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public String getId() { + return id; + } + + + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setId(String id) { + this.id = id; + } + + public PullRequest title(String title) { + + this.title = title; + return this; + } + + /** + * Get title + * @return title + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_TITLE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public String getTitle() { + return title; + } + + + @JsonProperty(JSON_PROPERTY_TITLE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setTitle(String title) { + this.title = title; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PullRequest pullRequest = (PullRequest) o; + return Objects.equals(this.description, pullRequest.description) && + Objects.equals(this.id, pullRequest.id) && + Objects.equals(this.title, pullRequest.title); + } + + @Override + public int hashCode() { + return Objects.hash(description, id, title); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PullRequest {\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/model/PullRequestWithBadPractices.java b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/model/PullRequestWithBadPractices.java new file mode 100644 index 00000000..7993f037 --- /dev/null +++ b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/model/PullRequestWithBadPractices.java @@ -0,0 +1,146 @@ +/* + * Hephaestus Intelligence Service API + * API documentation for the Hephaestus Intelligence Service. + * + * The version of the OpenAPI document: 0.0.1 + * Contact: felixtj.dietrich@tum.de + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package de.tum.in.www1.hephaestus.intelligenceservice.model; + +import java.util.Objects; +import java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonTypeName; +import org.hibernate.validator.constraints.*; + +/** + * PullRequestWithBadPractices + */ +@JsonPropertyOrder({ + PullRequestWithBadPractices.JSON_PROPERTY_BAD_PRACTICE_IDS, + PullRequestWithBadPractices.JSON_PROPERTY_PULL_REQUEST_ID +}) +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +public class PullRequestWithBadPractices { + public static final String JSON_PROPERTY_BAD_PRACTICE_IDS = "bad_practice_ids"; + private List badPracticeIds = new ArrayList<>(); + + public static final String JSON_PROPERTY_PULL_REQUEST_ID = "pull_request_id"; + private String pullRequestId; + + public PullRequestWithBadPractices() { + } + + public PullRequestWithBadPractices badPracticeIds(List badPracticeIds) { + + this.badPracticeIds = badPracticeIds; + return this; + } + + public PullRequestWithBadPractices addBadPracticeIdsItem(String badPracticeIdsItem) { + if (this.badPracticeIds == null) { + this.badPracticeIds = new ArrayList<>(); + } + this.badPracticeIds.add(badPracticeIdsItem); + return this; + } + + /** + * Get badPracticeIds + * @return badPracticeIds + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_BAD_PRACTICE_IDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public List getBadPracticeIds() { + return badPracticeIds; + } + + + @JsonProperty(JSON_PROPERTY_BAD_PRACTICE_IDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setBadPracticeIds(List badPracticeIds) { + this.badPracticeIds = badPracticeIds; + } + + public PullRequestWithBadPractices pullRequestId(String pullRequestId) { + + this.pullRequestId = pullRequestId; + return this; + } + + /** + * Get pullRequestId + * @return pullRequestId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_PULL_REQUEST_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public String getPullRequestId() { + return pullRequestId; + } + + + @JsonProperty(JSON_PROPERTY_PULL_REQUEST_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setPullRequestId(String pullRequestId) { + this.pullRequestId = pullRequestId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PullRequestWithBadPractices pullRequestWithBadPractices = (PullRequestWithBadPractices) o; + return Objects.equals(this.badPracticeIds, pullRequestWithBadPractices.badPracticeIds) && + Objects.equals(this.pullRequestId, pullRequestWithBadPractices.pullRequestId); + } + + @Override + public int hashCode() { + return Objects.hash(badPracticeIds, pullRequestId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PullRequestWithBadPractices {\n"); + sb.append(" badPracticeIds: ").append(toIndentedString(badPracticeIds)).append("\n"); + sb.append(" pullRequestId: ").append(toIndentedString(pullRequestId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/model/Rule.java b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/model/Rule.java new file mode 100644 index 00000000..22e0111e --- /dev/null +++ b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/intelligenceservice/model/Rule.java @@ -0,0 +1,166 @@ +/* + * Hephaestus Intelligence Service API + * API documentation for the Hephaestus Intelligence Service. + * + * The version of the OpenAPI document: 0.0.1 + * Contact: felixtj.dietrich@tum.de + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package de.tum.in.www1.hephaestus.intelligenceservice.model; + +import java.util.Objects; +import java.util.Arrays; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonTypeName; +import org.hibernate.validator.constraints.*; + +/** + * Rule + */ +@JsonPropertyOrder({ + Rule.JSON_PROPERTY_BAD_PRACTICE_ID, + Rule.JSON_PROPERTY_DESCRIPTION, + Rule.JSON_PROPERTY_NAME +}) +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0") +public class Rule { + public static final String JSON_PROPERTY_BAD_PRACTICE_ID = "bad_practice_id"; + private String badPracticeId; + + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public Rule() { + } + + public Rule badPracticeId(String badPracticeId) { + + this.badPracticeId = badPracticeId; + return this; + } + + /** + * Get badPracticeId + * @return badPracticeId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_BAD_PRACTICE_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public String getBadPracticeId() { + return badPracticeId; + } + + + @JsonProperty(JSON_PROPERTY_BAD_PRACTICE_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setBadPracticeId(String badPracticeId) { + this.badPracticeId = badPracticeId; + } + + public Rule description(String description) { + + this.description = description; + return this; + } + + /** + * Get description + * @return description + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public String getDescription() { + return description; + } + + + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setDescription(String description) { + this.description = description; + } + + public Rule name(String name) { + + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public String getName() { + return name; + } + + + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setName(String name) { + this.name = name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Rule rule = (Rule) o; + return Objects.equals(this.badPracticeId, rule.badPracticeId) && + Objects.equals(this.description, rule.description) && + Objects.equals(this.name, rule.name); + } + + @Override + public int hashCode() { + return Objects.hash(badPracticeId, description, name); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Rule {\n"); + sb.append(" badPracticeId: ").append(toIndentedString(badPracticeId)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/server/intelligence-service/openapi.yaml b/server/intelligence-service/openapi.yaml index 964034da..30f186af 100644 --- a/server/intelligence-service/openapi.yaml +++ b/server/intelligence-service/openapi.yaml @@ -1,5 +1,33 @@ components: schemas: + DetectorRequest: + properties: + pull_requests: + items: + $ref: '#/components/schemas/PullRequest' + title: Pull Requests + type: array + rules: + items: + $ref: '#/components/schemas/Rule' + title: Rules + type: array + required: + - pull_requests + - rules + title: DetectorRequest + type: object + DetectorResponse: + properties: + detectBadPractices: + items: + $ref: '#/components/schemas/PullRequestWithBadPractices' + title: Detectbadpractices + type: array + required: + - detectBadPractices + title: DetectorResponse + type: object HTTPValidationError: properties: detail: @@ -58,6 +86,55 @@ components: - dev_progress title: MentorStartRequest type: object + PullRequest: + properties: + description: + title: Description + type: string + id: + title: Id + type: string + title: + title: Title + type: string + required: + - id + - title + - description + title: PullRequest + type: object + PullRequestWithBadPractices: + properties: + bad_practice_ids: + items: + type: string + title: Bad Practice Ids + type: array + pull_request_id: + title: Pull Request Id + type: string + required: + - pull_request_id + - bad_practice_ids + title: PullRequestWithBadPractices + type: object + Rule: + properties: + bad_practice_id: + title: Bad Practice Id + type: string + description: + title: Description + type: string + name: + title: Name + type: string + required: + - name + - description + - bad_practice_id + title: Rule + type: object ValidationError: properties: loc: @@ -88,6 +165,31 @@ info: version: 0.0.1 openapi: 3.1.0 paths: + /detector/: + post: + operationId: detect_detector__post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DetectorRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DetectorResponse' + description: Successful Response + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + description: Validation Error + summary: Detect bad practices given rules. + tags: + - detector /health: get: description: "## Perform a Health Check\nEndpoint to perform a healthcheck on.\