Skip to content

Commit 2309f2a

Browse files
authored
Merge pull request #33 from murdahl/dev/murdahl/Invoke-all-event-handlers;-fix-User-JSON
Invoke all event handlers; fix User JSON
2 parents 09c66aa + 4563323 commit 2309f2a

6 files changed

Lines changed: 35 additions & 41 deletions

File tree

source/src/Slackbot.Net.Endpoints/Middlewares/AppHomeOpenedEvents.cs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,20 @@ namespace Slackbot.Net.Endpoints.Middlewares;
88
internal class AppHomeOpenedEvents(
99
RequestDelegate next,
1010
ILogger<AppHomeOpenedEvents> logger,
11-
IEnumerable<IHandleAppHomeOpened> responseHandlers)
11+
IEnumerable<IHandleAppHomeOpened> responseHandlers
12+
)
1213
{
1314
public async Task Invoke(HttpContext context)
1415
{
1516
var appHomeOpenedEvent = (AppHomeOpenedEvent)context.Items[HttpItemKeys.SlackEventKey];
1617
var metadata = (EventMetaData)context.Items[HttpItemKeys.EventMetadataKey];
17-
var handler = responseHandlers.FirstOrDefault();
1818

19-
if (handler == null)
19+
if (responseHandlers == null || !responseHandlers.Any())
2020
{
2121
logger.LogError("No handler registered for IHandleAppHomeOpened");
22+
return;
2223
}
23-
else
24+
foreach (var handler in responseHandlers)
2425
{
2526
logger.LogInformation($"Handling using {handler.GetType()}");
2627
try
@@ -35,12 +36,12 @@ public async Task Invoke(HttpContext context)
3536
}
3637
}
3738

38-
await next(context);
39+
context.Response.StatusCode = 200;
3940
}
4041

4142
public static bool ShouldRun(HttpContext ctx)
4243
{
43-
return ctx.Items.ContainsKey(HttpItemKeys.EventTypeKey) &&
44-
ctx.Items[HttpItemKeys.EventTypeKey].ToString() == EventTypes.AppHomeOpened;
44+
return ctx.Items.ContainsKey(HttpItemKeys.EventTypeKey)
45+
&& ctx.Items[HttpItemKeys.EventTypeKey].ToString() == EventTypes.AppHomeOpened;
4546
}
4647
}

