Skip to content

Commit

Permalink
refactor: remove temporary naming on CreateMember
Browse files Browse the repository at this point in the history
  • Loading branch information
Tr00d committed Jun 3, 2024
1 parent da4c568 commit 3986550
Show file tree
Hide file tree
Showing 11 changed files with 126 additions and 109 deletions.
44 changes: 22 additions & 22 deletions Vonage.Test/Conversations/CreateMember/RequestBuilderTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,9 @@ public class RequestBuilderTest
.Create()
.Map(request => request.Channel)
.Should()
.BeSuccess(new MemberChannelV2(ChannelType.App,
new MemberChannelFromV2(ChannelType.App, ChannelType.Phone, ChannelType.Sms),
new MemberChannelToV2(ChannelType.App, ValidUserId, Maybe<string>.None, Maybe<string>.None)));
.BeSuccess(new MemberChannel(ChannelType.App,
MemberChannelFrom.FromChannels(ChannelType.App, ChannelType.Phone, ChannelType.Sms),
new MemberChannelToV(ChannelType.App, ValidUserId, Maybe<string>.None, Maybe<string>.None)));

[Fact]
public void Build_ShouldReturnFailure_GivenChannelTypesAreEmpty() =>
Expand All @@ -156,7 +156,7 @@ public class RequestBuilderTest
.WithApp(ValidUserId)
.Create()
.Should()
.BeParsingFailure("Channels cannot be empty.");
.BeParsingFailure("Type cannot be null or whitespace.");

private static IBuilderForOptional BuildDefaultBuilder() =>
CreateMemberRequest.Build()
Expand All @@ -175,9 +175,9 @@ public class RequestBuilderTest
.Create()
.Map(request => request.Channel)
.Should()
.BeSuccess(new MemberChannelV2(ChannelType.Phone,
new MemberChannelFromV2(ChannelType.Phone, ChannelType.Messenger),
new MemberChannelToV2(ChannelType.Phone, Maybe<string>.None, "NUM-123", Maybe<string>.None)));
.BeSuccess(new MemberChannel(ChannelType.Phone,
MemberChannelFrom.FromChannels(ChannelType.Phone, ChannelType.Messenger),
new MemberChannelToV(ChannelType.Phone, Maybe<string>.None, "NUM-123", Maybe<string>.None)));

[Fact]
public void Build_ShouldSetSmsChannel() =>
Expand All @@ -189,9 +189,9 @@ public class RequestBuilderTest
.Create()
.Map(request => request.Channel)
.Should()
.BeSuccess(new MemberChannelV2(ChannelType.Sms,
new MemberChannelFromV2(ChannelType.Sms, ChannelType.Viber),
new MemberChannelToV2(ChannelType.Sms, Maybe<string>.None, "NUM-123", Maybe<string>.None)));
.BeSuccess(new MemberChannel(ChannelType.Sms,
MemberChannelFrom.FromChannels(ChannelType.Sms, ChannelType.Viber),
new MemberChannelToV(ChannelType.Sms, Maybe<string>.None, "NUM-123", Maybe<string>.None)));

[Fact]
public void Build_ShouldSetMmsChannel() =>
Expand All @@ -203,9 +203,9 @@ public class RequestBuilderTest
.Create()
.Map(request => request.Channel)
.Should()
.BeSuccess(new MemberChannelV2(ChannelType.Mms,
new MemberChannelFromV2(ChannelType.Mms, ChannelType.Viber),
new MemberChannelToV2(ChannelType.Mms, Maybe<string>.None, "NUM-123", Maybe<string>.None)));
.BeSuccess(new MemberChannel(ChannelType.Mms,
MemberChannelFrom.FromChannels(ChannelType.Mms, ChannelType.Viber),
new MemberChannelToV(ChannelType.Mms, Maybe<string>.None, "NUM-123", Maybe<string>.None)));

[Fact]
public void Build_ShouldSetWhatsAppChannel() =>
Expand All @@ -217,9 +217,9 @@ public class RequestBuilderTest
.Create()
.Map(request => request.Channel)
.Should()
.BeSuccess(new MemberChannelV2(ChannelType.Whatsapp,
new MemberChannelFromV2(ChannelType.Whatsapp, ChannelType.Viber),
new MemberChannelToV2(ChannelType.Whatsapp, Maybe<string>.None, "NUM-123", Maybe<string>.None)));
.BeSuccess(new MemberChannel(ChannelType.Whatsapp,
MemberChannelFrom.FromChannels(ChannelType.Whatsapp, ChannelType.Viber),
new MemberChannelToV(ChannelType.Whatsapp, Maybe<string>.None, "NUM-123", Maybe<string>.None)));

