2025-02-16 15:21:19 -05:00
|
|
|
U0 @slon_api_v1_notifications_get(SlonHttpSession* session)
|
|
|
|
|
{
|
|
|
|
|
// SLON_SCRATCH_BUFFER_AND_REQUEST_JSON
|
|
|
|
|
|
|
|
|
|
if (@slon_api_authorized(session)) {
|
2025-03-20 09:54:24 -04:00
|
|
|
SLON_AUTH_ACCOUNT_ID
|
|
|
|
|
|
|
|
|
|
JsonObject* acct = @slon_api_account_by_id(account_id);
|
|
|
|
|
|
2025-02-21 18:10:25 -05:00
|
|
|
if (String.EndsWith("policy", session->path())) {
|
2025-02-20 08:24:04 -05:00
|
|
|
session->send(SLON_EMPTY_JSON_OBJECT);
|
2025-02-16 15:21:19 -05:00
|
|
|
} else {
|
2025-03-20 09:54:24 -04:00
|
|
|
if (!db->o("notifications")->@(acct->@("username"))) {
|
|
|
|
|
db->o("notifications")->set(acct->@("username"), Json.CreateArray(slon_db_mem_task), JSON_ARRAY);
|
|
|
|
|
}
|
|
|
|
|
session->send(db->o("notifications")->a(acct->@("username")));
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
session->status(401);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
U0 @slon_api_v1_notifications_post(SlonHttpSession* session)
|
|
|
|
|
{
|
|
|
|
|
// SLON_SCRATCH_BUFFER_AND_REQUEST_JSON
|
|
|
|
|
|
|
|
|
|
if (@slon_api_authorized(session)) {
|
|
|
|
|
SLON_AUTH_ACCOUNT_ID
|
|
|
|
|
|
|
|
|
|
JsonObject* acct = @slon_api_account_by_id(account_id);
|
|
|
|
|
|
|
|
|
|
if (String.EndsWith("/clear", session->path())) {
|
|
|
|
|
db->o("notifications")->set(acct->@("username"), Json.CreateArray(slon_db_mem_task), JSON_ARRAY);
|
|
|
|
|
@slon_db_save_notifications_to_disk;
|
|
|
|
|
session->send(SLON_EMPTY_JSON_OBJECT);
|
|
|
|
|
} else {
|
|
|
|
|
session->send(400);
|
2025-02-16 15:21:19 -05:00
|
|
|
}
|
|
|
|
|
} else {
|
2025-02-19 21:07:09 -05:00
|
|
|
session->status(401);
|
2025-02-16 15:21:19 -05:00
|
|
|
}
|
|
|
|
|
}
|