Skip to content

Commit 71901d4

Browse files
committed
rename message components to announcements
1 parent 2a262ed commit 71901d4

26 files changed

Lines changed: 270 additions & 270 deletions

docs/server-deployment.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ Below is the JSON structure indicating which properties must be set. In particul
7272
},
7373
"AppSettings": {
7474
"Secret": "YOUR_UNIQUE_RANDOM_SEED",
75-
"MessagesDefinitionsUrl": ""
75+
"AnnouncementsUrl": ""
7676
}
7777
}
7878
```
@@ -99,7 +99,7 @@ Below is the JSON structure indicating which properties must be set. In particul
9999
"CosmosDb:ConnectionString": "<your-cosmosdb-connection-string>",
100100
"CosmosDb:DatabaseName": "<your-database-name>",
101101
"AppSettings:Secret": "YOUR_UNIQUE_RANDOM_SEED",
102-
"AppSettings:MessagesDefinitionsUrl": ""
102+
"AppSettings:AnnouncementsUrl": ""
103103
}
104104
}
105105
```
@@ -138,7 +138,7 @@ cd ByteSync.Functions
138138

139139
# App Settings
140140
dotnet user-secrets set "AppSettings:Secret" "YOUR_UNIQUE_RANDOM_SEED"
141-
dotnet user-secrets set "AppSettings:MessagesDefinitionsUrl" ""
141+
dotnet user-secrets set "AppSettings:AnnouncementsUrl" ""
142142
```
143143

144144
Repeat these steps for **ByteSync.Functions.IntegrationTests** and **ByteSync.ServerCommon.Tests**, navigating to each project's directory and setting the same secrets.

src/ByteSync.Functions/Helpers/Middlewares/JwtMiddleware.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ public class JwtMiddleware : IFunctionsWorkerMiddleware
2727
public JwtMiddleware(IOptions<AppSettings> appSettings, IClientsRepository clientsRepository, ILogger<JwtMiddleware> logger)
2828
{
2929
var loginFunctionEntryPoint = GetEntryPoint<AuthFunction>(nameof(AuthFunction.Login));
30-
var getMessagesFunctionEntryPoint = GetEntryPoint<MessageDefinitionFunction>(nameof(MessageDefinitionFunction.GetMessages));
31-
_allowedAnonymousFunctionEntryPoints = [loginFunctionEntryPoint, getMessagesFunctionEntryPoint];
30+
var getAnnouncementsFunctionEntryPoint = GetEntryPoint<AnnouncementFunction>(nameof(AnnouncementFunction.GetAnnouncements));
31+
_allowedAnonymousFunctionEntryPoints = [loginFunctionEntryPoint, getAnnouncementsFunctionEntryPoint];
3232

3333
_secret = appSettings.Value.Secret;
3434
_clientsRepository = clientsRepository;

src/ByteSync.Functions/Http/MessageDefinitionFunction.cs renamed to src/ByteSync.Functions/Http/AnnouncementFunction.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
using System.Net;
2-
using ByteSync.ServerCommon.Commands.Messages;
2+
using ByteSync.ServerCommon.Commands.Announcements;
33
using MediatR;
44
using Microsoft.Azure.Functions.Worker;
55
using Microsoft.Azure.Functions.Worker.Http;
66

77
namespace ByteSync.Functions.Http;
88

9-
public class MessageDefinitionFunction
9+
public class AnnouncementFunction
1010
{
1111
private readonly IMediator _mediator;
1212

13-
public MessageDefinitionFunction(IMediator mediator)
13+
public AnnouncementFunction(IMediator mediator)
1414
{
1515
_mediator = mediator;
1616
}
1717

18-
[Function("GetMessages")]
19-
public async Task<HttpResponseData> GetMessages(
20-
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "messages")] HttpRequestData req,
18+
[Function("GetAnnouncements")]
19+
public async Task<HttpResponseData> GetAnnouncements(
20+
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "announcements")] HttpRequestData req,
2121
FunctionContext executionContext)
2222
{
23-
var messages = await _mediator.Send(new GetActiveMessagesRequest());
23+
var announcements = await _mediator.Send(new GetActiveAnnouncementsRequest());
2424

2525
var response = req.CreateResponse();
26-
await response.WriteAsJsonAsync(messages, HttpStatusCode.OK);
26+
await response.WriteAsJsonAsync(announcements, HttpStatusCode.OK);
2727
return response;
2828
}
2929
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
using ByteSync.ServerCommon.Business.Announcements;
2+
using ByteSync.ServerCommon.Interfaces.Loaders;
3+
using ByteSync.ServerCommon.Interfaces.Repositories;
4+
using Microsoft.Azure.Functions.Worker;
5+
using Microsoft.Extensions.Logging;
6+
7+
namespace ByteSync.Functions.Timer;
8+
9+
public class RefreshAnnouncementsFunction
10+
{
11+
private readonly IAnnouncementsLoader _loader;
12+
private readonly IAnnouncementRepository _repository;
13+
private readonly ILogger<RefreshAnnouncementsFunction> _logger;
14+
15+
public RefreshAnnouncementsFunction(IAnnouncementsLoader loader, IAnnouncementRepository repository,
16+
ILogger<RefreshAnnouncementsFunction> logger)
17+
{
18+
_loader = loader;
19+
_repository = repository;
20+
_logger = logger;
21+
}
22+
23+
[Function("RefreshAnnouncementsFunction")]
24+
public async Task<int> RunAsync([TimerTrigger("0 0 */2 * * *"
25+
#if DEBUG
26+
, RunOnStartup = true
27+
#endif
28+
)] TimerInfo timerInfo)
29+
{
30+
var currentUtcTime = DateTime.UtcNow;
31+
_logger.LogInformation("Refreshing announcements at: {Now}", currentUtcTime);
32+
33+
var announcements = await _loader.Load();
34+
var validAnnouncements = announcements.Where(d => d.EndDate > currentUtcTime).ToList();
35+
36+
await _repository.SaveAll(validAnnouncements);
37+
38+
return validAnnouncements.Count;
39+
}
40+
}

src/ByteSync.Functions/Timer/RefreshMessageDefinitionsFunction.cs

Lines changed: 0 additions & 40 deletions
This file was deleted.

src/ByteSync.ServerCommon/Business/Messages/MessageDefinition.cs renamed to src/ByteSync.ServerCommon/Business/Announcements/Announcement.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
namespace ByteSync.ServerCommon.Business.Messages;
1+
namespace ByteSync.ServerCommon.Business.Announcements;
22

3-
public class MessageDefinition
3+
public class Announcement
44
{
55
public string Id { get; set; }
66

src/ByteSync.ServerCommon/Business/Settings/AppSettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ public class AppSettings
1010

1111
public string UpdatesDefinitionUrl { get; set; } = "";
1212

13-
public string MessagesDefinitionsUrl { get; set; } = "";
13+
public string AnnouncementsUrl { get; set; } = "";
1414
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using ByteSync.ServerCommon.Business.Announcements;
2+
using ByteSync.ServerCommon.Interfaces.Repositories;
3+
using MediatR;
4+
5+
namespace ByteSync.ServerCommon.Commands.Announcements;
6+
7+
public class GetActiveAnnouncementsCommandHandler : IRequestHandler<GetActiveAnnouncementsRequest, List<Announcement>>
8+
{
9+
private readonly IAnnouncementRepository _repository;
10+
11+
public GetActiveAnnouncementsCommandHandler(IAnnouncementRepository repository)
12+
{
13+
_repository = repository;
14+
}
15+
16+
public async Task<List<Announcement>> Handle(GetActiveAnnouncementsRequest request, CancellationToken cancellationToken)
17+
{
18+
var allAnnouncements = await _repository.GetAll();
19+
if (allAnnouncements is null)
20+
{
21+
return new List<Announcement>();
22+
}
23+
24+
var now = DateTime.UtcNow;
25+
return allAnnouncements.Where(m => m.StartDate <= now && now < m.EndDate).ToList();
26+
}
27+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
using ByteSync.ServerCommon.Business.Announcements;
2+
using MediatR;
3+
4+
namespace ByteSync.ServerCommon.Commands.Announcements;
5+
6+
public class GetActiveAnnouncementsRequest : IRequest<List<Announcement>>;

src/ByteSync.ServerCommon/Commands/Messages/GetActiveMessagesCommandHandler.cs

Lines changed: 0 additions & 27 deletions
This file was deleted.

0 commit comments

Comments
 (0)