Skip to content
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

[DE-527] DE-635 Fix for subscription groups #49

Merged
merged 1 commit into from
Dec 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion doc/models/containers/subscription-group-2.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@

| Type | Factory Method |
| --- | --- |
| [`SubscriptionGroupInlined`](../../../doc/models/subscription-group-inlined.md) | SubscriptionGroup2.fromSubscriptionGroupInlined(SubscriptionGroupInlined subscriptionGroupInlined) |
| [`NestedSubscriptionGroup`](../../../doc/models/nested-subscription-group.md) | SubscriptionGroup2.fromNestedSubscriptionGroup(NestedSubscriptionGroup nestedSubscriptionGroup) |

27 changes: 27 additions & 0 deletions doc/models/nested-subscription-group.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@

# Nested Subscription Group

## Structure

`NestedSubscriptionGroup`

## Fields

| Name | Type | Tags | Description | Getter | Setter |
| --- | --- | --- | --- | --- | --- |
| `Uid` | `String` | Optional | The UID for the group | String getUid() | setUid(String uid) |
| `Scheme` | `Integer` | Optional | Whether the group is configured to rely on a primary subscription for billing. At this time, it will always be 1. | Integer getScheme() | setScheme(Integer scheme) |
| `PrimarySubscriptionId` | `Integer` | Optional | The subscription ID of the primary within the group. Applicable to scheme 1. | Integer getPrimarySubscriptionId() | setPrimarySubscriptionId(Integer primarySubscriptionId) |
| `Primary` | `Boolean` | Optional | A boolean indicating whether the subscription is the primary in the group. Applicable to scheme 1. | Boolean getPrimary() | setPrimary(Boolean primary) |

## Example (as JSON)

```json
{
"uid": "uid2",
"scheme": 62,
"primary_subscription_id": 10,
"primary": false
}
```

27 changes: 0 additions & 27 deletions doc/models/subscription-group-inlined.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,31 +11,31 @@
import com.fasterxml.jackson.annotation.JsonSetter;

