diff --git a/bpdm-common/src/main/kotlin/org/eclipse/tractusx/bpdm/common/dto/openapidescription/CommonDescription.kt b/bpdm-common/src/main/kotlin/org/eclipse/tractusx/bpdm/common/dto/openapidescription/CommonDescription.kt index 7983245a4..f47d4bb3c 100644 --- a/bpdm-common/src/main/kotlin/org/eclipse/tractusx/bpdm/common/dto/openapidescription/CommonDescription.kt +++ b/bpdm-common/src/main/kotlin/org/eclipse/tractusx/bpdm/common/dto/openapidescription/CommonDescription.kt @@ -29,4 +29,7 @@ object CommonDescription { const val score = "Relative quality score of the match. The higher the better." const val externalId = "The identifier which uniquely identifies (in the internal system landscape of the sharing member) the business partner." + + const val roles = "Roles this business partner takes in relation to the sharing member." + } \ No newline at end of file diff --git a/bpdm-common/src/main/kotlin/org/eclipse/tractusx/bpdm/common/dto/openapidescription/LegalEntityDescription.kt b/bpdm-common/src/main/kotlin/org/eclipse/tractusx/bpdm/common/dto/openapidescription/LegalEntityDescription.kt index 80723ed77..3f963d78c 100644 --- a/bpdm-common/src/main/kotlin/org/eclipse/tractusx/bpdm/common/dto/openapidescription/LegalEntityDescription.kt +++ b/bpdm-common/src/main/kotlin/org/eclipse/tractusx/bpdm/common/dto/openapidescription/LegalEntityDescription.kt @@ -52,5 +52,5 @@ object LegalEntityDescription { const val states = "The list of (temporary) states of the legal entity." const val classifications = "The list of classifications of the legal entity, such as a specific industry." const val relations = "Relations to other business partners." - const val roles = "Roles this business partner takes in relation to the sharing member." + } diff --git a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/GateBusinessPartnerApi.kt b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/GateBusinessPartnerApi.kt new file mode 100644 index 000000000..c51801b67 --- /dev/null +++ b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/GateBusinessPartnerApi.kt @@ -0,0 +1,79 @@ +/******************************************************************************* + * Copyright (c) 2021,2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ******************************************************************************/ + +package org.eclipse.tractusx.bpdm.gate.api + +import io.swagger.v3.oas.annotations.Operation +import io.swagger.v3.oas.annotations.media.Content +import io.swagger.v3.oas.annotations.responses.ApiResponse +import io.swagger.v3.oas.annotations.responses.ApiResponses +import jakarta.validation.Valid +import org.eclipse.tractusx.bpdm.common.dto.request.PaginationRequest +import org.eclipse.tractusx.bpdm.common.dto.response.PageDto +import org.eclipse.tractusx.bpdm.gate.api.model.request.BusinessPartnerInputRequest +import org.eclipse.tractusx.bpdm.gate.api.model.response.BusinessPartnerInputDto +import org.springdoc.core.annotations.ParameterObject +import org.springframework.http.MediaType +import org.springframework.web.bind.annotation.PostMapping +import org.springframework.web.bind.annotation.PutMapping +import org.springframework.web.bind.annotation.RequestBody +import org.springframework.web.bind.annotation.RequestMapping +import org.springframework.web.service.annotation.HttpExchange +import org.springframework.web.service.annotation.PostExchange +import org.springframework.web.service.annotation.PutExchange + +@RequestMapping("/api/catena", produces = [MediaType.APPLICATION_JSON_VALUE]) +@HttpExchange("/api/catena") +interface GateBusinessPartnerApi { + + @Operation( + summary = "Create or update business partner with given external ID", + description = "Create or update generic business partner. " + + "Updates instead of creating a new business partner if an already existing external ID is used. " + + "The same external ID may not occur more than once in a single request. " + + "For a single request, the maximum number of business partners in the request is limited to \${bpdm.api.upsert-limit} entries." + ) + @ApiResponses( + value = [ + ApiResponse(responseCode = "200", description = "Business partner were successfully updated or created"), + ApiResponse(responseCode = "400", description = "On malformed legal entity request", content = [Content()]), + ] + ) + @PutMapping("/input/business-partners") + @PutExchange("/input/business-partners") + fun upsertBusinessPartnersInput(@RequestBody businessPartners: Collection): Collection + + @Operation( + summary = "Search business partner by external ID. An empty external ID list returns a paginated list of all business partners.", + description = "Get page of business partners filtered by a collection of external IDs." + ) + @ApiResponses( + value = [ + ApiResponse(responseCode = "200", description = "The requested page of business partners"), + ApiResponse(responseCode = "400", description = "On malformed pagination request", content = [Content()]), + ] + ) + @PostMapping("/input/business-partners/search") + @PostExchange("/input/business-partners/search") + fun getBusinessPartnersInputByExternalIds( + @ParameterObject @Valid paginationRequest: PaginationRequest, + @RequestBody externalIds: Collection + ): PageDto + +} \ No newline at end of file diff --git a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/AddressType.kt b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/AddressType.kt new file mode 100644 index 000000000..1299b5310 --- /dev/null +++ b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/AddressType.kt @@ -0,0 +1,28 @@ +/******************************************************************************* + * Copyright (c) 2021,2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ******************************************************************************/ + +package org.eclipse.tractusx.bpdm.gate.api.model + +enum class AddressType { + + LegalAndSiteMainAddress, + LegalAddress, + SiteMainAddress, + AdditionalAddress +} \ No newline at end of file diff --git a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/BusinessPartnerIdentifierDto.kt b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/BusinessPartnerIdentifierDto.kt new file mode 100644 index 000000000..f28a3c4e6 --- /dev/null +++ b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/BusinessPartnerIdentifierDto.kt @@ -0,0 +1,35 @@ +/******************************************************************************* + * Copyright (c) 2021,2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ******************************************************************************/ + +package org.eclipse.tractusx.bpdm.gate.api.model + +import io.swagger.v3.oas.annotations.media.Schema + +@Schema(description = "Identifier record for a business partner", requiredProperties = ["type"]) +data class BusinessPartnerIdentifierDto( + + @get:Schema(description = "Value of the identifier") + val value: String?, + + @get:Schema(description = "Technical key of the type to which this identifier belongs to") + val type: String, + + @get:Schema(description = "Body which issued the identifier") + val issuingBody: String? +) diff --git a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/BusinessPartnerPostalAddressInputDto.kt b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/BusinessPartnerPostalAddressInputDto.kt new file mode 100644 index 000000000..b4d80b583 --- /dev/null +++ b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/BusinessPartnerPostalAddressInputDto.kt @@ -0,0 +1,40 @@ +/******************************************************************************* + * Copyright (c) 2021,2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ******************************************************************************/ + +package org.eclipse.tractusx.bpdm.gate.api.model + +import io.swagger.v3.oas.annotations.media.Schema +import org.eclipse.tractusx.bpdm.common.dto.AlternativePostalAddressDto +import org.eclipse.tractusx.bpdm.common.dto.openapidescription.LogisticAddressDescription +import org.eclipse.tractusx.bpdm.gate.api.model.openapidescription.BusinessPartnerAddressDescription + +@Schema(description = "Postal address of a input business partner", requiredProperties = ["physicalPostalAddress"]) +data class BusinessPartnerPostalAddressInputDto( + + @get:Schema( description = BusinessPartnerAddressDescription.addressType) + val addressType: AddressType?, + + // TODO OpenAPI description for complex field does not work!! + @get:Schema(description = LogisticAddressDescription.physicalPostalAddress) + val physicalPostalAddress: PhysicalPostalAddressGateDto, + + // TODO OpenAPI description for complex field does not work!! + @get:Schema(description = LogisticAddressDescription.alternativePostalAddress) + val alternativePostalAddress: AlternativePostalAddressDto? = null +) diff --git a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/BusinessPartnerStateDto.kt b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/BusinessPartnerStateDto.kt new file mode 100644 index 000000000..633d4ba6d --- /dev/null +++ b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/BusinessPartnerStateDto.kt @@ -0,0 +1,41 @@ +/******************************************************************************* + * Copyright (c) 2021,2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ******************************************************************************/ + +package org.eclipse.tractusx.bpdm.gate.api.model + +import io.swagger.v3.oas.annotations.media.Schema +import org.eclipse.tractusx.bpdm.common.dto.openapidescription.LegalEntityStateDescription +import org.eclipse.tractusx.bpdm.common.model.BusinessStateType +import java.time.LocalDateTime + +@Schema(description = LegalEntityStateDescription.header, requiredProperties = ["type"]) +data class BusinessPartnerStateDto( + + @get:Schema(description = "Denotation of the status.") + val description: String?, + + @get:Schema(description = "Date since when the status is/was valid.") + val validFrom: LocalDateTime?, + + @get:Schema(description = "Date until the status was valid, if applicable.") + val validTo: LocalDateTime?, + + @get:Schema(description = "The type of this specified status.") + val type: BusinessStateType +) diff --git a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/IBaseBusinessPartnerInputDto.kt b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/IBaseBusinessPartnerInputDto.kt new file mode 100644 index 000000000..d825fe9c5 --- /dev/null +++ b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/IBaseBusinessPartnerInputDto.kt @@ -0,0 +1,62 @@ +/******************************************************************************* + * Copyright (c) 2021,2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ******************************************************************************/ + +package org.eclipse.tractusx.bpdm.gate.api.model + +import io.swagger.v3.oas.annotations.media.ArraySchema +import io.swagger.v3.oas.annotations.media.Schema +import org.eclipse.tractusx.bpdm.common.dto.ClassificationDto +import org.eclipse.tractusx.bpdm.common.dto.openapidescription.CommonDescription + +interface IBaseBusinessPartnerInputDto { + + @get:Schema(description = CommonDescription.externalId) + val externalId: String + + @get:Schema(description = "") + val nameParts: List + + @get:Schema(description = "Abbreviated name or shorthand") + val shortName: String? + + @get:ArraySchema(arraySchema = Schema(description = "The list of identifiers of the business partner.")) + val identifiers: Collection + + @get:Schema(description = "Technical key of the legal form.") + val legalForm: String? + + @get:ArraySchema(arraySchema = Schema(description = "The list of (temporary) states of the business partner.")) + val states: Collection + + @get:ArraySchema(arraySchema = Schema(description = "The list of classifications of the legal entity, such as a specific industry.")) + val classifications: Collection + + @get:ArraySchema(arraySchema = Schema(description = CommonDescription.roles)) + val roles: Collection + + @get:Schema(name = "isOwner", description = "True if the sharing member declares itself as the owner of the business partner.") + val isOwner: Boolean + + @get:Schema(description = "Address of the official seat of this business partner.") + val postalAddress: BusinessPartnerPostalAddressInputDto + + +} + + diff --git a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/openapidescription/BusinessPartnerAddressDescription.kt b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/openapidescription/BusinessPartnerAddressDescription.kt new file mode 100644 index 000000000..0523612de --- /dev/null +++ b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/openapidescription/BusinessPartnerAddressDescription.kt @@ -0,0 +1,25 @@ +/******************************************************************************* + * Copyright (c) 2021,2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ******************************************************************************/ + +package org.eclipse.tractusx.bpdm.gate.api.model.openapidescription + +object BusinessPartnerAddressDescription { + + const val addressType = "Type of the address" +} \ No newline at end of file diff --git a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/request/BusinessPartnerInputRequest.kt b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/request/BusinessPartnerInputRequest.kt new file mode 100644 index 000000000..270d4c0a0 --- /dev/null +++ b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/request/BusinessPartnerInputRequest.kt @@ -0,0 +1,39 @@ +/******************************************************************************* + * Copyright (c) 2021,2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ******************************************************************************/ + +package org.eclipse.tractusx.bpdm.gate.api.model.request + +import io.swagger.v3.oas.annotations.media.Schema +import org.eclipse.tractusx.bpdm.common.dto.ClassificationDto +import org.eclipse.tractusx.bpdm.gate.api.model.* + + +@Schema(description = "Generic business partner with external id", requiredProperties = ["externalId", "postalAddress"]) +data class BusinessPartnerInputRequest( + override val externalId: String, + override val nameParts: List = emptyList(), + override val shortName: String?, + override val identifiers: Collection = emptyList(), + override val legalForm: String? = null, + override val states: Collection = emptyList(), + override val classifications: Collection = emptyList(), + override val roles: Collection = emptyList(), + override val postalAddress: BusinessPartnerPostalAddressInputDto, + override val isOwner: Boolean +) : IBaseBusinessPartnerInputDto \ No newline at end of file diff --git a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/request/LegalEntityGateInputRequest.kt b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/request/LegalEntityGateInputRequest.kt index af6a1d4ba..1fb152a48 100644 --- a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/request/LegalEntityGateInputRequest.kt +++ b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/request/LegalEntityGateInputRequest.kt @@ -40,7 +40,7 @@ data class LegalEntityGateInputRequest( @field:JsonUnwrapped val legalEntity: LegalEntityDto, - @get:ArraySchema(arraySchema = Schema(description = LegalEntityDescription.roles)) + @get:ArraySchema(arraySchema = Schema(description = CommonDescription.roles)) val roles: Collection = emptyList(), // TODO OpenAPI description for complex field does not work!! diff --git a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/request/LegalEntityGateOutputRequest.kt b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/request/LegalEntityGateOutputRequest.kt index 01fd844eb..69fdb4804 100644 --- a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/request/LegalEntityGateOutputRequest.kt +++ b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/request/LegalEntityGateOutputRequest.kt @@ -40,7 +40,7 @@ data class LegalEntityGateOutputRequest( @field:JsonUnwrapped val legalEntity: LegalEntityDto, - @get:ArraySchema(arraySchema = Schema(description = LegalEntityDescription.roles)) + @get:ArraySchema(arraySchema = Schema(description = CommonDescription.roles)) val roles: Collection = emptyList(), // TODO OpenAPI description for complex field does not work!! diff --git a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/response/BusinessPartnerInputDto.kt b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/response/BusinessPartnerInputDto.kt new file mode 100644 index 000000000..850fa1349 --- /dev/null +++ b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/response/BusinessPartnerInputDto.kt @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2021,2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ******************************************************************************/ + +package org.eclipse.tractusx.bpdm.gate.api.model.response + +import io.swagger.v3.oas.annotations.media.Schema +import org.eclipse.tractusx.bpdm.common.dto.ClassificationDto +import org.eclipse.tractusx.bpdm.common.dto.openapidescription.CommonDescription +import org.eclipse.tractusx.bpdm.gate.api.model.* +import java.time.Instant + + +@Schema(description = "Generic business partner with external id", requiredProperties = ["externalId", "postalAddress"]) +data class BusinessPartnerInputDto( + override val externalId: String, + override val nameParts: List = emptyList(), + override val shortName: String?, + override val identifiers: Collection = emptyList(), + override val legalForm: String? = null, + override val states: Collection = emptyList(), + override val classifications: Collection = emptyList(), + override val roles: Collection = emptyList(), + override val postalAddress: BusinessPartnerPostalAddressInputDto, + override val isOwner: Boolean, + + @get:Schema(description = CommonDescription.createdAt) + val createdAt: Instant, + + @get:Schema(description = CommonDescription.updatedAt) + val updatedAt: Instant, +) : IBaseBusinessPartnerInputDto \ No newline at end of file diff --git a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/response/LegalEntityGateInputDto.kt b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/response/LegalEntityGateInputDto.kt index 619bc87d4..0fab63791 100644 --- a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/response/LegalEntityGateInputDto.kt +++ b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/response/LegalEntityGateInputDto.kt @@ -40,7 +40,7 @@ data class LegalEntityGateInputDto( @field:JsonUnwrapped val legalEntity: LegalEntityDto, - @get:ArraySchema(arraySchema = Schema(description = LegalEntityDescription.roles)) + @get:ArraySchema(arraySchema = Schema(description = CommonDescription.roles)) val roles: Collection = emptyList(), // TODO OpenAPI description for complex field does not work!! diff --git a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/response/LegalEntityGateOutputResponse.kt b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/response/LegalEntityGateOutputResponse.kt index 516875136..01a6d7e32 100644 --- a/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/response/LegalEntityGateOutputResponse.kt +++ b/bpdm-gate-api/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/api/model/response/LegalEntityGateOutputResponse.kt @@ -39,7 +39,7 @@ data class LegalEntityGateOutputResponse( @field:JsonUnwrapped val legalEntity: LegalEntityDto, - @get:ArraySchema(arraySchema = Schema(description = LegalEntityDescription.roles)) + @get:ArraySchema(arraySchema = Schema(description = CommonDescription.roles)) val roles: Collection = emptyList(), // TODO OpenAPI description for complex field does not work!! diff --git a/bpdm-gate/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/controller/BusinessPartnerController.kt b/bpdm-gate/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/controller/BusinessPartnerController.kt new file mode 100644 index 000000000..ba3cbb89c --- /dev/null +++ b/bpdm-gate/src/main/kotlin/org/eclipse/tractusx/bpdm/gate/controller/BusinessPartnerController.kt @@ -0,0 +1,42 @@ +/******************************************************************************* + * Copyright (c) 2021,2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ******************************************************************************/ + +package org.eclipse.tractusx.bpdm.gate.controller + +import org.eclipse.tractusx.bpdm.common.dto.request.PaginationRequest +import org.eclipse.tractusx.bpdm.common.dto.response.PageDto +import org.eclipse.tractusx.bpdm.gate.api.GateBusinessPartnerApi +import org.eclipse.tractusx.bpdm.gate.api.model.request.BusinessPartnerInputRequest +import org.eclipse.tractusx.bpdm.gate.api.model.response.BusinessPartnerInputDto +import org.springframework.web.bind.annotation.RestController + +@RestController +class BusinessPartnerController() : GateBusinessPartnerApi { + + override fun upsertBusinessPartnersInput(businessPartners: Collection): Collection { + TODO("Not yet implemented") + } + + override fun getBusinessPartnersInputByExternalIds( + paginationRequest: PaginationRequest, + externalIds: Collection + ): PageDto { + TODO("Not yet implemented") + } +} \ No newline at end of file