Skip to content

Commit

Permalink
fix: Fix the placement of some fields across variants (box/box-openap…
Browse files Browse the repository at this point in the history
  • Loading branch information
box-sdk-build committed Aug 20, 2024
1 parent 6d205c4 commit cce69d3
Show file tree
Hide file tree
Showing 11 changed files with 46 additions and 101 deletions.
2 changes: 1 addition & 1 deletion .codegen.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{ "engineHash": "4ca165c", "specHash": "8d1ca31", "version": "1.0.0" }
{ "engineHash": "4ca165c", "specHash": "da821cd", "version": "1.0.0" }
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public async System.Threading.Tasks.Task TestIntegrationMappings() {
const string partnerItemId = "1";
string userId = Utils.GetEnvVar(name: "USER_ID");
BoxClient userClient = new CommonsManager().GetDefaultClientWithUserSubject(userId: userId);
await Assert.That.IsExceptionAsync(async() => await userClient.IntegrationMappings.CreateSlackIntegrationMappingAsync(requestBody: new IntegrationMappingSlackCreateRequest(partnerItem: new IntegrationMappingPartnerItemSlack(id: partnerItemId) { SlackOrgId = slackOrgId }, boxItem: new IntegrationMappingBoxItemSlack(id: folder.Id))));
await Assert.That.IsExceptionAsync(async() => await userClient.IntegrationMappings.CreateSlackIntegrationMappingAsync(requestBody: new IntegrationMappingSlackCreateRequest(boxItem: new IntegrationMappingBoxItemSlack(id: folder.Id)) { PartnerItem = new IntegrationMappingPartnerItemSlack(id: partnerItemId) { SlackOrgId = slackOrgId } }));
IntegrationMappings integrationMappings = await userClient.IntegrationMappings.GetSlackIntegrationMappingAsync();
Assert.IsTrue(NullableUtils.Unwrap(integrationMappings.Entries).Count == 0);
await client.Folders.DeleteFolderByIdAsync(folderId: folder.Id);
Expand Down
42 changes: 20 additions & 22 deletions Box.Sdk.Gen/Schemas/IntegrationMapping/IntegrationMapping.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,6 @@

namespace Box.Sdk.Gen.Schemas {
public class IntegrationMapping : IntegrationMappingBase {
/// <summary>
/// Mapping type
/// </summary>
[JsonPropertyName("type")]
[JsonConverter(typeof(StringEnumConverter<IntegrationMappingTypeField>))]
public StringEnum<IntegrationMappingTypeField> Type { get; }

/// <summary>
/// Mapped item object for Slack
/// </summary>
[JsonPropertyName("partner_item")]
public IntegrationMappingPartnerItemSlackUnion PartnerItem { get; }

/// <summary>
/// The Box folder, to which the object from the
/// partner app domain (referenced in `partner_item_id`) is mapped
Expand All @@ -33,9 +20,6 @@ public class IntegrationMapping : IntegrationMappingBase {
[JsonPropertyName("is_manually_created")]
public bool? IsManuallyCreated { get; init; }

/// <summary>
/// Integration mapping options for Slack
/// </summary>
[JsonPropertyName("options")]
public IntegrationMappingSlackOptions? Options { get; init; }

Expand Down Expand Up @@ -65,17 +49,31 @@ public class IntegrationMapping : IntegrationMappingBase {
[JsonPropertyName("modified_at")]
public System.DateTimeOffset? ModifiedAt { get; init; }

public IntegrationMapping(IntegrationMappingPartnerItemSlackUnion partnerItem, FolderMini boxItem, IntegrationMappingTypeField type = IntegrationMappingTypeField.IntegrationMapping) {
Type = type;
PartnerItem = partnerItem;
/// <summary>
/// Identifies the Box partner app,
/// with which the mapping is associated.
/// Currently only supports Slack.
/// (part of the composite key together with `id`)
/// </summary>
[JsonPropertyName("integration_type")]
[JsonConverter(typeof(StringEnumConverter<IntegrationMappingIntegrationTypeField>))]
public StringEnum<IntegrationMappingIntegrationTypeField>? IntegrationType { get; init; }

/// <summary>
/// Mapped item object for Slack or Teams
/// </summary>
[JsonPropertyName("partner_item")]
public IntegrationMappingPartnerItemSlackUnion PartnerItem { get; }

public IntegrationMapping(string id, FolderMini boxItem, IntegrationMappingPartnerItemSlackUnion partnerItem, IntegrationMappingBaseTypeField type = IntegrationMappingBaseTypeField.IntegrationMapping) : base(id, type) {
BoxItem = boxItem;
PartnerItem = partnerItem;
}

[JsonConstructorAttribute]
internal IntegrationMapping(IntegrationMappingPartnerItemSlackUnion partnerItem, FolderMini boxItem, StringEnum<IntegrationMappingTypeField> type) {
Type = IntegrationMappingTypeField.IntegrationMapping;
PartnerItem = partnerItem;
internal IntegrationMapping(string id, FolderMini boxItem, IntegrationMappingPartnerItemSlackUnion partnerItem, StringEnum<IntegrationMappingBaseTypeField> type) : base(id, type ?? new StringEnum<IntegrationMappingBaseTypeField>(IntegrationMappingBaseTypeField.IntegrationMapping)) {
BoxItem = boxItem;
PartnerItem = partnerItem;
}
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
using System.ComponentModel;
using Box.Sdk.Gen.Schemas;

namespace Box.Sdk.Gen.Schemas {
public enum IntegrationMappingBaseIntegrationTypeField {
public enum IntegrationMappingIntegrationTypeField {
[Description("slack")]
Slack
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,24 @@ public class IntegrationMappingBase {
/// with `integration_type`)
/// </summary>
[JsonPropertyName("id")]
public string? Id { get; init; }
public string Id { get; }

/// <summary>
/// Identifies the Box partner app,
/// with which the mapping is associated.
/// Currently only supports Slack.
/// (part of the composite key together with `id`)
/// Mapping type
/// </summary>
[JsonPropertyName("integration_type")]
[JsonConverter(typeof(StringEnumConverter<IntegrationMappingBaseIntegrationTypeField>))]
public StringEnum<IntegrationMappingBaseIntegrationTypeField>? IntegrationType { get; init; }
[JsonPropertyName("type")]
[JsonConverter(typeof(StringEnumConverter<IntegrationMappingBaseTypeField>))]
public StringEnum<IntegrationMappingBaseTypeField> Type { get; }

public IntegrationMappingBase() {

public IntegrationMappingBase(string id, IntegrationMappingBaseTypeField type = IntegrationMappingBaseTypeField.IntegrationMapping) {
Id = id;
Type = type;
}

[JsonConstructorAttribute]
internal IntegrationMappingBase(string id, StringEnum<IntegrationMappingBaseTypeField> type) {
Id = id;
Type = IntegrationMappingBaseTypeField.IntegrationMapping;
}
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
using System.ComponentModel;
using Box.Sdk.Gen.Schemas;

namespace Box.Sdk.Gen.Schemas {
public enum IntegrationMappingTypeField {
public enum IntegrationMappingBaseTypeField {
[Description("integration_mapping")]
IntegrationMapping
}
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,16 @@

namespace Box.Sdk.Gen.Schemas {
public class IntegrationMappingSlackCreateRequest {
[JsonPropertyName("partner_item")]
public IntegrationMappingPartnerItemSlack PartnerItem { get; }

[JsonPropertyName("box_item")]
public IntegrationMappingBoxItemSlack BoxItem { get; }

[JsonPropertyName("options")]
public IntegrationMappingSlackOptions? Options { get; init; }

public IntegrationMappingSlackCreateRequest(IntegrationMappingPartnerItemSlack partnerItem, IntegrationMappingBoxItemSlack boxItem) {
PartnerItem = partnerItem;
[JsonPropertyName("partner_item")]
public IntegrationMappingPartnerItemSlack? PartnerItem { get; init; }

public IntegrationMappingSlackCreateRequest(IntegrationMappingBoxItemSlack boxItem) {
BoxItem = boxItem;
}
}
Expand Down
6 changes: 3 additions & 3 deletions docs/IntegrationMappings.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@


- [List Slack integration mappings](#list-slack-integration-mappings)
- [Create integration mapping](#create-integration-mapping)
- [Create Slack integration mapping](#create-slack-integration-mapping)
- [Update Slack integration mapping](#update-slack-integration-mapping)
- [Delete Slack integration mapping](#delete-slack-integration-mapping)

Expand Down Expand Up @@ -40,7 +40,7 @@ This function returns a value of type `IntegrationMappings`.
Returns a collection of integration mappings


## Create integration mapping
## Create Slack integration mapping

Creates a [Slack integration mapping](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack)
by mapping a Slack channel to a Box item.
Expand All @@ -55,7 +55,7 @@ See the endpoint docs at

<!-- sample post_integration_mappings_slack -->
```
await userClient.IntegrationMappings.CreateSlackIntegrationMappingAsync(requestBody: new IntegrationMappingSlackCreateRequest(partnerItem: new IntegrationMappingPartnerItemSlack(id: partnerItemId) { SlackOrgId = slackOrgId }, boxItem: new IntegrationMappingBoxItemSlack(id: folder.Id)));
await userClient.IntegrationMappings.CreateSlackIntegrationMappingAsync(requestBody: new IntegrationMappingSlackCreateRequest(boxItem: new IntegrationMappingBoxItemSlack(id: folder.Id)) { PartnerItem = new IntegrationMappingPartnerItemSlack(id: partnerItemId) { SlackOrgId = slackOrgId } });
```

### Arguments
Expand Down

0 comments on commit cce69d3

Please sign in to comment.