feat(05-03): calendar backend — model, crypto, source CRUD module
- Add CalendarSource Prisma model with encrypted credentials (AES-256-GCM) - Create CalendarCryptoService with encrypt/decrypt using CALENDAR_ENCRYPTION_KEY - Create CalendarController with source CRUD endpoints (GET/POST/PATCH/DELETE) - Create CalendarService with ownership checks and SSRF URL validation - Add DTOs with https-only URL validation and class-validator decorators - Register CalendarModule in AppModule - Install tsdav, node-ical, ews-javascript-api, @microsoft/microsoft-graph-client - Stub provider files for Task 2 compilation
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
import { IsDateString, IsOptional } from 'class-validator';
|
||||
|
||||
/**
|
||||
* DTO for querying aggregated calendar events.
|
||||
*
|
||||
* Default window: now to now + 30 days (applied in CalendarService).
|
||||
*/
|
||||
export class CalendarEventsQueryDto {
|
||||
@IsOptional()
|
||||
@IsDateString()
|
||||
from?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsDateString()
|
||||
to?: string;
|
||||
}
|
||||
Reference in New Issue
Block a user