Skip to content

Commit

Permalink
EventCallbackRequest.event_metadata is nullable
Browse files Browse the repository at this point in the history
  • Loading branch information
jtreminio-dropbox committed Apr 3, 2024
1 parent ca64311 commit 9ecf290
Show file tree
Hide file tree
Showing 42 changed files with 338 additions and 95 deletions.
1 change: 0 additions & 1 deletion openapi-raw.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11305,7 +11305,6 @@ components:
- event_time
- event_type
- event_hash
- event_metadata
properties:
event_time:
description: '_t__EventCallbackRequestEvent::EVENT_TIME'
Expand Down
1 change: 0 additions & 1 deletion openapi-sdk.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12225,7 +12225,6 @@ components:
- event_time
- event_type
- event_hash
- event_metadata
properties:
event_time:
description: 'Time the event was created (using Unix time).'
Expand Down
1 change: 0 additions & 1 deletion openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11685,7 +11685,6 @@ components:
- event_time
- event_type
- event_hash
- event_metadata
properties:
event_time:
description: 'Time the event was created (using Unix time).'
Expand Down
2 changes: 1 addition & 1 deletion sdks/dotnet/docs/EventCallbackRequestEvent.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Name | Type | Description | Notes
**EventTime** | **string** | Time the event was created (using Unix time). |
**EventType** | **string** | Type of callback event that was triggered. |
**EventHash** | **string** | Generated hash used to verify source of event data. |
**EventMetadata** | [**EventCallbackRequestEventMetadata**](EventCallbackRequestEventMetadata.md) | |
**EventMetadata** | [**EventCallbackRequestEventMetadata**](EventCallbackRequestEventMetadata.md) | | [optional]

