@@ -17,15 +17,24 @@ public Uninstall(RequestDelegate next, ILogger<Uninstall> logger, IServiceProvid
1717 {
1818 _logger = logger ;
1919 _uninstaller = provider . GetService < IUninstall > ( ) ?? new NoopUninstaller ( provider . GetService < ILogger < NoopUninstaller > > ( ) ) ;
20- _tokenStore = provider . GetService < ITokenStore > ( ) ;
20+ _tokenStore = provider . GetService < ITokenStore > ( ) ?? new NoopTokenStore ( provider . GetService < ILogger < NoopTokenStore > > ( ) ) ;
2121 }
2222
2323 public async Task Invoke ( HttpContext context )
2424 {
2525 var metadata = context . Items [ HttpItemKeys . EventMetadataKey ] as EventMetaData ;
26+ _logger . LogInformation ( $ "Deleting team with TeamId: `{ metadata . Team_Id } `") ;
2627 var deleted = await _tokenStore . Delete ( metadata . Team_Id ) ;
27- await _uninstaller . OnUninstalled ( deleted . TeamId , deleted . TeamName ) ;
28- _logger . LogInformation ( $ "Deleted team with TeamId: `{ metadata . Team_Id } `") ;
28+ if ( deleted is null )
29+ {
30+ _logger . LogWarning ( "Token store returned null for '{TeamId}'. Will not trigger registered OnUninstalled handlers. " , metadata . Team_Id ) ;
31+ }
32+ else
33+ {
34+ await _uninstaller . OnUninstalled ( deleted ? . TeamId , deleted ? . TeamName ) ;
35+ _logger . LogInformation ( $ "Deleted team with TeamId: `{ metadata . Team_Id } `") ;
36+ }
37+
2938 context . Response . StatusCode = 200 ;
3039 }
3140
@@ -37,17 +46,26 @@ public static bool ShouldRun(HttpContext ctx)
3746 }
3847}
3948
40- public class NoopUninstaller : IUninstall
49+ public class NoopUninstaller ( ILogger < NoopUninstaller > logger ) : IUninstall
4150{
42- private readonly ILogger < NoopUninstaller > _logger ;
51+ public Task OnUninstalled ( string teamId , string teamName )
52+ {
53+ logger . LogDebug ( "No OnUninstall function registered. No-op." ) ;
54+ return Task . CompletedTask ;
55+ }
56+ }
4357
44- public NoopUninstaller ( ILogger < NoopUninstaller > logger )
58+ public class NoopTokenStore ( ILogger < NoopTokenStore > logger ) : ITokenStore
59+ {
60+ public Task < Workspace > Delete ( string teamId )
4561 {
46- _logger = logger ;
62+ logger . LogDebug ( "No-op. Returning null for deleting workspace!" ) ;
63+ return Task . FromResult < Workspace > ( null ) ;
4764 }
48- public Task OnUninstalled ( string teamId , string teamName )
65+
66+ public Task Insert ( Workspace slackTeam )
4967 {
50- _logger . LogDebug ( "No OnUninstall function registered. No -op." ) ;
68+ logger . LogDebug ( "No-op. Not storing workspace! " ) ;
5169 return Task . CompletedTask ;
5270 }
5371}
0 commit comments