/**
* This is a model class for SubscriptionGroupInlined type.
* This is a model class for NestedSubscriptionGroup type.
*/
public class SubscriptionGroupInlined {
public class NestedSubscriptionGroup {
private String uid;
private String scheme;
private String primarySubscriptionId;
private Integer scheme;
private Integer primarySubscriptionId;
private Boolean primary;

/**
* Default constructor.
*/
public SubscriptionGroupInlined() {
public NestedSubscriptionGroup() {
}

/**
* Initialization constructor.
* @param uid String value for uid.
* @param scheme String value for scheme.
* @param primarySubscriptionId String value for primarySubscriptionId.
* @param scheme Integer value for scheme.
* @param primarySubscriptionId Integer value for primarySubscriptionId.
* @param primary Boolean value for primary.
*/
public SubscriptionGroupInlined(
public NestedSubscriptionGroup(
String uid,
String scheme,
String primarySubscriptionId,
Integer scheme,
Integer primarySubscriptionId,
Boolean primary) {
this.uid = uid;
this.scheme = scheme;
Expand Down Expand Up @@ -68,43 +68,43 @@ public void setUid(String uid) {
* Getter for Scheme.
* Whether the group is configured to rely on a primary subscription for billing. At this time,
* it will always be 1.
* @return Returns the String
* @return Returns the Integer
*/
@JsonGetter("scheme")
@JsonInclude(JsonInclude.Include.NON_NULL)
public String getScheme() {
public Integer getScheme() {
return scheme;
}

/**
* Setter for Scheme.
* Whether the group is configured to rely on a primary subscription for billing. At this time,
* it will always be 1.
* @param scheme Value for String
* @param scheme Value for Integer
*/
@JsonSetter("scheme")
public void setScheme(String scheme) {
public void setScheme(Integer scheme) {
this.scheme = scheme;
}

/**
* Getter for PrimarySubscriptionId.
* The subscription ID of the primary within the group. Applicable to scheme 1.
* @return Returns the String
* @return Returns the Integer
*/
@JsonGetter("primary_subscription_id")
@JsonInclude(JsonInclude.Include.NON_NULL)
public String getPrimarySubscriptionId() {
public Integer getPrimarySubscriptionId() {
return primarySubscriptionId;
}

/**
* Setter for PrimarySubscriptionId.
* The subscription ID of the primary within the group. Applicable to scheme 1.
* @param primarySubscriptionId Value for String
* @param primarySubscriptionId Value for Integer
*/
@JsonSetter("primary_subscription_id")
public void setPrimarySubscriptionId(String primarySubscriptionId) {
public void setPrimarySubscriptionId(Integer primarySubscriptionId) {
this.primarySubscriptionId = primarySubscriptionId;
}

Expand Down Expand Up @@ -132,19 +132,19 @@ public void setPrimary(Boolean primary) {
}

/**
* Converts this SubscriptionGroupInlined into string format.
* Converts this NestedSubscriptionGroup into string format.
* @return String representation of this class
*/
@Override
public String toString() {
return "SubscriptionGroupInlined [" + "uid=" + uid + ", scheme=" + scheme
return "NestedSubscriptionGroup [" + "uid=" + uid + ", scheme=" + scheme
+ ", primarySubscriptionId=" + primarySubscriptionId + ", primary=" + primary + "]";
}

/**
* Builds a new {@link SubscriptionGroupInlined.Builder} object.
* Builds a new {@link NestedSubscriptionGroup.Builder} object.
* Creates the instance with the state of the current model.
* @return a new {@link SubscriptionGroupInlined.Builder} object
* @return a new {@link NestedSubscriptionGroup.Builder} object
*/
public Builder toBuilder() {
Builder builder = new Builder()
Expand All @@ -156,12 +156,12 @@ public Builder toBuilder() {
}

/**
* Class to build instances of {@link SubscriptionGroupInlined}.
* Class to build instances of {@link NestedSubscriptionGroup}.
*/
public static class Builder {
private String uid;
private String scheme;
private String primarySubscriptionId;
private Integer scheme;
private Integer primarySubscriptionId;
private Boolean primary;


Expand All @@ -178,20 +178,20 @@ public Builder uid(String uid) {

/**
* Setter for scheme.
* @param scheme String value for scheme.
* @param scheme Integer value for scheme.
* @return Builder
*/
public Builder scheme(String scheme) {
public Builder scheme(Integer scheme) {
this.scheme = scheme;
return this;
}

/**
* Setter for primarySubscriptionId.
* @param primarySubscriptionId String value for primarySubscriptionId.
* @param primarySubscriptionId Integer value for primarySubscriptionId.
* @return Builder
*/
public Builder primarySubscriptionId(String primarySubscriptionId) {
public Builder primarySubscriptionId(Integer primarySubscriptionId) {
this.primarySubscriptionId = primarySubscriptionId;
return this;
}
Expand All @@ -207,11 +207,11 @@ public Builder primary(Boolean primary) {
}

/**
* Builds a new {@link SubscriptionGroupInlined} object using the set fields.
* @return {@link SubscriptionGroupInlined}
* Builds a new {@link NestedSubscriptionGroup} object using the set fields.
* @return {@link NestedSubscriptionGroup}
*/
public SubscriptionGroupInlined build() {
return new SubscriptionGroupInlined(uid, scheme, primarySubscriptionId, primary);
public NestedSubscriptionGroup build() {
return new NestedSubscriptionGroup(uid, scheme, primarySubscriptionId, primary);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.maxio.advancedbilling.ApiHelper;
import com.maxio.advancedbilling.models.SubscriptionGroupInlined;
import com.maxio.advancedbilling.models.NestedSubscriptionGroup;
import io.apimatic.core.annotations.TypeCombinator.TypeCombinatorCase;
import java.io.IOException;
import java.util.Arrays;
Expand All @@ -28,13 +28,13 @@
public abstract class SubscriptionGroup2 {

/**
* This is Subscription Group Inlined case.
* @param subscriptionGroupInlined SubscriptionGroupInlined value for subscriptionGroupInlined.
* @return The SubscriptionGroupInlinedCase object.
* This is Nested Subscription Group case.
* @param nestedSubscriptionGroup NestedSubscriptionGroup value for nestedSubscriptionGroup.
* @return The NestedSubscriptionGroupCase object.
*/
public static SubscriptionGroup2 fromSubscriptionGroupInlined(
SubscriptionGroupInlined subscriptionGroupInlined) {
return subscriptionGroupInlined == null ? null : new SubscriptionGroupInlinedCase(subscriptionGroupInlined);
public static SubscriptionGroup2 fromNestedSubscriptionGroup(
NestedSubscriptionGroup nestedSubscriptionGroup) {
return nestedSubscriptionGroup == null ? null : new NestedSubscriptionGroupCase(nestedSubscriptionGroup);
}

/**
Expand All @@ -50,37 +50,37 @@ public static SubscriptionGroup2 fromSubscriptionGroupInlined(
* @param <R> The type to return after applying callback.
*/
public interface Cases<R> {
R subscriptionGroupInlined(SubscriptionGroupInlined subscriptionGroupInlined);
R nestedSubscriptionGroup(NestedSubscriptionGroup nestedSubscriptionGroup);
}

/**
* This is a implementation class for SubscriptionGroupInlinedCase.
* This is a implementation class for NestedSubscriptionGroupCase.
*/
@JsonDeserialize(using = JsonDeserializer.None.class)
@TypeCombinatorCase(type = "SubscriptionGroupInlined")
private static class SubscriptionGroupInlinedCase extends SubscriptionGroup2 {
@TypeCombinatorCase(type = "NestedSubscriptionGroup")
private static class NestedSubscriptionGroupCase extends SubscriptionGroup2 {

@JsonValue
private SubscriptionGroupInlined subscriptionGroupInlined;
private NestedSubscriptionGroup nestedSubscriptionGroup;

SubscriptionGroupInlinedCase(SubscriptionGroupInlined subscriptionGroupInlined) {
this.subscriptionGroupInlined = subscriptionGroupInlined;
NestedSubscriptionGroupCase(NestedSubscriptionGroup nestedSubscriptionGroup) {
this.nestedSubscriptionGroup = nestedSubscriptionGroup;
}

@Override
public <R> R match(Cases<R> cases) {
return cases.subscriptionGroupInlined(this.subscriptionGroupInlined);
return cases.nestedSubscriptionGroup(this.nestedSubscriptionGroup);
}

@JsonCreator
private SubscriptionGroupInlinedCase(JsonNode jsonNode) throws IOException {
this.subscriptionGroupInlined = ApiHelper.deserialize(jsonNode,
SubscriptionGroupInlined.class);
private NestedSubscriptionGroupCase(JsonNode jsonNode) throws IOException {
this.nestedSubscriptionGroup = ApiHelper.deserialize(jsonNode,
NestedSubscriptionGroup.class);
}

@Override
public String toString() {
return subscriptionGroupInlined.toString();
return nestedSubscriptionGroup.toString();
}
}

Expand All @@ -96,7 +96,7 @@ public SubscriptionGroup2 deserialize(JsonParser jp, DeserializationContext ctxt
ObjectCodec oc = jp.getCodec();
JsonNode node = oc.readTree(jp);
return ApiHelper.deserialize(node, Arrays.asList(
SubscriptionGroupInlinedCase.class), true);
NestedSubscriptionGroupCase.class), true);
}
}

Expand Down