Skip to content
This repository was archived by the owner on Apr 30, 2024. It is now read-only.

Commit fd2fd06

Browse files
committed
Improved abstraction from private channels
1 parent 63068be commit fd2fd06

File tree

4 files changed

+41
-72
lines changed

4 files changed

+41
-72
lines changed
Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,53 @@
11
// Quarrel © 2022
22

33
using Discord.API.Models.Json.Channels;
4+
using Quarrel.Client.Models.Channels.Interfaces;
45

56
namespace Quarrel.Client.Models.Channels.Abstract
67
{
7-
public abstract class PrivateChannel : Channel
8+
/// <summary>
9+
/// The base class for private channels.
10+
/// </summary>
11+
public abstract class PrivateChannel : Channel, IPrivateChannel
812
{
913
internal PrivateChannel(JsonChannel restChannel, QuarrelClient context) :
1014
base(restChannel, context)
1115
{
16+
LastMessageId = restChannel.LastMessageId;
17+
RTCRegion = restChannel.RTCRegion;
18+
}
19+
20+
/// <inheritdoc/>
21+
public int? MentionCount { get; private set; }
22+
23+
/// <inheritdoc/>
24+
public ulong? LastMessageId { get; private set; }
25+
26+
/// <inheritdoc/>
27+
public ulong? LastReadMessageId { get; private set; }
28+
29+
/// <inheritdoc/>
30+
public string? RTCRegion { get; private set; }
31+
32+
/// <inheritdoc/>
33+
public bool IsUnread => LastMessageId > LastReadMessageId;
34+
35+
int? IMessageChannel.MentionCount
36+
{
37+
get => MentionCount;
38+
set => MentionCount = value;
39+
}
40+
41+
ulong? IMessageChannel.LastMessageId
42+
{
43+
get => LastMessageId;
44+
set => LastMessageId = value;
45+
}
46+
47+
ulong? IMessageChannel.LastReadMessageId
48+
{
49+
get => LastReadMessageId;
50+
set => LastReadMessageId = value;
1251
}
1352
}
1453
}

src/Quarrel.Client/Models/Channels/DirectChannel.cs

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -20,46 +20,11 @@ internal DirectChannel(JsonChannel restChannel, QuarrelClient context) :
2020
Guard.IsNotNull(restChannel.Recipients, nameof(restChannel.Recipients));
2121

2222
RecipientId = restChannel.Recipients[0].Id;
23-
LastMessageId = restChannel.LastMessageId;
24-
RTCRegion = restChannel.RTCRegion;
2523
}
2624

2725
/// <inheritdoc/>
2826
public ulong RecipientId { get; private set; }
2927

30-
/// <inheritdoc/>
31-
public int? MentionCount { get; private set; }
32-
33-
/// <inheritdoc/>
34-
public ulong? LastMessageId { get; private set; }
35-
36-
/// <inheritdoc/>
37-
public ulong? LastReadMessageId { get; private set; }
38-
39-
/// <inheritdoc/>
40-
public bool IsUnread => LastMessageId > LastReadMessageId;
41-
42-
int? IMessageChannel.MentionCount
43-
{
44-
get => MentionCount;
45-
set => MentionCount = value;
46-
}
47-
48-
ulong? IMessageChannel.LastMessageId
49-
{
50-
get => LastMessageId;
51-
set => LastMessageId = value;
52-
}
53-
54-
ulong? IMessageChannel.LastReadMessageId
55-
{
56-
get => LastReadMessageId;
57-
set => LastReadMessageId = value;
58-
}
59-
60-
/// <inheritdoc/>
61-
public string? RTCRegion { get; private set; }
62-
6328
/// <summary>
6429
/// Gets the recipient of the direct message channel.
6530
/// </summary>

src/Quarrel.Client/Models/Channels/GroupChannel.cs

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,13 @@ internal GroupChannel(JsonChannel restChannel, QuarrelClient context) :
2323

2424
OwnerId = restChannel.OwnerId.Value;
2525

26-
RTCRegion = restChannel.RTCRegion;
2726
Recipients = restChannel.Recipients.Select(x => new User(x, context)).ToArray();
2827
Icon = restChannel.Icon;
29-
LastMessageId = restChannel.LastMessageId;
3028
}
3129

3230
/// <inheritdoc/>
3331
public ulong OwnerId { get; private set; }
3432

35-
/// <inheritdoc/>
36-
public string? RTCRegion { get; private set; }
37-
3833
/// <inheritdoc/>
3934
public User[] Recipients { get; private set; }
4035

@@ -43,36 +38,6 @@ internal GroupChannel(JsonChannel restChannel, QuarrelClient context) :
4338

4439
IUser[] IGroupChannel.Recipients => Recipients;
4540

46-
/// <inheritdoc/>
47-
public int? MentionCount { get; internal set; }
48-
49-
/// <inheritdoc/>
50-
public ulong? LastMessageId { get; internal set; }
51-
52-
/// <inheritdoc/>
53-
public ulong? LastReadMessageId { get; internal set; }
54-
55-
/// <inheritdoc/>
56-
public bool IsUnread => LastMessageId > LastReadMessageId;
57-
58-
int? IMessageChannel.MentionCount
59-
{
60-
get => MentionCount;
61-
set => MentionCount = value;
62-
}
63-
64-
ulong? IMessageChannel.LastMessageId
65-
{
66-
get => LastMessageId;
67-
set => LastMessageId = value;
68-
}
69-
70-
ulong? IMessageChannel.LastReadMessageId
71-
{
72-
get => LastReadMessageId;
73-
set => LastReadMessageId = value;
74-
}
75-
7641
internal override JsonChannel ToJsonChannel()
7742
{
7843
JsonChannel restChannel = base.ToJsonChannel();

src/Quarrel.Client/QuarrelClient.Methods.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public partial class QuarrelClient
3232
return user;
3333
}
3434

35-
public Settings GetSettings()
35+
public Settings? GetSettings()
3636
{
3737
return _settings;
3838
}

0 commit comments

Comments
 (0)