Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
c22f60d
feat(api, dashboard, ui): enhance MS Teams integration with user link…
djabarovgeorge Apr 26, 2026
450fa38
feat(api, worker): integrate MsTeamsTokenService for improved MS Team…
djabarovgeorge Apr 26, 2026
23b699b
refactor(worker): remove debug logging from send-message use case
djabarovgeorge Apr 26, 2026
45851b4
enhance(MsTeamsOauthCallback): refine app ID resolution with distribu…
djabarovgeorge Apr 26, 2026
5f749df
refactor(TeamsSetupGuide): update OAuth callback URL handling and enh…
djabarovgeorge Apr 26, 2026
b9e6ab9
fix(MsTeamsOAuth): improve error handling and HTML response for missi…
djabarovgeorge Apr 27, 2026
ed1fd53
fix(MsTeamsLinkUser): improve OAuth URL handling and popup management
djabarovgeorge Apr 27, 2026
2b4ea79
fix(MsTeamsLinkUser): streamline OAuth URL handling by removing popup…
djabarovgeorge Apr 27, 2026
ad188d4
feat(MsTeamsOAuth): add autoLinkUser feature for streamlined user lin…
djabarovgeorge Apr 27, 2026
408dd08
feat(OAuth): enhance autoLinkUser functionality across integrations
djabarovgeorge Apr 27, 2026
e40487f
feat(OAuth): introduce new endpoints for connect and link user OAuth …
djabarovgeorge Apr 27, 2026
bea36c4
test(OAuth): improve error handling in MsTeams OAuth URL generation t…
djabarovgeorge Apr 27, 2026
70917a0
test(MsTeamsOauthCallback): enhance error handling in OAuth callback …
djabarovgeorge Apr 27, 2026
705a1b9
test(MsTeamsOauthCallback): refactor tests to improve response valida…
djabarovgeorge Apr 27, 2026
6af03dc
refactor(MsTeamsConnectButton & SlackConnectButton): streamline integ…
djabarovgeorge Apr 27, 2026
b00843f
chore: update playground
djabarovgeorge Apr 27, 2026
d5571cf
fix(OAuth): update OAuth URL generation to use dynamic base URL
djabarovgeorge Apr 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion apps/api/src/app/integrations/integrations.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {
ChannelFactory,
CompileTemplate,
GetNovuProviderCredentials,
MsTeamsTokenService,
} from '@novu/application-generic';
import { CommunityOrganizationRepository, CommunityUserRepository } from '@novu/dal';
import { AuthModule } from '../auth/auth.module';
Expand All @@ -13,7 +14,13 @@ import { SharedModule } from '../shared/shared.module';
import { IntegrationsController } from './integrations.controller';
import { USE_CASES } from './usecases';

const PROVIDERS = [ChannelFactory, CompileTemplate, GetNovuProviderCredentials, CalculateLimitNovuIntegration];
const PROVIDERS = [
ChannelFactory,
CompileTemplate,
GetNovuProviderCredentials,
CalculateLimitNovuIntegration,
MsTeamsTokenService,
];

@Module({
imports: [SharedModule, forwardRef(() => AuthModule), ChannelConnectionsModule, ChannelEndpointsModule],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,11 @@ export class ChatOauthCallback {
);

case ChatProviderIdEnum.MsTeams:
if (!command.tenant) {
throw new BadRequestException('Missing required parameter: tenant');
}

return await this.msTeamsOauthCallback.execute(
MsTeamsOauthCallbackCommand.create({
tenant: command.tenant,
adminConsent: command.adminConsent,
providerCode: command.providerCode,
state: command.state,
})
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,18 @@ import { BaseCommand } from '@novu/application-generic';
import { IsNotEmpty, IsOptional, IsString } from 'class-validator';

export class MsTeamsOauthCallbackCommand extends BaseCommand {
@IsNotEmpty()
@IsOptional()
@IsString()
readonly tenant: string;
readonly tenant?: string;

@IsOptional()
@IsString()
readonly adminConsent?: string;

@IsOptional()
@IsString()
readonly providerCode?: string;

@IsNotEmpty()
@IsString()
readonly state: string;
Expand Down
Loading
Loading