[Fact]
public void Build_ShouldSetViberChannel() =>
Expand All @@ -231,9 +231,9 @@ public class RequestBuilderTest
.Create()
.Map(request => request.Channel)
.Should()
.BeSuccess(new MemberChannelV2(ChannelType.Viber,
new MemberChannelFromV2(ChannelType.Viber),
new MemberChannelToV2(ChannelType.Viber, Maybe<string>.None, Maybe<string>.None, ValidUserId)));
.BeSuccess(new MemberChannel(ChannelType.Viber,
MemberChannelFrom.FromChannels(ChannelType.Viber),
new MemberChannelToV(ChannelType.Viber, Maybe<string>.None, Maybe<string>.None, ValidUserId)));

[Fact]
public void Build_ShouldSetMessengerChannel() =>
Expand All @@ -245,7 +245,7 @@ public class RequestBuilderTest
.Create()
.Map(request => request.Channel)
.Should()
.BeSuccess(new MemberChannelV2(ChannelType.Messenger,
new MemberChannelFromV2(ChannelType.Messenger, ChannelType.Phone),
new MemberChannelToV2(ChannelType.Messenger, Maybe<string>.None, Maybe<string>.None, ValidUserId)));
.BeSuccess(new MemberChannel(ChannelType.Messenger,
MemberChannelFrom.FromChannels(ChannelType.Messenger, ChannelType.Phone),
new MemberChannelToV(ChannelType.Messenger, Maybe<string>.None, Maybe<string>.None, ValidUserId)));
}
6 changes: 3 additions & 3 deletions Vonage.Test/Conversations/CreateMember/SerializationTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@ internal static void VerifyResponse(Member response)
null
));
response.Channel.Should().Be(new MemberChannel(
"app",
new MemberChannelFrom("app"),
new MemberChannelTo("app", "string", null, null)
ChannelType.App,
MemberChannelFrom.FromChannels(ChannelType.App),
new MemberChannelToV(ChannelType.App, "string", null, null)
));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"channel": {
"type": "app",
"from": {
"type": "string"
"type": "app"
},
"to": {
"type": "app",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
"type": "mms"
},
"to": {
"type": "mms",
"number": "string"
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
"type": "messenger"
},
"to": {
"type": "messenger",
"id": "app"
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
"type": "viber"
},
"to": {
"type": "viber",
"id": "app"
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
"type": "whatsapp"
},
"to": {
"type": "whatsapp",
"number": "string"
}
},
Expand Down
48 changes: 24 additions & 24 deletions Vonage.Test/Conversations/GetMember/SerializationTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,9 @@ internal static void VerifyAppResponse(Member response)
null
));
response.Channel.Should().Be(new MemberChannel(
"app",
new MemberChannelFrom("app"),
new MemberChannelTo("app", "string", null, null)
ChannelType.App,
MemberChannelFrom.FromChannels(ChannelType.App),
new MemberChannelToV(ChannelType.App, "string", null, null)
));
}

Expand All @@ -88,9 +88,9 @@ internal static void VerifyMessengerResponse(Member response)
null
));
response.Channel.Should().Be(new MemberChannel(
"messenger",
new MemberChannelFrom("messenger"),
new MemberChannelTo(null, null, null, "app")
ChannelType.Messenger,
MemberChannelFrom.FromChannels(ChannelType.Messenger),
new MemberChannelToV(ChannelType.Messenger, null, null, "app")
));
}

Expand All @@ -103,9 +103,9 @@ internal static void VerifyViberResponse(Member response)
null
));
response.Channel.Should().Be(new MemberChannel(
"viber",
new MemberChannelFrom("viber"),
new MemberChannelTo(null, null, null, "app")
ChannelType.Viber,
MemberChannelFrom.FromChannels(ChannelType.Viber),
new MemberChannelToV(ChannelType.Viber, null, null, "app")
));
}

Expand All @@ -118,9 +118,9 @@ internal static void VerifyMMSResponse(Member response)
null
));
response.Channel.Should().Be(new MemberChannel(
"mms",
new MemberChannelFrom("mms"),
new MemberChannelTo(null, null, "string", null)
ChannelType.Mms,
MemberChannelFrom.FromChannels(ChannelType.Mms),
new MemberChannelToV(ChannelType.Mms, null, "string", null)
));
}

