adding pilot details view

This commit is contained in:
2024-09-27 19:14:13 -05:00
parent 071e211525
commit c00b686554
8 changed files with 72 additions and 19 deletions

View File

@@ -30,7 +30,7 @@
"@nestjs/core": "^10.0.0", "@nestjs/core": "^10.0.0",
"@nestjs/passport": "^10.0.3", "@nestjs/passport": "^10.0.3",
"@nestjs/platform-express": "^10.0.0", "@nestjs/platform-express": "^10.0.0",
"@noahspan/noahspan-modules": "^0.3.9", "@noahspan/noahspan-modules": "^0.4.0",
"@schematics/angular": "^17.3.7", "@schematics/angular": "^17.3.7",
"dotenv": "^16.4.5", "dotenv": "^16.4.5",
"reflect-metadata": "0.1.13", "reflect-metadata": "0.1.13",

View File

@@ -11,9 +11,9 @@ export class PilotInfoService {
constructor(private readonly tableService: TableService) {} constructor(private readonly tableService: TableService) {}
// async find(rowKey: string): Promise<PilotInfo> { async find(rowKey: string): Promise<PilotInfoEntity> {
// return await this.pilotInfoRepository.find(this.partitionKey, rowKey); return await this.pilotInfoRepository.find(this.partitionKey, rowKey);
// } }
async findAll(): Promise<PilotInfoEntity[]> { async findAll(): Promise<PilotInfoEntity[]> {
try { try {

View File

@@ -0,0 +1,16 @@
import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
import { Observable, map } from 'rxjs';
export class PilotInterceptor implements NestInterceptor {
intercept(context: ExecutionContext, handler: CallHandler): Observable<any> {
const req = context.switchToHttp().getRequest();
const authHeader = req.headers.authorization;
const token = authHeader && authHeader.split(' ')[1];
if (!token) {
return handler.handle().pipe(map((data) => data));
}
return handler.handle().pipe(map((data) => data));
}
}

View File

@@ -1,15 +1,26 @@
import { Body, Controller, Get, HttpException, Post } from '@nestjs/common'; import {
Body,
Controller,
Get,
HttpException,
Post,
UseInterceptors
} from '@nestjs/common';
import { PilotInfoService } from './info/pilot-info.service'; import { PilotInfoService } from './info/pilot-info.service';
import { PilotInfoDto } from './info/pilot-info.dto'; import { PilotInfoDto } from './info/pilot-info.dto';
import { TableInsertEntityHeaders } from '@azure/data-tables'; import { TableInsertEntityHeaders } from '@azure/data-tables';
import { CustomError } from '../customError/CustomError'; import { CustomError } from '../customError/CustomError';
import { PilotInfoEntity } from './info/pilot-info.entity'; import { PilotInfoEntity } from './info/pilot-info.entity';
import { AuthInterceptor } from 'src/interceptors/auth.interceptor';
import { Public } from '@noahspan/noahspan-modules';
@Controller('pilots') @Controller('pilots')
export class PilotController { export class PilotController {
constructor(private readonly pilotInfoService: PilotInfoService) {} constructor(private readonly pilotInfoService: PilotInfoService) {}
@Get() @Get()
@Public()
@UseInterceptors(AuthInterceptor)
async findAll(): Promise<PilotInfoEntity[]> { async findAll(): Promise<PilotInfoEntity[]> {
try { try {
const pilots: PilotInfoEntity[] = await this.pilotInfoService.findAll(); const pilots: PilotInfoEntity[] = await this.pilotInfoService.findAll();

4
infrastructure/dns.tf Normal file
View File

@@ -0,0 +1,4 @@
data "azurerm_dns_zone" "dns_zone" {
name = var.DOMAIN_NAME
resource_group_name = data.azurerm_resource_group.resource_group.name
}

View File

@@ -1,9 +1,31 @@
module "static_web_app" { # module "static_web_app" {
source = "github.com/noahspannbauer/noahspan-root/infrastructure/modules/static_web_app" # source = "github.com/noahspannbauer/noahspan-root/infrastructure/modules/static_web_app"
region = var.REGION # region = var.REGION
resource_group_name = data.azurerm_resource_group.resource_group.name # resource_group_name = data.azurerm_resource_group.resource_group.name
static_web_app_name = var.STATIC_WEB_APP_NAME # static_web_app_name = var.STATIC_WEB_APP_NAME
custom_domain_name_count = var.CUSTOM_DOMAIN_NAME_COUNT # custom_domain_name_count = var.CUSTOM_DOMAIN_NAME_COUNT
domain_name = var.DOMAIN_NAME # domain_name = var.DOMAIN_NAME
subdomain_name = var.SUBDOMAIN_NAME # subdomain_name = var.SUBDOMAIN_NAME
# }
resource "azurerm_static_web_app" "static_web_app" {
name = var.STATIC_WEB_APP_NAME
resource_group_name = data.azurerm_resource_group.resource_group.name
location = var.REGION
}
resource "azurerm_dns_cname_record" "dns_cname_record" {
name = var.SUBDOMAIN_NAME
zone_name = data.azurerm_dns_zone.dns_zone.name
resource_group_name = data.azurerm_resource_group.resource_group.name
ttl = 14400
record = azurerm_static_web_app.static_web_app.default_host_name
}
resource "azurerm_static_web_app_custom_domain" "static_web_app_custom_domain" {
static_web_app_id = azurerm_static_web_app.static_web_app.id
domain_name = "${var.SUBDOMAIN_NAME}.${var.DOMAIN_NAME}"
validation_type = "cname-delegation"
depends_on = [ azurerm_dns_cname_record.dns_cname_record ]
} }

View File

@@ -1,8 +1,8 @@
output "api_key" { output "api_key" {
value = module.static_web_app.api_key value = azurerm_static_web_app.static_web_app.api_key
sensitive = true sensitive = true
} }
output "default_host_name" { output "default_host_name" {
value = module.static_web_app.default_host_name value = azurerm_static_web_app.static_web_app.default_host_name
} }

8
package-lock.json generated
View File

@@ -40,7 +40,7 @@
"@nestjs/core": "^10.0.0", "@nestjs/core": "^10.0.0",
"@nestjs/passport": "^10.0.3", "@nestjs/passport": "^10.0.3",
"@nestjs/platform-express": "^10.0.0", "@nestjs/platform-express": "^10.0.0",
"@noahspan/noahspan-modules": "^0.3.9", "@noahspan/noahspan-modules": "^0.4.0",
"@schematics/angular": "^17.3.7", "@schematics/angular": "^17.3.7",
"dotenv": "^16.4.5", "dotenv": "^16.4.5",
"reflect-metadata": "0.1.13", "reflect-metadata": "0.1.13",
@@ -3431,9 +3431,9 @@
} }
}, },
"node_modules/@noahspan/noahspan-modules": { "node_modules/@noahspan/noahspan-modules": {
"version": "0.3.9", "version": "0.4.0",
"resolved": "https://registry.npmjs.org/@noahspan/noahspan-modules/-/noahspan-modules-0.3.9.tgz", "resolved": "https://registry.npmjs.org/@noahspan/noahspan-modules/-/noahspan-modules-0.4.0.tgz",
"integrity": "sha512-gRW+DiXQP+/0vHvEBi5yijQwwUnP+z5YxlSU7Q/bzm7YdUv5ecbZrz4is+BzH1S6Ctds9DeoQKtvb9xbAKwg8w==", "integrity": "sha512-oFOFL6AiEVlNmURAxDdnKg6xNZVZhQOPNeDtwWwbgYf2CQAHOapiBpKwHDAWT7DVpoBEurvmDEXeCHGl8mhGUw==",
"dependencies": { "dependencies": {
"@azure/app-configuration": "^1.6.0", "@azure/app-configuration": "^1.6.0",
"@azure/data-tables": "^13.2.2", "@azure/data-tables": "^13.2.2",