From 97ea105102c00e0b924fbb02bd9d577e93f90758 Mon Sep 17 00:00:00 2001 From: DarkPhoenix2704 Date: Thu, 22 Feb 2024 10:11:48 +0000 Subject: [PATCH] fix(nocodb): return error if the ranges are 0. Calendar view requires atleast a range --- packages/nocodb/src/services/public-datas.service.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/nocodb/src/services/public-datas.service.ts b/packages/nocodb/src/services/public-datas.service.ts index 675a072616..677c91084f 100644 --- a/packages/nocodb/src/services/public-datas.service.ts +++ b/packages/nocodb/src/services/public-datas.service.ts @@ -7,7 +7,7 @@ import { nocoExecute } from 'nc-help'; import dayjs from 'dayjs'; import type { LinkToAnotherRecordColumn } from '~/models'; -import { CalendarRange } from '~/models'; +import { CalendarRange, Column, Model, Source, View } from '~/models'; import { NcError } from '~/helpers/catchError'; import getAst from '~/helpers/getAst'; import NcPluginMgrv2 from '~/helpers/NcPluginMgrv2'; @@ -15,7 +15,6 @@ import { PagedResponseImpl } from '~/helpers/PagedResponse'; import { getColumnByIdOrName } from '~/modules/datas/helpers'; import NcConnectionMgrv2 from '~/utils/common/NcConnectionMgrv2'; import { mimeIcons } from '~/utils/mimeTypes'; -import { Column, Model, Source, View } from '~/models'; import { utf8ify } from '~/helpers/stringHelpers'; // todo: move to utils @@ -116,7 +115,10 @@ export class PublicDatasService { if (view.type !== ViewTypes.CALENDAR) NcError.badRequest('View is not a calendar view'); - const { ranges } = await CalendarRange.read(view.id); + const calendarRange = await CalendarRange.read(view.id); + + if (!calendarRange || !calendarRange.ranges.length) + NcError.notFound('Calendar ranges are required in a calendar view'); const model = await Model.getByIdOrName({ id: view.fk_model_id, @@ -134,7 +136,7 @@ export class PublicDatasService { const dates: Array = []; - ranges.forEach((range: any) => { + calendarRange.ranges.forEach((range: any) => { data.list.forEach((date) => { const from = date[columns.find((c) => c.id === range.fk_from_column_id).title];