Features: - Complete CalendarEvent struct with all iCal properties - EventStatus and EventClass enums for proper typing - CalDAVClient for server communication with: - fetch_events() method using CalDAV REPORT queries - discover_calendars() with intelligent path discovery - Full iCal parsing using ical crate - DateTime parsing with multiple format support - XML response parsing with regex Integration tests: - Real server event fetching with calendar discovery - iCal parsing validation with sample data - DateTime parsing tests (UTC, local, date-only) - Successful connection to configured calendar path Dependencies added: - regex crate for XML parsing - Enhanced calendar module structure Test results: ✓ All 7 tests pass - Successfully connects to /calendars/test/ path - Fetches 0 events (empty calendar, connection confirmed) - No more 404 errors with improved discovery logic 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
43 lines
873 B
TOML
43 lines
873 B
TOML
[package]
|
|
name = "yew-app"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[dependencies]
|
|
yew = { version = "0.21", features = ["csr"] }
|
|
web-sys = "0.3"
|
|
wasm-bindgen = "0.2"
|
|
|
|
# HTTP client for CalDAV requests
|
|
reqwest = { version = "0.11", features = ["json"] }
|
|
wasm-bindgen-futures = "0.4"
|
|
|
|
# Calendar and iCal parsing
|
|
ical = "0.7"
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
|
|
# Date and time handling
|
|
chrono = { version = "0.4", features = ["serde", "wasm-bindgen"] }
|
|
chrono-tz = "0.8"
|
|
|
|
# Error handling
|
|
anyhow = "1.0"
|
|
thiserror = "1.0"
|
|
|
|
# Logging
|
|
log = "0.4"
|
|
console_log = "1.0"
|
|
|
|
# UUID generation for calendar events
|
|
uuid = { version = "1.0", features = ["v4", "wasm-bindgen"] }
|
|
|
|
# Environment variable handling
|
|
dotenvy = "0.15"
|
|
base64 = "0.21"
|
|
|
|
# XML/Regex parsing
|
|
regex = "1.0"
|
|
|
|
[dev-dependencies]
|
|
tokio = { version = "1.0", features = ["macros", "rt"] } |