-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: workflow for creating an offering #351
Conversation
WIP: Test for empty string input
…en api specification
WIP: Test for empty string input
…en api specification
…into feat/182-create-offering-tests # Conflicts: # extensions/wrapper/wrapper/build.gradle.kts # extensions/wrapper/wrapper/src/main/java/de/sovity/edc/ext/wrapper/WrapperExtensionContextBuilder.java # extensions/wrapper/wrapper/src/main/java/de/sovity/edc/ext/wrapper/api/offering/OfferingResource.java # extensions/wrapper/wrapper/src/main/java/de/sovity/edc/ext/wrapper/api/offering/model/CreateOfferingDto.java # extensions/wrapper/wrapper/src/main/java/de/sovity/edc/ext/wrapper/api/offering/model/PolicyDefinitionRequestDto.java # extensions/wrapper/wrapper/src/main/java/de/sovity/edc/ext/wrapper/api/offering/services/OfferingService.java # extensions/wrapper/wrapper/src/test/resources/offering/contract-offer-valid.json
...apper-common-api/src/main/java/de/sovity/edc/ext/wrapper/api/common/model/PermissionDto.java
Outdated
Show resolved
Hide resolved
...apper-common-api/src/main/java/de/sovity/edc/ext/wrapper/api/common/model/PermissionDto.java
Outdated
Show resolved
Hide resolved
...apper-common-api/src/main/java/de/sovity/edc/ext/wrapper/api/common/model/PermissionDto.java
Show resolved
Hide resolved
...apper-common-api/src/main/java/de/sovity/edc/ext/wrapper/api/common/model/PermissionDto.java
Outdated
Show resolved
Hide resolved
...r/wrapper-common-api/src/main/java/de/sovity/edc/ext/wrapper/api/common/model/PolicyDto.java
Outdated
Show resolved
Hide resolved
...apper-common-api/src/main/java/de/sovity/edc/ext/wrapper/api/common/model/PolicyTypeDto.java
Outdated
Show resolved
Hide resolved
...s/wrapper/wrapper/src/main/java/de/sovity/edc/ext/wrapper/api/offering/OfferingResource.java
Outdated
Show resolved
Hide resolved
...er/wrapper/src/main/java/de/sovity/edc/ext/wrapper/api/offering/model/CreateOfferingDto.java
Outdated
Show resolved
Hide resolved
@Schema(description = "Data for creating a policy definition request") | ||
public class PolicyDefinitionRequestDto { | ||
@Schema(description = "ID chosen by the user", requiredMode = Schema.RequiredMode.REQUIRED) | ||
private String id; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could this be auto generated?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Possible ideas:
idOverrideOrNull
Sum type object "PolicySelection": "existingPolicyId", "policyCreateDto"
...r/wrapper-common-api/src/main/java/de/sovity/edc/ext/wrapper/api/common/model/PolicyDto.java
Outdated
Show resolved
Hide resolved
.../wrapper/wrapper/src/main/java/de/sovity/edc/ext/wrapper/WrapperExtensionContextBuilder.java
Outdated
Show resolved
Hide resolved
...s/wrapper/wrapper/src/main/java/de/sovity/edc/ext/wrapper/api/offering/OfferingResource.java
Outdated
Show resolved
Hide resolved
...er/wrapper/src/main/java/de/sovity/edc/ext/wrapper/api/offering/model/CreateOfferingDto.java
Outdated
Show resolved
Hide resolved
...pper/src/main/java/de/sovity/edc/ext/wrapper/api/offering/services/PolicyMappingService.java
Outdated
Show resolved
Hide resolved
...apper/wrapper/src/test/java/de/sovity/edc/ext/wrapper/api/offering/OfferingResourceTest.java
Outdated
Show resolved
Hide resolved
extensions/wrapper/wrapper/src/test/resources/offering/contract-offer-valid.json
Outdated
Show resolved
Hide resolved
...apper-common-api/src/main/java/de/sovity/edc/ext/wrapper/api/common/model/ExpressionDto.java
Outdated
Show resolved
Hide resolved
@Schema(description = """ | ||
Expression types: | ||
* `EMPTY` - No constraints for the policy | ||
* `ATOMIC` - A single constraint for the policy |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
local consistency: Let's call it the same thing everywhere, e.g. AtomicConstraint, e.g. Literal, e.g. Constraint
...r/wrapper-common-api/src/main/java/de/sovity/edc/ext/wrapper/api/common/model/PolicyDto.java
Outdated
Show resolved
Hide resolved
transferProcess.setErrorMessage(transferProcessEntity.getErrorDetail()); | ||
return transferProcess; | ||
} | ||
|
||
@NotNull | ||
private PolicyDto buildPolicyDto(@NonNull Policy policy) { | ||
return new PolicyDto(policy); | ||
var mapper = new ObjectMapper(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Klappt das auch in Randfällen? Brauchen wir keinen vorkonfigurierten Object Mapper vom Core-EDC?
Ggf. könnten ja manche Unterklassen, die uns jetzt nicht bekannt sind, nicht gemappt werden?
Oder wisst ihr, dass der Core-EDC so oder so nichts anderes machen würde?
...ons/wrapper/wrapper/src/main/java/de/sovity/edc/ext/wrapper/api/usecase/UseCaseResource.java
Outdated
Show resolved
Hide resolved
...ons/wrapper/wrapper/src/main/java/de/sovity/edc/ext/wrapper/api/usecase/UseCaseResource.java
Outdated
Show resolved
Hide resolved
...ons/wrapper/wrapper/src/main/java/de/sovity/edc/ext/wrapper/api/usecase/UseCaseResource.java
Outdated
Show resolved
Hide resolved
...per/wrapper/src/main/java/de/sovity/edc/ext/wrapper/api/usecase/model/CreateOfferingDto.java
Show resolved
Hide resolved
...per/wrapper/src/main/java/de/sovity/edc/ext/wrapper/api/usecase/model/CreateOfferingDto.java
Show resolved
Hide resolved
...per/wrapper/src/main/java/de/sovity/edc/ext/wrapper/api/usecase/model/CreateOfferingDto.java
Show resolved
Hide resolved
import lombok.Setter; | ||
import lombok.ToString; | ||
import org.eclipse.edc.connector.api.management.asset.model.AssetEntryDto; | ||
import org.eclipse.edc.connector.api.management.contractdefinition.model.ContractDefinitionRequestDto; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will be removed in 0.1.0
...per/wrapper/src/main/java/de/sovity/edc/ext/wrapper/api/usecase/model/CreateOfferingDto.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
Pull Request
Implements the workflow for creating an offering (asset, policy, contract definition) as stated in #182. Adds a model for policies to avoid polymorphism issues in the
open-api.yaml
. This model currently only supports permissions. Adds an API endpoint for creating an offering with a single API call.How Has This Been Tested?
The new services have been tested using unit tests (JUnit, AssertJ, Mockito):
PolicyMappingServiceTest
OfferingServiceTest
In addition, an integration test for the new API endpoint has been added, that tests the Jersey integration as well as integration of the different services:
OfferingResourceTest
Linked Issue(s)
Checklist