reorganize module
This commit is contained in:
85
database/scripts/events.rhai
Normal file
85
database/scripts/events.rhai
Normal file
@@ -0,0 +1,85 @@
|
||||
// events.rhai - Functions for handling calendar events
|
||||
|
||||
import "utils" as utils;
|
||||
import "../models/event_model" as event_model;
|
||||
|
||||
// Get all events
|
||||
fn get_all_events() {
|
||||
return event_model::get_sample_events();
|
||||
}
|
||||
|
||||
// Get a specific event by ID
|
||||
fn get_event(event_id) {
|
||||
let events = get_all_events();
|
||||
return utils::find_by_id(events, event_id);
|
||||
}
|
||||
|
||||
// Get events for a specific calendar
|
||||
fn get_events_by_calendar(calendar_id) {
|
||||
let events = get_all_events();
|
||||
return utils::filter_by_property(events, "calendar_id", calendar_id);
|
||||
}
|
||||
|
||||
// Get events for a specific user (as attendee)
|
||||
fn get_events_by_attendee(user_id) {
|
||||
let events = get_all_events();
|
||||
let user_events = [];
|
||||
|
||||
for event in events {
|
||||
if utils::array_contains(event.attendees, user_id) {
|
||||
user_events.push(event);
|
||||
}
|
||||
}
|
||||
|
||||
return user_events;
|
||||
}
|
||||
|
||||
// Get events organized by a specific user
|
||||
fn get_events_by_organizer(user_id) {
|
||||
let events = get_all_events();
|
||||
return utils::filter_by_property(events, "organizer_id", user_id);
|
||||
}
|
||||
|
||||
// Get events for a specific date range
|
||||
fn get_events_by_date_range(start_date, end_date) {
|
||||
let events = get_all_events();
|
||||
let filtered_events = [];
|
||||
|
||||
for event in events {
|
||||
let event_start = event.start_time;
|
||||
|
||||
// Simple string comparison - in a real app, we would use proper date comparison
|
||||
if event_start >= start_date && event_start <= end_date {
|
||||
filtered_events.push(event);
|
||||
}
|
||||
}
|
||||
|
||||
return filtered_events;
|
||||
}
|
||||
|
||||
// Create a new event
|
||||
fn create_event(title, description, start_time, end_time, location, calendar_id, organizer_id, attendees, recurring, status) {
|
||||
// Generate a simple ID (in a real app, we would use a proper ID generation method)
|
||||
let id = "event" + (get_all_events().len() + 1).to_string();
|
||||
|
||||
return event_model::create_event(
|
||||
id, title, description, start_time, end_time, location,
|
||||
calendar_id, organizer_id, attendees, recurring, status
|
||||
);
|
||||
}
|
||||
|
||||
// Format event details for display
|
||||
fn format_event(event) {
|
||||
if utils::is_empty(event) {
|
||||
return "Event not found";
|
||||
}
|
||||
|
||||
let start_date = utils::format_date(event.start_time);
|
||||
let start_time = utils::format_time(event.start_time);
|
||||
let end_time = utils::format_time(event.end_time);
|
||||
|
||||
return `${event.title} (${start_date}, ${start_time} - ${end_time})
|
||||
Location: ${event.location}
|
||||
Description: ${event.description}
|
||||
Status: ${event.status}`;
|
||||
}
|
Reference in New Issue
Block a user