Skip to content

Commit

Permalink
Wip: VirtualHost module
Browse files Browse the repository at this point in the history
  • Loading branch information
mc-nekoneko committed Mar 14, 2022
1 parent ab0c378 commit 4b98d56
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 0 deletions.
17 changes: 17 additions & 0 deletions src/virtual-host/virtual-host.dto.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { Field, InputType, registerEnumType } from "@nestjs/graphql";
import { DestinationType } from "src/prisma/generated";

registerEnumType(DestinationType, {
name: 'DestinationType',
});

@InputType()
export class CreateVirtualHostDto {
@Field()
name!: string;
@Field(() => DestinationType)
type!: DestinationType

// @Field()
// namespace!: Namespace
}
7 changes: 7 additions & 0 deletions src/virtual-host/virtual-host.model.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { Field, ID, ObjectType } from "@nestjs/graphql";

@ObjectType()
export class VirtualHost {
@Field(() => ID)
id: string | undefined;
}
9 changes: 9 additions & 0 deletions src/virtual-host/virtual-host.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { Module } from '@nestjs/common';
import { VirtualHostResolver } from './virtual-host.resolver';
import { VirtualHostService } from './virtual-host.service';

@Module({
providers: [VirtualHostResolver, VirtualHostService],
exports: [VirtualHostService],
})
export class VirtualHostModule { }
19 changes: 19 additions & 0 deletions src/virtual-host/virtual-host.resolver.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { Args, Mutation, Query, Resolver } from '@nestjs/graphql';
import { CreateVirtualHostDto } from './virtual-host.dto';
import { VirtualHost } from './virtual-host.model';
import { VirtualHostService } from './virtual-host.service';

@Resolver(() => VirtualHost)
export class VirtualHostResolver {
constructor(private readonly service: VirtualHostService) { }

@Query(() => VirtualHost)
async virtualHosts(): Promise<VirtualHost[]> {
return this.service.getVirtualHosts();
}

@Mutation(() => VirtualHost)
async createVirtualHost(@Args('payload') payload: CreateVirtualHostDto): Promise<VirtualHost> {
return this.service.createVirtualHost(payload);
}
}
18 changes: 18 additions & 0 deletions src/virtual-host/virtual-host.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { Injectable } from '@nestjs/common';
import { PrismaService } from 'src/prisma/prisma.service';
import type { CreateVirtualHostDto } from './virtual-host.dto';
import type { VirtualHost } from './virtual-host.model';

@Injectable()
export class VirtualHostService {
constructor(private readonly prisma: PrismaService) { }

async getVirtualHosts(): Promise<VirtualHost[]> {
return this.prisma.virtualHost.findMany();
}

async createVirtualHost(payload: CreateVirtualHostDto): Promise<VirtualHost> {
console.log(payload)
return Promise.reject('Not implemented');
}
}

0 comments on commit 4b98d56

Please sign in to comment.