Fix view creation (#14254)
This commit is contained in:
@@ -9,6 +9,7 @@ import {
|
||||
Resolver,
|
||||
} from '@nestjs/graphql';
|
||||
|
||||
import { isArray } from '@sniptt/guards';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { I18nService } from 'src/engine/core-modules/i18n/i18n.service';
|
||||
@@ -16,6 +17,11 @@ import { type I18nContext } from 'src/engine/core-modules/i18n/types/i18n-contex
|
||||
import { generateMessageId } from 'src/engine/core-modules/i18n/utils/generateMessageId';
|
||||
import { CreateViewInput } from 'src/engine/core-modules/view/dtos/inputs/create-view.input';
|
||||
import { UpdateViewInput } from 'src/engine/core-modules/view/dtos/inputs/update-view.input';
|
||||
import { ViewFieldDTO } from 'src/engine/core-modules/view/dtos/view-field.dto';
|
||||
import { ViewFilterGroupDTO } from 'src/engine/core-modules/view/dtos/view-filter-group.dto';
|
||||
import { ViewFilterDTO } from 'src/engine/core-modules/view/dtos/view-filter.dto';
|
||||
import { ViewGroupDTO } from 'src/engine/core-modules/view/dtos/view-group.dto';
|
||||
import { ViewSortDTO } from 'src/engine/core-modules/view/dtos/view-sort.dto';
|
||||
import { ViewDTO } from 'src/engine/core-modules/view/dtos/view.dto';
|
||||
import { ViewFieldService } from 'src/engine/core-modules/view/services/view-field.service';
|
||||
import { ViewFilterGroupService } from 'src/engine/core-modules/view/services/view-filter-group.service';
|
||||
@@ -163,4 +169,64 @@ export class ViewResolver {
|
||||
|
||||
return isDefined(deletedView);
|
||||
}
|
||||
|
||||
@ResolveField(() => [ViewFieldDTO])
|
||||
async viewFields(
|
||||
@Parent() view: ViewDTO,
|
||||
@AuthWorkspace() workspace: Workspace,
|
||||
) {
|
||||
if (isArray(view.viewFields)) {
|
||||
return view.viewFields;
|
||||
}
|
||||
|
||||
return this.viewFieldService.findByViewId(workspace.id, view.id);
|
||||
}
|
||||
|
||||
@ResolveField(() => [ViewFilterDTO])
|
||||
async viewFilters(
|
||||
@Parent() view: ViewDTO,
|
||||
@AuthWorkspace() workspace: Workspace,
|
||||
) {
|
||||
if (isArray(view.viewFilters)) {
|
||||
return view.viewFilters;
|
||||
}
|
||||
|
||||
return this.viewFilterService.findByViewId(workspace.id, view.id);
|
||||
}
|
||||
|
||||
@ResolveField(() => [ViewFilterGroupDTO])
|
||||
async viewFilterGroups(
|
||||
@Parent() view: ViewDTO,
|
||||
@AuthWorkspace() workspace: Workspace,
|
||||
) {
|
||||
if (isArray(view.viewFilterGroups)) {
|
||||
return view.viewFilterGroups;
|
||||
}
|
||||
|
||||
return this.viewFilterGroupService.findByViewId(workspace.id, view.id);
|
||||
}
|
||||
|
||||
@ResolveField(() => [ViewSortDTO])
|
||||
async viewSorts(
|
||||
@Parent() view: ViewDTO,
|
||||
@AuthWorkspace() workspace: Workspace,
|
||||
) {
|
||||
if (isArray(view.viewSorts)) {
|
||||
return view.viewSorts;
|
||||
}
|
||||
|
||||
return this.viewSortService.findByViewId(workspace.id, view.id);
|
||||
}
|
||||
|
||||
@ResolveField(() => [ViewGroupDTO])
|
||||
async viewGroups(
|
||||
@Parent() view: ViewDTO,
|
||||
@AuthWorkspace() workspace: Workspace,
|
||||
) {
|
||||
if (isArray(view.viewGroups)) {
|
||||
return view.viewGroups;
|
||||
}
|
||||
|
||||
return this.viewGroupService.findByViewId(workspace.id, view.id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import {
|
||||
generateViewExceptionMessage,
|
||||
generateViewUserFriendlyExceptionMessage,
|
||||
} from 'src/engine/core-modules/view/exceptions/view.exception';
|
||||
import { ViewDTO } from 'src/engine/core-modules/view/dtos/view.dto';
|
||||
|
||||
@Injectable()
|
||||
export class ViewService {
|
||||
@@ -80,7 +81,7 @@ export class ViewService {
|
||||
return view || null;
|
||||
}
|
||||
|
||||
async create(viewData: Partial<ViewEntity>): Promise<ViewEntity> {
|
||||
async create(viewData: Partial<ViewEntity>): Promise<ViewDTO> {
|
||||
if (!isDefined(viewData.workspaceId)) {
|
||||
throw new ViewException(
|
||||
generateViewExceptionMessage(
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ import {
|
||||
type MessagingMessageListFetchJobData,
|
||||
} from 'src/modules/messaging/message-import-manager/jobs/messaging-message-list-fetch.job';
|
||||
|
||||
export const MESSAGING_MESSAGE_LIST_FETCH_CRON_PATTERN = '*/2 * * * *';
|
||||
export const MESSAGING_MESSAGE_LIST_FETCH_CRON_PATTERN = '*/5 * * * *';
|
||||
|
||||
@Processor(MessageQueue.cronQueue)
|
||||
export class MessagingMessageListFetchCronJob {
|
||||
|
||||
Reference in New Issue
Block a user