Expand All @@ -133,9 +133,9 @@ internal static void VerifyWhatsAppResponse(Member response)
null
));
response.Channel.Should().Be(new MemberChannel(
"whatsapp",
new MemberChannelFrom("whatsapp"),
new MemberChannelTo(null, null, "string", null)
ChannelType.Whatsapp,
MemberChannelFrom.FromChannels(ChannelType.Whatsapp),
new MemberChannelToV(ChannelType.Whatsapp, null, "string", null)
));
}

Expand All @@ -148,9 +148,9 @@ internal static void VerifyPhoneResponse(Member response)
null
));
response.Channel.Should().Be(new MemberChannel(
"phone",
new MemberChannelFrom("phone"),
new MemberChannelTo("phone", null, "string", null)
ChannelType.Phone,
MemberChannelFrom.FromChannels(ChannelType.Phone),
new MemberChannelToV(ChannelType.Phone, null, "string", null)
));
}

Expand All @@ -163,9 +163,9 @@ internal static void VerifySMSResponse(Member response)
null
));
response.Channel.Should().Be(new MemberChannel(
"sms",
new MemberChannelFrom("sms"),
new MemberChannelTo("sms", null, "string", null)
ChannelType.Sms,
MemberChannelFrom.FromChannels(ChannelType.Sms),
new MemberChannelToV(ChannelType.Sms, null, "string", null)
));
}

Expand All @@ -177,9 +177,9 @@ internal static void VerifyInitiatorAdminResponse(Member response)
new MemberInitiatorInvited(true)
));
response.Channel.Should().Be(new MemberChannel(
"app",
new MemberChannelFrom("string"),
new MemberChannelTo("app", "string", null, null)
ChannelType.App,
MemberChannelFrom.FromChannels(ChannelType.App),
new MemberChannelToV(ChannelType.App, "string", null, null)
));
}

Expand Down
35 changes: 32 additions & 3 deletions Vonage/Conversations/CreateMember/CreateMemberRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,28 +43,52 @@ public enum AvailableStates
/// <returns>The builder.</returns>
public static IBuilderForConversationId Build() => new CreateMemberRequestBuilder();

/// <summary>
/// Invite or join a member to a conversation
/// </summary>
[JsonConverter(typeof(EnumDescriptionJsonConverter<AvailableStates>))]
[JsonPropertyOrder(0)]
public AvailableStates State { get; internal init; }

[JsonIgnore] public string ConversationId { get; internal init; }
/// <summary>
/// </summary>
[JsonIgnore]
public string ConversationId { get; internal init; }

[JsonPropertyOrder(1)] public MemberUser User { get; internal init; }
/// <summary>
/// Either the user id or name is required.
/// </summary>
[JsonPropertyOrder(1)]
public MemberUser User { get; internal init; }

[JsonPropertyOrder(2)] public MemberChannelV2 Channel { get; internal init; }
/// <summary>
/// </summary>
[JsonPropertyOrder(2)]
public MemberChannel Channel { get; internal init; }

/// <summary>
/// Knocker ID. A knocker is a pre-member of a conversation who does not exist yet
/// </summary>
[JsonConverter(typeof(MaybeJsonConverter<string>))]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public Maybe<string> KnockingId { get; internal init; }

/// <summary>
/// Member ID of the member that sends the invitation
/// </summary>
[JsonConverter(typeof(MaybeJsonConverter<string>))]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public Maybe<string> InvitingMemberId { get; internal init; }

/// <summary>
/// </summary>
[JsonConverter(typeof(MaybeJsonConverter<string>))]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public Maybe<string> From { get; internal init; }

/// <summary>
/// Details about the current media setting states
/// </summary>
[JsonConverter(typeof(MaybeJsonConverter<MemberMedia>))]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public Maybe<MemberMedia> Media { get; internal init; }
Expand All @@ -74,4 +98,9 @@ public enum AvailableStates
"application/json");
}

/// <summary>
/// Represents a user
/// </summary>
/// <param name="Id">User ID</param>
/// <param name="Name">Unique name for a user</param>
public record MemberUser(string Id, string Name);
Loading

0 comments on commit 3986550

Please sign in to comment.