Skip to content

Commit 2a3c23a

Browse files
authoredApr 2, 2023
Fix adding relative reminder. Fixes #24
1 parent f53a1b3 commit 2a3c23a

File tree

6 files changed

+44
-13
lines changed

6 files changed

+44
-13
lines changed
 

‎src/Todoist.Net.Tests/Services/ReminersServiceTests.cs

+35-8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Linq;
3+
using System.Threading.Tasks;
34

45
using Todoist.Net.Models;
56
using Todoist.Net.Tests.Extensions;
@@ -21,25 +22,51 @@ public ReminersServiceTests(ITestOutputHelper outputHelper)
2122
}
2223

2324
[Fact]
24-
public void CreateDelete_Success()
25+
public async Task CreateDelete_Success()
2526
{
2627
var client = TodoistClientFactory.Create(_outputHelper);
2728

2829
var transaction = client.CreateTransaction();
2930

30-
var itemId = transaction.Items.AddAsync(new Item("Temp")).Result;
31+
var itemId = await transaction.Items.AddAsync(new Item("Temp")).ConfigureAwait(false);
3132
var reminderId =
32-
transaction.Reminders.AddAsync(new Reminder(itemId) { DueDate = new DueDate(DateTime.UtcNow.AddDays(1)) }).Result;
33-
transaction.CommitAsync().Wait();
33+
await transaction.Reminders.AddAsync(new Reminder(itemId) { DueDate = new DueDate(DateTime.UtcNow.AddDays(1)) }).ConfigureAwait(false);
34+
await transaction.CommitAsync().ConfigureAwait(false);
3435

35-
var reminders = client.Reminders.GetAsync().Result;
36+
var reminders = await client.Reminders.GetAsync().ConfigureAwait(false);
3637
Assert.True(reminders.Any());
3738

38-
var reminderInfo = client.Reminders.GetAsync(reminderId).Result;
39+
var reminderInfo = await client.Reminders.GetAsync(reminderId).ConfigureAwait(false);
3940
Assert.True(reminderInfo != null);
4041

41-
client.Reminders.DeleteAsync(reminderInfo.Reminder.Id).Wait();
42-
client.Items.DeleteAsync(itemId);
42+
await client.Reminders.DeleteAsync(reminderInfo.Reminder.Id).ConfigureAwait(false);
43+
await client.Items.DeleteAsync(itemId);
44+
}
45+
46+
[Fact]
47+
public async Task AddRelativeReminder_Success()
48+
{
49+
var client = TodoistClientFactory.Create(_outputHelper);
50+
51+
var item = new Item("Test")
52+
{
53+
DueDate = new DueDate(DateTime.UtcNow.AddDays(1))
54+
};
55+
56+
var taskId = await client.Items.AddAsync(item).ConfigureAwait(false);
57+
58+
var user = await client.Users.GetCurrentAsync().ConfigureAwait(false);
59+
var reminder = new Reminder(taskId)
60+
{
61+
MinuteOffset = 60,
62+
NotifyUid = user.Id
63+
};
64+
65+
var reminderId = await client.Reminders.AddAsync(reminder).ConfigureAwait(false);
66+
67+
Assert.NotNull(reminderId.PersistentId);
68+
69+
await client.Items.DeleteAsync(item.Id);
4370
}
4471
}
4572
}

‎src/Todoist.Net.Tests/Services/UsersServiceTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public async Task GetCurrentAsync_Success()
2828
var user = await client.Users.GetCurrentAsync();
2929

3030
Assert.NotNull(user);
31-
Assert.True(user.Id > 0);
31+
Assert.NotNull(user.Id);
3232
}
3333

3434
[Fact]

‎src/Todoist.Net/Models/BaseEntity.cs

+5-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@ internal BaseEntity()
2525
[JsonProperty("id")]
2626
public ComplexId Id { get; set; }
2727

28-
internal bool ShouldSerializeId()
28+
/// <summary>
29+
/// Checks if the Id property should be serialized.
30+
/// </summary>
31+
/// <returns><c>True</c> if the property should be serialized, <c>false</c> otherwise.</returns>
32+
public bool ShouldSerializeId()
2933
{
3034
return !Id.IsEmpty;
3135
}

‎src/Todoist.Net/Models/Reminder.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ internal Reminder()
6363
/// <value>The mm offset.</value>
6464
/// <remarks>The relative time in minutes before the due date of the item, in which the reminder should be triggered.
6565
/// Note, that the item should have a due date set in order to add a relative reminder.</remarks>
66-
[JsonProperty("mm_offset")]
66+
[JsonProperty("minute_offset")]
6767
public long? MinuteOffset { get; set; }
6868

6969
/// <summary>

‎src/Todoist.Net/Models/ReminderType.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ private ReminderType(string value)
3434
/// </summary>
3535
/// <value>The relative.</value>
3636
/// <remarks>For a time-based reminder specified in minutes from now.</remarks>
37-
public static ReminderType Relative { get; } = new ReminderType("relative ");
37+
public static ReminderType Relative { get; } = new ReminderType("relative");
3838
}
3939
}

‎src/Todoist.Net/Models/UserInfo.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ internal UserInfo()
8282
/// </summary>
8383
/// <value>The identifier.</value>
8484
[JsonProperty("id")]
85-
public int Id { get; internal set; }
85+
public string Id { get; internal set; }
8686

8787
/// <summary>
8888
/// Gets the image identifier.

0 commit comments

Comments
 (0)
Please sign in to comment.