mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2025-12-06 17:15:38 -08:00
3.6 KiB
Executable File
3.6 KiB
Executable File
Events API Endpoints
The Events API provides access to device event logs, allowing creation, retrieval, deletion, and summary of events over time.
Endpoints
1. Create Event
- POST
/events/create/<mac>Create an event for a device identified by its MAC address.
Request Body (JSON):
{
"ip": "192.168.1.10",
"event_type": "Device Down",
"additional_info": "Optional info about the event",
"pending_alert": 1,
"event_time": "2025-08-24T12:00:00Z"
}
-
Parameters:
ip(string, optional): IP address of the deviceevent_type(string, optional): Type of event (default"Device Down")additional_info(string, optional): Extra informationpending_alert(int, optional): 1 if alert email is pending (default 1)event_time(ISO datetime, optional): Event timestamp; defaults to current time
Response (JSON):
{
"success": true,
"message": "Event created for 00:11:22:33:44:55"
}
2. Get Events
- GET
/eventsRetrieve all events, optionally filtered by MAC address:
/events?mac=<mac>
Response:
{
"success": true,
"events": [
{
"eve_MAC": "00:11:22:33:44:55",
"eve_IP": "192.168.1.10",
"eve_DateTime": "2025-08-24T12:00:00Z",
"eve_EventType": "Device Down",
"eve_AdditionalInfo": "",
"eve_PendingAlertEmail": 1
}
]
}
3. Delete Events
- DELETE
/events/<mac>→ Delete events for a specific MAC - DELETE
/events→ Delete all events - DELETE
/events/<days>→ Delete events older than N days
Response:
{
"success": true,
"message": "Deleted events older than <days> days"
}
4. Event Totals Over a Period
- GET
/sessions/totals?period=<period>Return event and session totals over a given period.
Query Parameters:
| Parameter | Description |
|---|---|
period |
Time period for totals, e.g., "7 days", "1 month", "1 year", "100 years" |
Sample Response (JSON Array):
[120, 85, 5, 10, 3, 7]
Meaning of Values:
- Total events in the period
- Total sessions
- Missing sessions
- Voided events (
eve_EventType LIKE 'VOIDED%') - New device events (
eve_EventType LIKE 'New Device') - Device down events (
eve_EventType LIKE 'Device Down')
Notes
- All endpoints require authorization (Bearer token). Unauthorized requests return:
{ "error": "Forbidden" }
-
Events are stored in the Events table with the following fields:
eve_MAC,eve_IP,eve_DateTime,eve_EventType,eve_AdditionalInfo,eve_PendingAlertEmail. -
Event creation automatically logs activity for debugging.
Example curl Requests
Create Event:
curl -X POST "http://<server_ip>:<GRAPHQL_PORT>/events/create/00:11:22:33:44:55" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
--data '{
"ip": "192.168.1.10",
"event_type": "Device Down",
"additional_info": "Power outage",
"pending_alert": 1
}'
Get Events for a Device:
curl "http://<server_ip>:<GRAPHQL_PORT>/events?mac=00:11:22:33:44:55" \
-H "Authorization: Bearer <API_TOKEN>"
Delete Events Older Than 30 Days:
curl -X DELETE "http://<server_ip>:<GRAPHQL_PORT>/events/30" \
-H "Authorization: Bearer <API_TOKEN>"
Get Event Totals for 7 Days:
curl "http://<server_ip>:<GRAPHQL_PORT>/sessions/totals?period=7 days" \
-H "Authorization: Bearer <API_TOKEN>"