source/src/Slackbot.Net.Endpoints/Middlewares/EmojiChangedEvents.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,12 @@ public async Task Invoke(HttpContext context)
1515
{
1616
var emojiChanged = (EmojiChangedEvent)context.Items[HttpItemKeys.SlackEventKey];
1717
var metadata = (EventMetaData)context.Items[HttpItemKeys.EventMetadataKey];
18-
var handler = responseHandlers.FirstOrDefault();
1918

20-
if (handler == null)
19+
if (responseHandlers == null || !responseHandlers.Any())
2120
{
2221
logger.LogError("No handler registered for IHandleEmojiChanged");
2322
}
24-
else
23+
foreach (var handler in responseHandlers)
2524
{
2625
logger.LogInformation("Handling using {HandlerType}", handler.GetType());
2726
try
@@ -42,6 +41,6 @@ public async Task Invoke(HttpContext context)
4241
public static bool ShouldRun(HttpContext ctx)
4342
{
4443
return ctx.Items.ContainsKey(HttpItemKeys.EventTypeKey)
45-
&& ctx.Items[HttpItemKeys.EventTypeKey].ToString() == EventTypes.EmojiChanged;
44+
&& ctx.Items[HttpItemKeys.EventTypeKey].ToString() == EventTypes.EmojiChanged;
4645
}
4746
}

source/src/Slackbot.Net.Endpoints/Middlewares/MemberJoinedEvents.cs

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,42 +5,37 @@
55

66
namespace Slackbot.Net.Endpoints.Middlewares;
77

8-
internal class MemberJoinedEvents
8+
internal class MemberJoinedEvents(
9+
RequestDelegate next,
10+
ILogger<MemberJoinedEvents> logger,
11+
IEnumerable<IHandleMemberJoinedChannel> responseHandlers
12+
)
913
{
10-
private readonly ILogger<MemberJoinedEvents> _logger;
11-
private readonly RequestDelegate _next;
12-
private readonly IEnumerable<IHandleMemberJoinedChannel> _responseHandlers;
13-
14-
public MemberJoinedEvents(RequestDelegate next, ILogger<MemberJoinedEvents> logger,
15-
IEnumerable<IHandleMemberJoinedChannel> responseHandlers, ILoggerFactory loggerFactory)
16-
{
17-
_next = next;
18-
_logger = logger;
19-
_responseHandlers = responseHandlers;
20-
}
14+
private readonly RequestDelegate _next = next;
2115

2216
public async Task Invoke(HttpContext context)
2317
{
24-
var memberJoinedChannelEvent = (MemberJoinedChannelEvent)context.Items[HttpItemKeys.SlackEventKey];
18+
var memberJoinedChannelEvent = (MemberJoinedChannelEvent)
19+
context.Items[HttpItemKeys.SlackEventKey];
2520
var metadata = (EventMetaData)context.Items[HttpItemKeys.EventMetadataKey];
26-
var handler = _responseHandlers.FirstOrDefault();
2721

28-
if (handler == null)
22+
if (responseHandlers == null)
2923
{
30-
_logger.LogError("No handler registered for IHandleMemberJoinedChannelEvents");
24+
logger.LogError("No handler registered for IHandleMemberJoinedChannelEvents");
25+
return;
3126
}
32-
else
27+
foreach (var handler in responseHandlers)
3328
{
34-
_logger.LogInformation($"Handling using {handler.GetType()}");
29+
logger.LogInformation($"Handling using {handler.GetType()}");
3530
try
3631
{
37-
_logger.LogInformation($"Handling using {handler.GetType()}");
32+
logger.LogInformation($"Handling using {handler.GetType()}");
3833
var response = await handler.Handle(metadata, memberJoinedChannelEvent);
39-
_logger.LogInformation(response.Response);
34+
logger.LogInformation(response.Response);
4035
}
4136
catch (Exception e)
4237
{
43-
_logger.LogError(e, e.Message);
38+
logger.LogError(e, e.Message);
4439
}
4540
}
4641

@@ -49,7 +44,7 @@ public async Task Invoke(HttpContext context)
4944

5045
public static bool ShouldRun(HttpContext ctx)
5146
{
52-
return ctx.Items.ContainsKey(HttpItemKeys.EventTypeKey) &&
53-
ctx.Items[HttpItemKeys.EventTypeKey].ToString() == EventTypes.MemberJoinedChannel;
47+
return ctx.Items.ContainsKey(HttpItemKeys.EventTypeKey)
48+
&& ctx.Items[HttpItemKeys.EventTypeKey].ToString() == EventTypes.MemberJoinedChannel;
5449
}
5550
}

source/src/Slackbot.Net.Endpoints/Middlewares/MessageEvents.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,12 @@ public async Task Invoke(HttpContext context)
1515
{
1616
var messageEvent = (MessageEvent)context.Items[HttpItemKeys.SlackEventKey];
1717
var metadata = (EventMetaData)context.Items[HttpItemKeys.EventMetadataKey];
18-
var handler = responseHandlers.FirstOrDefault();
1918

20-
if (handler == null)
19+
if (responseHandlers == null || !responseHandlers.Any())
2120
{
2221
logger.LogError("No handler registered for IHandleMessage");
2322
}
24-
else
23+
foreach (var handler in responseHandlers)
2524
{
2625
logger.LogInformation("Handling using {HandlerType}", handler.GetType());
2726
try

source/src/Slackbot.Net.Endpoints/Middlewares/TeamJoinEvents.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,12 @@ public async Task Invoke(HttpContext context)
1515
{
1616
var teamJoinEvent = (TeamJoinEvent)context.Items[HttpItemKeys.SlackEventKey];
1717
var metadata = (EventMetaData)context.Items[HttpItemKeys.EventMetadataKey];
18-
var handler = responseHandlers.FirstOrDefault();
1918

20-
if (handler == null)
19+
if (responseHandlers == null || !responseHandlers.Any())
2120
{
2221
logger.LogError("No handler registered for IHandleTeamJoinEvents");
2322
}
24-
else
23+
foreach (var handler in responseHandlers)
2524
{
2625
logger.LogInformation("Handling using {HandlerType}", handler.GetType());
2726
try

source/src/Slackbot.Net.Endpoints/Models/Interactive/User.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ namespace Slackbot.Net.Endpoints.Models.Interactive;
44

55
public class User
66
{
7-
[JsonPropertyName("user_id")] public string User_Id { get; set; }
7+
[JsonPropertyName("id")]
8+
public string User_Id { get; set; }
89
}

0 commit comments

Comments
 (0)