Updating api auth and ms graph endpoint

This commit is contained in:
2024-06-05 21:37:42 -05:00
parent dd73d48ffd
commit a668c35229
8 changed files with 745 additions and 36 deletions

BIN
.DS_Store vendored

Binary file not shown.

3
.gitignore vendored
View File

@@ -1,3 +1,4 @@
.vscode/*
node_modules
**/.env
**/.env
.DS_Store

1
api/.gitignore vendored
View File

@@ -55,4 +55,5 @@ pids
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
local.settings.json

View File

@@ -24,9 +24,11 @@
"@nestjs/azure-database": "^3.0.0",
"@nestjs/azure-func-http": "^0.10.0",
"@nestjs/common": "^10.0.0",
"@nestjs/config": "^3.2.2",
"@nestjs/core": "^10.0.0",
"@nestjs/passport": "^10.0.3",
"@nestjs/platform-express": "^10.0.0",
"@noahspan/noahspan-modules": "^0.1.2",
"@noahspan/noahspan-modules": "^0.2.4",
"@schematics/angular": "^17.3.7",
"dotenv": "^16.4.5",
"reflect-metadata": "0.1.13",
@@ -39,6 +41,7 @@
"@types/express": "^4.17.17",
"@types/jest": "^29.5.2",
"@types/node": "^20.3.1",
"@types/passport-azure-ad": "^4.3.6",
"@types/supertest": "^6.0.0",
"jest": "^29.5.0",
"source-map-support": "^0.5.21",

View File

@@ -1,24 +1,25 @@
import { Controller, Get, Query } from '@nestjs/common';
import { AppService } from './app.service';
import { AppConfigService, AuthService } from '@noahspan/noahspan-modules';
import {
AppConfigService,
MsGraphService,
MsGraphClient
} from '@noahspan/noahspan-modules';
import { FeatureFlagValue } from '@azure/app-configuration';
import { Public } from '@noahspan/noahspan-modules';
@Controller()
export class AppController {
constructor(
private readonly appConfigService: AppConfigService,
private readonly authService: AuthService
private readonly msGraphService: MsGraphService
) {}
@Public()
@Get('featureFlags')
async getFeatureFlags(@Query() query: any): Promise<FeatureFlagValue[]> {
console.log(process.env.CLIENT_ID);
try {
const token: string = await this.authService.getToken(
'client_credentials',
process.env.CLIENT_ID,
process.env.CLIENT_SECRET,
'https://azconfig.io'
);
const token: string = await this.appConfigService.getToken();
const featureFlags: FeatureFlagValue[] =
await this.appConfigService.getFeatureFlags(
token,
@@ -28,7 +29,25 @@ export class AppController {
return featureFlags;
} catch (error) {
console.log(error);
return error;
}
}
@Public()
@Get('profilePhoto')
async getProfilePhoto(@Query() query: any): Promise<any> {}
@Get('userProfile')
async getUserProfile(@Query() query: any) {
try {
const username: string = query.username;
const client: MsGraphClient =
await this.msGraphService.getMsGraphClient();
const userProfile = await client.api(`users/${username}`).get();
return userProfile;
} catch (error) {
return error;
}
}
}

View File

@@ -1,18 +1,42 @@
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { AppConfigModule, AuthModule } from '@noahspan/noahspan-modules';
import {
AppConfigModule,
AuthModule,
AuthGuard,
MsGraphModule
} from '@noahspan/noahspan-modules';
import { ConfigModule } from '@nestjs/config';
import { APP_GUARD } from '@nestjs/core';
@Module({
imports: [
ConfigModule.forRoot(),
AppConfigModule.register({
url: process.env.APP_CONFIG_URL
url: process.env.APP_CONFIG_URL,
tenantId: process.env.TENANT_ID,
clientId: process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET
}),
AuthModule.register({
tenantId: process.env.TENANT_ID
tenantId: process.env.TENANT_ID,
clientId: process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET
}),
MsGraphModule.register({
tenantId: process.env.TENANT_ID,
clientId: process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET
})
],
controllers: [AppController],
providers: [AppService]
providers: [
{
provide: APP_GUARD,
useClass: AuthGuard
},
AppService
]
})
export class AppModule {}

View File

@@ -16,7 +16,7 @@
"@fortawesome/free-solid-svg-icons": "^6.5.2",
"@fortawesome/react-fontawesome": "^0.2.2",
"@nextui-org/react": "^2.3.6",
"@noahspan/noahspan-components": "^0.2.4",
"@noahspan/noahspan-components": "^0.2.5",
"axios": "^1.7.2",
"framer-motion": "^11.1.7",
"react": "^18.2.0",

699
package-lock.json generated

File diff suppressed because it is too large Load Diff