Files
twenty_crm/server/src/metadata/object-metadata/hooks/before-create-one-object.hook.ts
Weiko 04c618284f Convert metadata tables to camel_case (#2420)
* Convert metadata tables to camelcase

* refactor folder structure

* rename datasourcemetadata

* regenerate metadata schema

* rename dataSourceMetadata to dataSource
2023-11-10 15:33:25 +01:00

37 lines
1.0 KiB
TypeScript

import { Injectable, UnauthorizedException } from '@nestjs/common';
import {
BeforeCreateOneHook,
CreateOneInputType,
} from '@ptc-org/nestjs-query-graphql';
import { DataSourceService } from 'src/metadata/data-source/data-source.service';
import { CreateObjectInput } from 'src/metadata/object-metadata/dtos/create-object.input';
@Injectable()
export class BeforeCreateOneObject<T extends CreateObjectInput>
implements BeforeCreateOneHook<T, any>
{
constructor(readonly dataSourceService: DataSourceService) {}
async run(
instance: CreateOneInputType<T>,
context: any,
): Promise<CreateOneInputType<T>> {
const workspaceId = context?.req?.user?.workspace?.id;
if (!workspaceId) {
throw new UnauthorizedException();
}
const lastDataSourceMetadata =
await this.dataSourceService.getLastDataSourceMetadataFromWorkspaceIdOrFail(
workspaceId,
);
instance.input.dataSourceId = lastDataSourceMetadata.id;
instance.input.workspaceId = workspaceId;
return instance;
}
}