Add endpoints to create and delete remote server (#4606)
* Build remote server * Add getters * Migrate to json inputs * Use extendable type * Use regex validation * Remove acronymes --------- Co-authored-by: Thomas Trompette <thomast@twenty.com>
This commit is contained in:
@ -0,0 +1,56 @@
|
||||
import { UseGuards } from '@nestjs/common';
|
||||
import { Resolver, Args, Mutation, Query } from '@nestjs/graphql';
|
||||
|
||||
import { Workspace } from 'src/engine/core-modules/workspace/workspace.entity';
|
||||
import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator';
|
||||
import { JwtAuthGuard } from 'src/engine/guards/jwt.auth.guard';
|
||||
import { CreateRemoteServerInput } from 'src/engine/metadata-modules/remote-server/dtos/create-remote-server.input';
|
||||
import { RemoteServerIdInput } from 'src/engine/metadata-modules/remote-server/dtos/remote-server-id.input';
|
||||
import { RemoteServerTypeInput } from 'src/engine/metadata-modules/remote-server/dtos/remote-server-type.input';
|
||||
import { RemoteServerDTO } from 'src/engine/metadata-modules/remote-server/dtos/remote-server.dto';
|
||||
import { RemoteServerType } from 'src/engine/metadata-modules/remote-server/remote-server.entity';
|
||||
import { RemoteServerService } from 'src/engine/metadata-modules/remote-server/remote-server.service';
|
||||
|
||||
@UseGuards(JwtAuthGuard)
|
||||
@Resolver()
|
||||
export class RemoteServerResolver {
|
||||
constructor(
|
||||
private readonly remoteServerService: RemoteServerService<RemoteServerType>,
|
||||
) {}
|
||||
|
||||
@Mutation(() => RemoteServerDTO)
|
||||
async createOneRemoteServer(
|
||||
@Args('input') input: CreateRemoteServerInput<RemoteServerType>,
|
||||
@AuthWorkspace() { id: workspaceId }: Workspace,
|
||||
) {
|
||||
return this.remoteServerService.createOneRemoteServer(input, workspaceId);
|
||||
}
|
||||
|
||||
@Mutation(() => RemoteServerDTO)
|
||||
async deleteOneRemoteServer(
|
||||
@Args('input') { id }: RemoteServerIdInput,
|
||||
@AuthWorkspace() { id: workspaceId }: Workspace,
|
||||
) {
|
||||
return this.remoteServerService.deleteOneRemoteServer(id, workspaceId);
|
||||
}
|
||||
|
||||
@Query(() => RemoteServerDTO)
|
||||
async findOneRemoteServerById(
|
||||
@Args('input') { id }: RemoteServerIdInput,
|
||||
@AuthWorkspace() { id: workspaceId }: Workspace,
|
||||
) {
|
||||
return this.remoteServerService.findOneByIdWithinWorkspace(id, workspaceId);
|
||||
}
|
||||
|
||||
@Query(() => [RemoteServerDTO])
|
||||
async findManyRemoteServersByType(
|
||||
@Args('input')
|
||||
{ foreignDataWrapperType }: RemoteServerTypeInput<RemoteServerType>,
|
||||
@AuthWorkspace() { id: workspaceId }: Workspace,
|
||||
) {
|
||||
return this.remoteServerService.findManyByTypeWithinWorkspace(
|
||||
foreignDataWrapperType,
|
||||
workspaceId,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user