Browse Source

fix(nocodb): get from_date and to_date from decorator

pull/7716/head
DarkPhoenix2704 7 months ago
parent
commit
436fe8aa2f
  1. 31
      packages/nocodb/src/controllers/calendars-datas.controller.ts
  2. 40
      packages/nocodb/src/services/calendar-datas.service.ts

31
packages/nocodb/src/controllers/calendars-datas.controller.ts

@ -1,4 +1,12 @@
import { Controller, Get, Param, Req, Res, UseGuards } from '@nestjs/common';
import {
Controller,
Get,
Param,
Query,
Req,
Res,
UseGuards,
} from '@nestjs/common';
import { Request, Response } from 'express';
import { GlobalGuard } from '~/guards/global/global.guard';
import { DataApiLimiterGuard } from '~/guards/data-api-limiter.guard';
@ -14,10 +22,17 @@ export class CalendarDatasController {
@Get(['/api/v1/db/calendar-data/:orgs/:baseName/:tableName/views/:viewName'])
@Acl('dataList')
async dataList(@Req() req: Request, @Param('viewName') viewId: string) {
async dataList(
@Req() req: Request,
@Param('viewName') viewId: string,
@Query('from_date') fromDate: string,
@Query('to_date') toDate: string,
) {
return await this.calendarDatasService.getCalendarDataList({
viewId: viewId,
query: req.query,
from_date: fromDate,
to_date: toDate,
});
}
@ -31,12 +46,16 @@ export class CalendarDatasController {
@Param('baseName') baseName: string,
@Param('tableName') tableName: string,
@Param('viewName') viewName: string,
@Query('from_date') fromDate: string,
@Query('to_date') toDate: string,
) {
const startTime = process.hrtime();
const data = await this.calendarDatasService.getCalendarRecordCount({
query: req.query,
viewId: viewName,
from_date: fromDate,
to_date: toDate,
});
const elapsedSeconds = parseHrtimeToMilliSeconds(process.hrtime(startTime));
@ -51,11 +70,15 @@ export class CalendarDatasController {
async countByDate(
@Req() req: Request,
@Param('sharedViewUuid') sharedViewUuid: string,
@Query('from_date') fromDate: string,
@Query('to_date') toDate: string,
) {
return await this.calendarDatasService.getPublicCalendarRecordCount({
query: req.query,
password: req.headers?.['xc-password'] as string,
sharedViewUuid,
from_date: fromDate,
to_date: toDate,
});
}
@ -66,11 +89,15 @@ export class CalendarDatasController {
async getPublicCalendarDataList(
@Req() req: Request,
@Param('sharedViewUuid') sharedViewUuid: string,
@Query('from_date') fromDate: string,
@Query('to_date') toDate: string,
) {
return await this.calendarDatasService.getPublicCalendarDataList({
query: req.query,
password: req.headers?.['xc-password'] as string,
sharedViewUuid,
from_date: fromDate,
to_date: toDate,
});
}
}

40
packages/nocodb/src/services/calendar-datas.service.ts

@ -12,10 +12,13 @@ export class CalendarDatasService {
constructor(protected datasService: DatasService) {}
async getCalendarDataList(param: { viewId: string; query: any }) {
const { viewId, query } = param;
const from_date = query.from_date;
const to_date = query.to_date;
async getCalendarDataList(param: {
viewId: string;
query: any;
from_date: string;
to_date: string;
}) {
const { viewId, query, from_date, to_date } = param;
if (!from_date || !to_date)
NcError.badRequest('from_date and to_date are required');
@ -60,6 +63,8 @@ export class CalendarDatasService {
password: string;
query: any;
sharedViewUuid: string;
from_date: string;
to_date: string;
}) {
const { sharedViewUuid, password, query = {} } = param;
const view = await View.getByUUID(sharedViewUuid);
@ -73,13 +78,20 @@ export class CalendarDatasService {
return NcError.forbidden(ErrorMessages.INVALID_SHARED_VIEW_PASSWORD);
}
return this.getCalendarRecordCount({ viewId: view.id, query });
return this.getCalendarRecordCount({
viewId: view.id,
query,
from_date: param.from_date,
to_date: param.to_date,
});
}
async getPublicCalendarDataList(param: {
password: string;
query: any;
sharedViewUuid: string;
from_date: string;
to_date: string;
}) {
const { sharedViewUuid, password, query = {} } = param;
const view = await View.getByUUID(sharedViewUuid);
@ -93,13 +105,21 @@ export class CalendarDatasService {
return NcError.forbidden(ErrorMessages.INVALID_SHARED_VIEW_PASSWORD);
}
return this.getCalendarDataList({ viewId: view.id, query });
return this.getCalendarDataList({
viewId: view.id,
query,
from_date: param.from_date,
to_date: param.to_date,
});
}
async getCalendarRecordCount(param: { viewId: string; query: any }) {
const { viewId, query } = param;
const from_date = query.from_date;
const to_date = query.to_date;
async getCalendarRecordCount(param: {
viewId: string;
query: any;
from_date: string;
to_date: string;
}) {
const { viewId, query, from_date, to_date } = param;
if (!from_date || !to_date)
NcError.badRequest('from_date and to_date are required');

Loading…
Cancel
Save