From 364f9530abab694e8daadc91af5ed310a482e013 Mon Sep 17 00:00:00 2001 From: Rongrong Chai Date: Mon, 13 Nov 2023 20:30:05 +0000 Subject: [PATCH 1/6] sync-up-services --- .../service/model/dto/ChallengeDto.java | 6 +- .../src/main/resources/openapi.yaml | 12 +- .../service/model/dto/BasicErrorDto.java | 1 + .../src/main/resources/openapi.yaml | 141 +++++++++--------- .../OpenApiGeneratorApplicationTests.java | 11 ++ 5 files changed, 92 insertions(+), 79 deletions(-) create mode 100644 apps/openchallenges/organization-service/src/test/java/org/sagebionetworks/openchallenges/organization/service/OpenApiGeneratorApplicationTests.java diff --git a/apps/openchallenges/challenge-service/src/main/java/org/sagebionetworks/openchallenges/challenge/service/model/dto/ChallengeDto.java b/apps/openchallenges/challenge-service/src/main/java/org/sagebionetworks/openchallenges/challenge/service/model/dto/ChallengeDto.java index a26bb9e533..9c4cba0914 100644 --- a/apps/openchallenges/challenge-service/src/main/java/org/sagebionetworks/openchallenges/challenge/service/model/dto/ChallengeDto.java +++ b/apps/openchallenges/challenge-service/src/main/java/org/sagebionetworks/openchallenges/challenge/service/model/dto/ChallengeDto.java @@ -121,7 +121,7 @@ public ChallengeDto slug(String slug) { */ @NotNull @Pattern(regexp = "^[a-z0-9]+(?:-[a-z0-9]+)*$") - @Size(min = 3, max = 60) + @Size(min = 3, max = 255) @Schema( name = "slug", example = "awesome-challenge", @@ -146,7 +146,7 @@ public ChallengeDto name(String name) { * @return name */ @NotNull - @Size(min = 3, max = 60) + @Size(min = 3, max = 255) @Schema(name = "name", description = "The name of the challenge.", required = true) public String getName() { return name; @@ -191,7 +191,7 @@ public ChallengeDto description(String description) { * @return description */ @NotNull - @Size(min = 0, max = 280) + @Size(min = 0, max = 1000) @Schema( name = "description", example = "This is an example description of the challenge.", diff --git a/apps/openchallenges/challenge-service/src/main/resources/openapi.yaml b/apps/openchallenges/challenge-service/src/main/resources/openapi.yaml index db8936b592..130f18e317 100644 --- a/apps/openchallenges/challenge-service/src/main/resources/openapi.yaml +++ b/apps/openchallenges/challenge-service/src/main/resources/openapi.yaml @@ -560,13 +560,13 @@ components: ChallengeSlug: description: The slug of the challenge. example: awesome-challenge - maxLength: 60 + maxLength: 255 minLength: 3 pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$" type: string ChallengeName: description: The name of the challenge. - maxLength: 60 + maxLength: 255 minLength: 3 type: string ChallengeHeadline: @@ -578,7 +578,7 @@ components: ChallengeDescription: description: The description of the challenge. example: This is an example description of the challenge. - maxLength: 280 + maxLength: 1000 minLength: 0 type: string ChallengePlatformId: @@ -721,13 +721,13 @@ components: slug: description: The slug of the challenge. example: awesome-challenge - maxLength: 60 + maxLength: 255 minLength: 3 pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$" type: string name: description: The name of the challenge. - maxLength: 60 + maxLength: 255 minLength: 3 type: string headline: @@ -739,7 +739,7 @@ components: description: description: The description of the challenge. example: This is an example description of the challenge. - maxLength: 280 + maxLength: 1000 minLength: 0 type: string doi: diff --git a/apps/openchallenges/organization-service/src/main/java/org/sagebionetworks/openchallenges/organization/service/model/dto/BasicErrorDto.java b/apps/openchallenges/organization-service/src/main/java/org/sagebionetworks/openchallenges/organization/service/model/dto/BasicErrorDto.java index 245b0c4286..e156004854 100644 --- a/apps/openchallenges/organization-service/src/main/java/org/sagebionetworks/openchallenges/organization/service/model/dto/BasicErrorDto.java +++ b/apps/openchallenges/organization-service/src/main/java/org/sagebionetworks/openchallenges/organization/service/model/dto/BasicErrorDto.java @@ -12,6 +12,7 @@ @Schema(name = "BasicError", description = "Problem details (tools.ietf.org/html/rfc7807)") @JsonTypeName("BasicError") @Generated(value = "org.openapitools.codegen.languages.SpringCodegen") +// @lombok.AllArgsConstructor @lombok.Builder public class BasicErrorDto { diff --git a/apps/openchallenges/organization-service/src/main/resources/openapi.yaml b/apps/openchallenges/organization-service/src/main/resources/openapi.yaml index 0ccbfa48de..fd2f5cc1b2 100644 --- a/apps/openchallenges/organization-service/src/main/resources/openapi.yaml +++ b/apps/openchallenges/organization-service/src/main/resources/openapi.yaml @@ -11,38 +11,38 @@ info: x-logo: url: https://dev.openchallenges.io/img/unsafe/logo/OpenChallenges-logo.png servers: -- url: http://localhost/v1 + - url: http://localhost/v1 tags: -- description: Operations about organizations - name: Organization + - description: Operations about organizations + name: Organization paths: /organizations: get: description: List organizations operationId: listOrganizations parameters: - - description: The search query used to find organizations. - explode: true - in: query - name: organizationSearchQuery - required: false - schema: - $ref: '#/components/schemas/OrganizationSearchQuery' - style: form + - description: The search query used to find organizations. + explode: true + in: query + name: organizationSearchQuery + required: false + schema: + $ref: '#/components/schemas/OrganizationSearchQuery' + style: form responses: - "200": + '200': content: application/json: schema: $ref: '#/components/schemas/OrganizationsPage' description: Success - "400": + '400': content: application/problem+json: schema: $ref: '#/components/schemas/BasicError' description: Invalid request - "500": + '500': content: application/problem+json: schema: @@ -51,44 +51,44 @@ paths: error summary: List organizations tags: - - Organization + - Organization x-accepts: application/json x-tags: - - tag: Organization + - tag: Organization /organizations/{org}: get: description: Returns the organization specified operationId: getOrganization parameters: - - description: The id or login of the organization. - examples: - byString: - value: dream - byId: - value: "1" - explode: false - in: path - name: org - required: true - schema: - maxLength: 64 - minLength: 1 - type: string - style: simple + - description: The id or login of the organization. + examples: + byString: + value: dream + byId: + value: '1' + explode: false + in: path + name: org + required: true + schema: + maxLength: 64 + minLength: 1 + type: string + style: simple responses: - "200": + '200': content: application/json: schema: $ref: '#/components/schemas/Organization' description: An organization - "404": + '404': content: application/problem+json: schema: $ref: '#/components/schemas/BasicError' description: The specified resource was not found - "500": + '500': content: application/problem+json: schema: @@ -97,10 +97,10 @@ paths: error summary: Get an organization tags: - - Organization + - Organization x-accepts: application/json x-tags: - - tag: Organization + - tag: Organization components: parameters: organizationSearchQuery: @@ -118,7 +118,7 @@ components: byString: value: dream byId: - value: "1" + value: '1' explode: false in: path name: org @@ -151,31 +151,31 @@ components: OrganizationCategory: description: The category of the organization. enum: - - featured + - featured example: featured type: string ChallengeContributionRole: description: The nature of a challenge contribution. enum: - - challenge_organizer - - data_contributor - - sponsor + - challenge_organizer + - data_contributor + - sponsor example: challenge_organizer type: string OrganizationSort: default: relevance description: What to sort results by. enum: - - challenge_count - - created - - name - - relevance + - challenge_count + - created + - name + - relevance type: string OrganizationDirection: description: The direction to sort the results by. enum: - - asc - - desc + - asc + - desc nullable: true type: string OrganizationSearchQuery: @@ -245,12 +245,12 @@ components: example: true type: boolean required: - - hasNext - - hasPrevious - - number - - size - - totalElements - - totalPages + - hasNext + - hasPrevious + - number + - size + - totalElements + - totalPages type: object OrganizationId: description: The unique identifier of an organization @@ -267,7 +267,7 @@ components: example: example-org maxLength: 64 minLength: 2 - pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$" + pattern: '^[a-z0-9]+(?:-[a-z0-9]+)*$' type: string Organization: description: An organization @@ -302,7 +302,7 @@ components: example: example-org maxLength: 64 minLength: 2 - pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$" + pattern: '^[a-z0-9]+(?:-[a-z0-9]+)*$' type: string description: example: A description of the organization. @@ -331,23 +331,23 @@ components: example: OC type: string required: - - createdAt - - description - - email - - id - - login - - name - - updatedAt - - websiteUrl + - createdAt + - description + - email + - id + - login + - name + - updatedAt + - websiteUrl type: object OrganizationsPage: allOf: - - $ref: '#/components/schemas/PageMetadata' - - $ref: '#/components/schemas/OrganizationsPage_allOf' + - $ref: '#/components/schemas/PageMetadata' + - $ref: '#/components/schemas/OrganizationsPage_allOf' description: A page of organizations type: object x-java-class-annotations: - - '@lombok.Builder' + - '@lombok.Builder' BasicError: description: Problem details (tools.ietf.org/html/rfc7807) properties: @@ -365,11 +365,12 @@ components: description: An absolute URI that identifies the problem type type: string required: - - status - - title + - status + - title type: object x-java-class-annotations: - - '@lombok.Builder' + # - '@lombok.AllArgsConstructor' + - '@lombok.Builder' OrganizationsPage_allOf: properties: organizations: @@ -378,6 +379,6 @@ components: $ref: '#/components/schemas/Organization' type: array required: - - organizations + - organizations type: object example: null diff --git a/apps/openchallenges/organization-service/src/test/java/org/sagebionetworks/openchallenges/organization/service/OpenApiGeneratorApplicationTests.java b/apps/openchallenges/organization-service/src/test/java/org/sagebionetworks/openchallenges/organization/service/OpenApiGeneratorApplicationTests.java new file mode 100644 index 0000000000..8d9c210aee --- /dev/null +++ b/apps/openchallenges/organization-service/src/test/java/org/sagebionetworks/openchallenges/organization/service/OpenApiGeneratorApplicationTests.java @@ -0,0 +1,11 @@ +package org.sagebionetworks.openchallenges.organization.service; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class OpenApiGeneratorApplicationTests { + + @Test + void contextLoads() {} +} From 973f5f7fa30a021be874588d578aa95e7c064005 Mon Sep 17 00:00:00 2001 From: Rongrong Chai Date: Mon, 13 Nov 2023 20:34:52 +0000 Subject: [PATCH 2/6] do not fix indentation --- .../src/main/resources/openapi.yaml | 142 +++++++++--------- 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/apps/openchallenges/organization-service/src/main/resources/openapi.yaml b/apps/openchallenges/organization-service/src/main/resources/openapi.yaml index fd2f5cc1b2..2e91eb248d 100644 --- a/apps/openchallenges/organization-service/src/main/resources/openapi.yaml +++ b/apps/openchallenges/organization-service/src/main/resources/openapi.yaml @@ -11,38 +11,38 @@ info: x-logo: url: https://dev.openchallenges.io/img/unsafe/logo/OpenChallenges-logo.png servers: - - url: http://localhost/v1 +- url: http://localhost/v1 tags: - - description: Operations about organizations - name: Organization +- description: Operations about organizations + name: Organization paths: /organizations: get: description: List organizations operationId: listOrganizations parameters: - - description: The search query used to find organizations. - explode: true - in: query - name: organizationSearchQuery - required: false - schema: - $ref: '#/components/schemas/OrganizationSearchQuery' - style: form + - description: The search query used to find organizations. + explode: true + in: query + name: organizationSearchQuery + required: false + schema: + $ref: '#/components/schemas/OrganizationSearchQuery' + style: form responses: - '200': + "200": content: application/json: schema: $ref: '#/components/schemas/OrganizationsPage' description: Success - '400': + "400": content: application/problem+json: schema: $ref: '#/components/schemas/BasicError' description: Invalid request - '500': + "500": content: application/problem+json: schema: @@ -51,44 +51,44 @@ paths: error summary: List organizations tags: - - Organization + - Organization x-accepts: application/json x-tags: - - tag: Organization + - tag: Organization /organizations/{org}: get: description: Returns the organization specified operationId: getOrganization parameters: - - description: The id or login of the organization. - examples: - byString: - value: dream - byId: - value: '1' - explode: false - in: path - name: org - required: true - schema: - maxLength: 64 - minLength: 1 - type: string - style: simple + - description: The id or login of the organization. + examples: + byString: + value: dream + byId: + value: "1" + explode: false + in: path + name: org + required: true + schema: + maxLength: 64 + minLength: 1 + type: string + style: simple responses: - '200': + "200": content: application/json: schema: $ref: '#/components/schemas/Organization' description: An organization - '404': + "404": content: application/problem+json: schema: $ref: '#/components/schemas/BasicError' description: The specified resource was not found - '500': + "500": content: application/problem+json: schema: @@ -97,10 +97,10 @@ paths: error summary: Get an organization tags: - - Organization + - Organization x-accepts: application/json x-tags: - - tag: Organization + - tag: Organization components: parameters: organizationSearchQuery: @@ -118,7 +118,7 @@ components: byString: value: dream byId: - value: '1' + value: "1" explode: false in: path name: org @@ -151,31 +151,31 @@ components: OrganizationCategory: description: The category of the organization. enum: - - featured + - featured example: featured type: string ChallengeContributionRole: description: The nature of a challenge contribution. enum: - - challenge_organizer - - data_contributor - - sponsor + - challenge_organizer + - data_contributor + - sponsor example: challenge_organizer type: string OrganizationSort: default: relevance description: What to sort results by. enum: - - challenge_count - - created - - name - - relevance + - challenge_count + - created + - name + - relevance type: string OrganizationDirection: description: The direction to sort the results by. enum: - - asc - - desc + - asc + - desc nullable: true type: string OrganizationSearchQuery: @@ -245,12 +245,12 @@ components: example: true type: boolean required: - - hasNext - - hasPrevious - - number - - size - - totalElements - - totalPages + - hasNext + - hasPrevious + - number + - size + - totalElements + - totalPages type: object OrganizationId: description: The unique identifier of an organization @@ -267,7 +267,7 @@ components: example: example-org maxLength: 64 minLength: 2 - pattern: '^[a-z0-9]+(?:-[a-z0-9]+)*$' + pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$" type: string Organization: description: An organization @@ -302,7 +302,7 @@ components: example: example-org maxLength: 64 minLength: 2 - pattern: '^[a-z0-9]+(?:-[a-z0-9]+)*$' + pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$" type: string description: example: A description of the organization. @@ -331,23 +331,23 @@ components: example: OC type: string required: - - createdAt - - description - - email - - id - - login - - name - - updatedAt - - websiteUrl + - createdAt + - description + - email + - id + - login + - name + - updatedAt + - websiteUrl type: object OrganizationsPage: allOf: - - $ref: '#/components/schemas/PageMetadata' - - $ref: '#/components/schemas/OrganizationsPage_allOf' + - $ref: '#/components/schemas/PageMetadata' + - $ref: '#/components/schemas/OrganizationsPage_allOf' description: A page of organizations type: object x-java-class-annotations: - - '@lombok.Builder' + - '@lombok.Builder' BasicError: description: Problem details (tools.ietf.org/html/rfc7807) properties: @@ -365,12 +365,12 @@ components: description: An absolute URI that identifies the problem type type: string required: - - status - - title + - status + - title type: object x-java-class-annotations: - # - '@lombok.AllArgsConstructor' - - '@lombok.Builder' + # - '@lombok.AllArgsConstructor' + - '@lombok.Builder' OrganizationsPage_allOf: properties: organizations: @@ -379,6 +379,6 @@ components: $ref: '#/components/schemas/Organization' type: array required: - - organizations + - organizations type: object example: null From ed7184dabd63ec217f1a3bf27af91e2286f46ac3 Mon Sep 17 00:00:00 2001 From: Rongrong Chai Date: Mon, 13 Nov 2023 21:00:18 +0000 Subject: [PATCH 3/6] add missing updates --- .../organization/service/model/dto/BasicErrorDto.java | 2 +- .../organization-service/src/main/resources/openapi.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/openchallenges/organization-service/src/main/java/org/sagebionetworks/openchallenges/organization/service/model/dto/BasicErrorDto.java b/apps/openchallenges/organization-service/src/main/java/org/sagebionetworks/openchallenges/organization/service/model/dto/BasicErrorDto.java index e156004854..b141dc9648 100644 --- a/apps/openchallenges/organization-service/src/main/java/org/sagebionetworks/openchallenges/organization/service/model/dto/BasicErrorDto.java +++ b/apps/openchallenges/organization-service/src/main/java/org/sagebionetworks/openchallenges/organization/service/model/dto/BasicErrorDto.java @@ -12,7 +12,7 @@ @Schema(name = "BasicError", description = "Problem details (tools.ietf.org/html/rfc7807)") @JsonTypeName("BasicError") @Generated(value = "org.openapitools.codegen.languages.SpringCodegen") -// @lombok.AllArgsConstructor +@lombok.AllArgsConstructor @lombok.Builder public class BasicErrorDto { diff --git a/apps/openchallenges/organization-service/src/main/resources/openapi.yaml b/apps/openchallenges/organization-service/src/main/resources/openapi.yaml index 2e91eb248d..4d81b466c7 100644 --- a/apps/openchallenges/organization-service/src/main/resources/openapi.yaml +++ b/apps/openchallenges/organization-service/src/main/resources/openapi.yaml @@ -369,7 +369,7 @@ components: - title type: object x-java-class-annotations: - # - '@lombok.AllArgsConstructor' + - '@lombok.AllArgsConstructor' - '@lombok.Builder' OrganizationsPage_allOf: properties: From 53be4f8f5ece6bb6d01aad66159347d2e52c77ea Mon Sep 17 00:00:00 2001 From: Rongrong Chai Date: Mon, 13 Nov 2023 23:02:12 +0000 Subject: [PATCH 4/6] rm OpenApiGeneratorApplicationTests.java --- .../service/OpenApiGeneratorApplicationTests.java | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 apps/openchallenges/organization-service/src/test/java/org/sagebionetworks/openchallenges/organization/service/OpenApiGeneratorApplicationTests.java diff --git a/apps/openchallenges/organization-service/src/test/java/org/sagebionetworks/openchallenges/organization/service/OpenApiGeneratorApplicationTests.java b/apps/openchallenges/organization-service/src/test/java/org/sagebionetworks/openchallenges/organization/service/OpenApiGeneratorApplicationTests.java deleted file mode 100644 index 8d9c210aee..0000000000 --- a/apps/openchallenges/organization-service/src/test/java/org/sagebionetworks/openchallenges/organization/service/OpenApiGeneratorApplicationTests.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.sagebionetworks.openchallenges.organization.service; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class OpenApiGeneratorApplicationTests { - - @Test - void contextLoads() {} -} From 682799bf67dfee0abfcf0b988d8d54b1b55344bb Mon Sep 17 00:00:00 2001 From: Thomas Schaffter Date: Tue, 14 Nov 2023 02:30:38 +0000 Subject: [PATCH 5/6] Rename unit test file in challenge service --- ...licationTests.java => ChallengeServiceApplicationTests.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename apps/openchallenges/challenge-service/src/test/java/org/sagebionetworks/openchallenges/challenge/service/{OpenApiGeneratorApplicationTests.java => ChallengeServiceApplicationTests.java} (83%) diff --git a/apps/openchallenges/challenge-service/src/test/java/org/sagebionetworks/openchallenges/challenge/service/OpenApiGeneratorApplicationTests.java b/apps/openchallenges/challenge-service/src/test/java/org/sagebionetworks/openchallenges/challenge/service/ChallengeServiceApplicationTests.java similarity index 83% rename from apps/openchallenges/challenge-service/src/test/java/org/sagebionetworks/openchallenges/challenge/service/OpenApiGeneratorApplicationTests.java rename to apps/openchallenges/challenge-service/src/test/java/org/sagebionetworks/openchallenges/challenge/service/ChallengeServiceApplicationTests.java index d13cf88c28..85fb78359c 100644 --- a/apps/openchallenges/challenge-service/src/test/java/org/sagebionetworks/openchallenges/challenge/service/OpenApiGeneratorApplicationTests.java +++ b/apps/openchallenges/challenge-service/src/test/java/org/sagebionetworks/openchallenges/challenge/service/ChallengeServiceApplicationTests.java @@ -4,7 +4,7 @@ import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest -class OpenApiGeneratorApplicationTests { +class ChallengeServiceApplicationTests { @Test void contextLoads() {} From 3a49167674acba88cf11ded637f04bf758ba7ca5 Mon Sep 17 00:00:00 2001 From: Thomas Schaffter Date: Tue, 14 Nov 2023 02:33:00 +0000 Subject: [PATCH 6/6] Prevent the generation of the test file --- apps/openchallenges/challenge-service/.openapi-generator-ignore | 1 + apps/openchallenges/challenge-service/.openapi-generator/FILES | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/openchallenges/challenge-service/.openapi-generator-ignore b/apps/openchallenges/challenge-service/.openapi-generator-ignore index 96bd1a073f..9f70632934 100644 --- a/apps/openchallenges/challenge-service/.openapi-generator-ignore +++ b/apps/openchallenges/challenge-service/.openapi-generator-ignore @@ -26,3 +26,4 @@ README.md **/application.properties **/model/dto/*AllOf*.java **/OpenApiGeneratorApplication.java +**/OpenApiGeneratorApplicationTests.java \ No newline at end of file diff --git a/apps/openchallenges/challenge-service/.openapi-generator/FILES b/apps/openchallenges/challenge-service/.openapi-generator/FILES index c5a76c5a96..9e9bd572cf 100644 --- a/apps/openchallenges/challenge-service/.openapi-generator/FILES +++ b/apps/openchallenges/challenge-service/.openapi-generator/FILES @@ -48,4 +48,3 @@ src/main/java/org/sagebionetworks/openchallenges/challenge/service/model/dto/Pag src/main/java/org/sagebionetworks/openchallenges/challenge/service/model/dto/SimpleChallengeInputDataTypeDto.java src/main/java/org/sagebionetworks/openchallenges/challenge/service/model/dto/SimpleChallengePlatformDto.java src/main/resources/openapi.yaml -src/test/java/org/sagebionetworks/openchallenges/challenge/service/OpenApiGeneratorApplicationTests.java