[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

35 changes: 31 additions & 4 deletions sdks/dotnet/src/Dropbox.Sign.Test/EventCallbackHelperTests.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using Xunit;
using Dropbox.Sign.Model;

Expand All @@ -13,22 +12,50 @@ public class EventCallbackHelperTests
[Fact]
public void IsValidTest()
{
var keys = new List<string>
var account_keys = new List<string>
{
"base",
"base_no_metadata",
"account",
"account_no_metadata",
"signature_request",
"signature_request_no_metadata",
"template",
"template_no_metadata",
};

foreach (var key in keys)
foreach (var key in account_keys)
{
var requestData = TestHelper.GetJsonContents(nameof(EventCallbackHelper), key);
var requestData = TestHelper.GetJsonContents("EventCallbackHelper_AccountCallbacks", key);
var callbackEvent = EventCallbackRequest.Init(requestData.ToString());

Assert.True(EventCallbackHelper.IsValid(ApiKey, callbackEvent));
Assert.False(EventCallbackHelper.IsValid(Reverse(ApiKey), callbackEvent));
Assert.Equal(
EventCallbackHelper.EVENT_TYPE_ACCOUNT_CALLBACK,
EventCallbackHelper.GetCallbackType(callbackEvent)
);
}

var app_keys = new List<string>
{
"base",
"account",
"signature_request",
"template",
};

foreach (var key in app_keys)
{
var requestData = TestHelper.GetJsonContents("EventCallbackHelper_AppCallbacks", key);
var callbackEvent = EventCallbackRequest.Init(requestData.ToString());

Assert.True(EventCallbackHelper.IsValid(ApiKey, callbackEvent));
Assert.False(EventCallbackHelper.IsValid(Reverse(ApiKey), callbackEvent));
Assert.Equal(
EventCallbackHelper.EVENT_TYPE_APP_CALLBACK,
EventCallbackHelper.GetCallbackType(callbackEvent)
);
}
}

Expand Down
2 changes: 1 addition & 1 deletion sdks/dotnet/src/Dropbox.Sign/EventCallbackHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public static string GetCallbackType(EventCallbackRequest eventCallback)
{
var metaData = eventCallback.Event.EventMetadata;

if (String.IsNullOrEmpty(metaData.ReportedForAppId))
if (metaData == null || String.IsNullOrEmpty(metaData.ReportedForAppId))
{
return EVENT_TYPE_ACCOUNT_CALLBACK;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ protected EventCallbackRequestEvent() { }
/// <param name="eventTime">Time the event was created (using Unix time). (required).</param>
/// <param name="eventType">Type of callback event that was triggered. (required).</param>
/// <param name="eventHash">Generated hash used to verify source of event data. (required).</param>
/// <param name="eventMetadata">eventMetadata (required).</param>
/// <param name="eventMetadata">eventMetadata.</param>
public EventCallbackRequestEvent(string eventTime = default(string), EventTypeEnum eventType = default(EventTypeEnum), string eventHash = default(string), EventCallbackRequestEventMetadata eventMetadata = default(EventCallbackRequestEventMetadata))
{

Expand All @@ -209,11 +209,6 @@ protected EventCallbackRequestEvent() { }
throw new ArgumentNullException("eventHash is a required property for EventCallbackRequestEvent and cannot be null");
}
this.EventHash = eventHash;
// to ensure "eventMetadata" is required (not null)
if (eventMetadata == null)
{
throw new ArgumentNullException("eventMetadata is a required property for EventCallbackRequestEvent and cannot be null");
}
this.EventMetadata = eventMetadata;
}

Expand Down Expand Up @@ -250,7 +245,7 @@ public static EventCallbackRequestEvent Init(string jsonData)
/// <summary>
/// Gets or Sets EventMetadata
/// </summary>
[DataMember(Name = "event_metadata", IsRequired = true, EmitDefaultValue = true)]
[DataMember(Name = "event_metadata", EmitDefaultValue = true)]
public EventCallbackRequestEventMetadata EventMetadata { get; set; }

/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion sdks/dotnet/templates/EventCallbackHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public static string GetCallbackType(EventCallbackRequest eventCallback)
{
var metaData = eventCallback.Event.EventMetadata;

if (String.IsNullOrEmpty(metaData.ReportedForAppId))
if (metaData == null || String.IsNullOrEmpty(metaData.ReportedForAppId))
{
return EVENT_TYPE_ACCOUNT_CALLBACK;
}
Expand Down
2 changes: 1 addition & 1 deletion sdks/java-v1/docs/EventCallbackRequestEvent.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Name | Type | Description | Notes
| `eventTime`<sup>*_required_</sup> | ```String``` | Time the event was created (using Unix time). | |
| `eventType`<sup>*_required_</sup> | [```EventTypeEnum```](#EventTypeEnum) | Type of callback event that was triggered. | |
| `eventHash`<sup>*_required_</sup> | ```String``` | Generated hash used to verify source of event data. | |
| `eventMetadata`<sup>*_required_</sup> | [```EventCallbackRequestEventMetadata```](EventCallbackRequestEventMetadata.md) | | |
| `eventMetadata` | [```EventCallbackRequestEventMetadata```](EventCallbackRequestEventMetadata.md) | | |



Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,11 @@ public static boolean isValid(String apiKey, EventCallbackRequest eventCallback)
public static String getCallbackType(EventCallbackRequest eventCallback) {
EventCallbackRequestEventMetadata metadata = eventCallback.getEvent().getEventMetadata();

if (metadata.getReportedForAppId() == null || metadata.getReportedForAppId().isEmpty()) {
if (
metadata == null ||
metadata.getReportedForAppId() == null ||
metadata.getReportedForAppId().isEmpty()
) {
return EventCallbackHelper.EVENT_TYPE_ACCOUNT_CALLBACK;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -237,18 +237,18 @@ public EventCallbackRequestEvent eventMetadata(EventCallbackRequestEventMetadata
* Get eventMetadata
* @return eventMetadata
**/
@javax.annotation.Nonnull
@ApiModelProperty(required = true, value = "")
@javax.annotation.Nullable
@ApiModelProperty(value = "")
@JsonProperty(JSON_PROPERTY_EVENT_METADATA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

public EventCallbackRequestEventMetadata getEventMetadata() {
return eventMetadata;
}


@JsonProperty(JSON_PROPERTY_EVENT_METADATA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public void setEventMetadata(EventCallbackRequestEventMetadata eventMetadata) {
this.eventMetadata = eventMetadata;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,48 @@ public class EventCallbackHelperTest {
public void testIsValid() throws Exception {
String reverseApiKey = new StringBuilder(APIKEY).reverse().toString();

List<String> keys = Arrays.asList(
List<String> account_keys = Arrays.asList(
"base",
"base_no_metadata",
"account",
"account_no_metadata",
"signature_request",
"signature_request_no_metadata",
"template",
"template_no_metadata"
);

for (String key : account_keys) {
JsonNode content = TestHelper.getJsonContents("EventCallbackHelper_AccountCallbacks", key);

EventCallbackRequest callbackEvent = EventCallbackRequest.init(content.toString());

Assert.assertTrue(EventCallbackHelper.isValid(APIKEY, callbackEvent));
Assert.assertFalse(EventCallbackHelper.isValid(reverseApiKey, callbackEvent));
Assert.assertEquals(
EventCallbackHelper.EVENT_TYPE_ACCOUNT_CALLBACK,
EventCallbackHelper.getCallbackType(callbackEvent)
);
}

List<String> app_keys = Arrays.asList(
"base",
"account",
"signature_request",
"template"
);

for (String key : keys) {
JsonNode content = TestHelper.getJsonContents("EventCallbackHelper", key);
for (String key : app_keys) {
JsonNode content = TestHelper.getJsonContents("EventCallbackHelper_AppCallbacks", key);

EventCallbackRequest callbackEvent = EventCallbackRequest.init(content.toString());

Assert.assertTrue(EventCallbackHelper.isValid(APIKEY, callbackEvent));
Assert.assertFalse(EventCallbackHelper.isValid(reverseApiKey, callbackEvent));
Assert.assertEquals(
EventCallbackHelper.EVENT_TYPE_APP_CALLBACK,
EventCallbackHelper.getCallbackType(callbackEvent)
);
}
}
}
6 changes: 5 additions & 1 deletion sdks/java-v1/templates/EventCallbackHelper.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,11 @@ public class EventCallbackHelper {
public static String getCallbackType(EventCallbackRequest eventCallback) {
EventCallbackRequestEventMetadata metadata = eventCallback.getEvent().getEventMetadata();
if (metadata.getReportedForAppId() == null || metadata.getReportedForAppId().isEmpty()) {
if (
metadata == null ||
metadata.getReportedForAppId() == null ||
metadata.getReportedForAppId().isEmpty()
) {
return EventCallbackHelper.EVENT_TYPE_ACCOUNT_CALLBACK;
}

Expand Down
2 changes: 1 addition & 1 deletion sdks/java-v2/docs/EventCallbackRequestEvent.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Name | Type | Description | Notes
| `eventTime`<sup>*_required_</sup> | ```String``` | Time the event was created (using Unix time). | |
| `eventType`<sup>*_required_</sup> | [```EventTypeEnum```](#EventTypeEnum) | Type of callback event that was triggered. | |
| `eventHash`<sup>*_required_</sup> | ```String``` | Generated hash used to verify source of event data. | |
| `eventMetadata`<sup>*_required_</sup> | [```EventCallbackRequestEventMetadata```](EventCallbackRequestEventMetadata.md) | | |
| `eventMetadata` | [```EventCallbackRequestEventMetadata```](EventCallbackRequestEventMetadata.md) | | |



Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,11 @@ public static boolean isValid(String apiKey, EventCallbackRequest eventCallback)
public static String getCallbackType(EventCallbackRequest eventCallback) {
EventCallbackRequestEventMetadata metadata = eventCallback.getEvent().getEventMetadata();

if (metadata.getReportedForAppId() == null || metadata.getReportedForAppId().isEmpty()) {
if (
metadata == null ||
metadata.getReportedForAppId() == null ||
metadata.getReportedForAppId().isEmpty()
) {
return EventCallbackHelper.EVENT_TYPE_ACCOUNT_CALLBACK;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -237,18 +237,18 @@ public EventCallbackRequestEvent eventMetadata(EventCallbackRequestEventMetadata
* Get eventMetadata
* @return eventMetadata
**/
@jakarta.annotation.Nonnull
@ApiModelProperty(required = true, value = "")
@jakarta.annotation.Nullable
@ApiModelProperty(value = "")
@JsonProperty(JSON_PROPERTY_EVENT_METADATA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

public EventCallbackRequestEventMetadata getEventMetadata() {
return eventMetadata;
}


@JsonProperty(JSON_PROPERTY_EVENT_METADATA)
@JsonInclude(value = JsonInclude.Include.ALWAYS)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public void setEventMetadata(EventCallbackRequestEventMetadata eventMetadata) {
this.eventMetadata = eventMetadata;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,48 @@ public class EventCallbackHelperTest {
public void testIsValid() throws Exception {
String reverseApiKey = new StringBuilder(APIKEY).reverse().toString();

List<String> keys = Arrays.asList(
List<String> account_keys = Arrays.asList(
"base",
"base_no_metadata",
"account",
"account_no_metadata",
"signature_request",
"signature_request_no_metadata",
"template",
"template_no_metadata"
);

for (String key : account_keys) {
JsonNode content = TestHelper.getJsonContents("EventCallbackHelper_AccountCallbacks", key);

EventCallbackRequest callbackEvent = EventCallbackRequest.init(content.toString());

Assert.assertTrue(EventCallbackHelper.isValid(APIKEY, callbackEvent));
Assert.assertFalse(EventCallbackHelper.isValid(reverseApiKey, callbackEvent));
Assert.assertEquals(
EventCallbackHelper.EVENT_TYPE_ACCOUNT_CALLBACK,
EventCallbackHelper.getCallbackType(callbackEvent)
);
}

List<String> app_keys = Arrays.asList(
"base",
"account",
"signature_request",
"template"
);

for (String key : keys) {
JsonNode content = TestHelper.getJsonContents("EventCallbackHelper", key);
for (String key : app_keys) {
JsonNode content = TestHelper.getJsonContents("EventCallbackHelper_AppCallbacks", key);

EventCallbackRequest callbackEvent = EventCallbackRequest.init(content.toString());

Assert.assertTrue(EventCallbackHelper.isValid(APIKEY, callbackEvent));
Assert.assertFalse(EventCallbackHelper.isValid(reverseApiKey, callbackEvent));
Assert.assertEquals(
EventCallbackHelper.EVENT_TYPE_APP_CALLBACK,
EventCallbackHelper.getCallbackType(callbackEvent)
);
}
}
}
6 changes: 5 additions & 1 deletion sdks/java-v2/templates/EventCallbackHelper.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,11 @@ public class EventCallbackHelper {
public static String getCallbackType(EventCallbackRequest eventCallback) {
EventCallbackRequestEventMetadata metadata = eventCallback.getEvent().getEventMetadata();
if (metadata.getReportedForAppId() == null || metadata.getReportedForAppId().isEmpty()) {
if (
metadata == null ||
metadata.getReportedForAppId() == null ||
metadata.getReportedForAppId().isEmpty()
) {
return EventCallbackHelper.EVENT_TYPE_ACCOUNT_CALLBACK;
}

Expand Down
2 changes: 1 addition & 1 deletion sdks/node/dist/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -23653,7 +23653,7 @@ EventCallbackHelper.isValid = (apiKey, eventCallback) => {
return eventCallback.event.eventHash === hmac.digest("hex").toString();
};
EventCallbackHelper.getCallbackType = (eventCallback) => {
if (!eventCallback.event.eventMetadata.reportedForAppId) {
if (!eventCallback.event.eventMetadata || !eventCallback.event.eventMetadata.reportedForAppId) {
return _EventCallbackHelper.EVENT_TYPE_ACCOUNT_CALLBACK;
}
return _EventCallbackHelper.EVENT_TYPE_APP_CALLBACK;
Expand Down
2 changes: 1 addition & 1 deletion sdks/node/docs/model/EventCallbackRequestEvent.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ Name | Type | Description | Notes
| `eventTime`<sup>*_required_</sup> | ```string``` | Time the event was created (using Unix time). | |
| `eventType`<sup>*_required_</sup> | ```string``` | Type of callback event that was triggered. | |
| `eventHash`<sup>*_required_</sup> | ```string``` | Generated hash used to verify source of event data. | |
| `eventMetadata`<sup>*_required_</sup> | [```EventCallbackRequestEventMetadata```](EventCallbackRequestEventMetadata.md) | | |
| `eventMetadata` | [```EventCallbackRequestEventMetadata```](EventCallbackRequestEventMetadata.md) | | |

[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)
5 changes: 4 additions & 1 deletion sdks/node/model/eventCallbackHelper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,10 @@ export class EventCallbackHelper {
* "app_callback" will always include a value for "reported_for_app_id"
*/
static getCallbackType = (eventCallback: EventCallbackRequest): string => {
if (!eventCallback.event.eventMetadata.reportedForAppId) {
if (
!eventCallback.event.eventMetadata ||
!eventCallback.event.eventMetadata.reportedForAppId
) {
return EventCallbackHelper.EVENT_TYPE_ACCOUNT_CALLBACK;
}

Expand Down
2 changes: 1 addition & 1 deletion sdks/node/model/eventCallbackRequestEvent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ export class EventCallbackRequestEvent {
* Generated hash used to verify source of event data.
*/
"eventHash": string;
"eventMetadata": EventCallbackRequestEventMetadata;
"eventMetadata"?: EventCallbackRequestEventMetadata;

static discriminator: string | undefined = undefined;

Expand Down
Loading

0 comments on commit 9ecf290

Please sign in to comment.