diff --git a/docs/src/api.room.create.md b/docs/src/api.room.create.md index e88986ba..ad6a2e64 100644 --- a/docs/src/api.room.create.md +++ b/docs/src/api.room.create.md @@ -26,3 +26,13 @@ backend | String | none | The room backend. Available values: janus, ## Unicast response If successful, the response payload contains a **Room** object. + +## Broadcast event + +A notification is being sent to the _audience_ topic. + +**URI:** `audiences/:audience/events` + +**Label:** `room.create`. + +**Payload:** created [room](../room.md#room) object. diff --git a/docs/src/api.room.delete.md b/docs/src/api.room.delete.md index c92df43b..f4373d5e 100644 --- a/docs/src/api.room.delete.md +++ b/docs/src/api.room.delete.md @@ -23,3 +23,13 @@ id | Uuid | _required_ | The room identifier. The room must not be expired. ## Unicast response If successful, the response payload contains a deleted **Room** object. + +## Broadcast event + +A notification is being sent to the _audience_ topic. + +**URI:** `audiences/:audience/events` + +**Label:** `room.delete`. + +**Payload:** deleted [room](../room.md#room) object. diff --git a/docs/src/api.room.md b/docs/src/api.room.md index dae119dd..50330bb6 100644 --- a/docs/src/api.room.md +++ b/docs/src/api.room.md @@ -1 +1,11 @@ # Room + +## Properties + +Name | Type | Default | Description +---------------| ---------- | ---------- | ---------------------------------------------------- +id | uuid | _required_ | The room identifier. +audience | string | _required_ | The audience of the room. +time | [int, int] | _required_ | Opening and closing timestamps in seconds. +created_at | int | _required_ | Room creation timestamp in seconds. +backend | string | _required_ | Room backend, either `janus` or `none`. diff --git a/docs/src/api.room.update.md b/docs/src/api.room.update.md index 271bdb06..986fc3b8 100644 --- a/docs/src/api.room.update.md +++ b/docs/src/api.room.update.md @@ -26,3 +26,13 @@ backend | String | _optional_ | The room backend. Available values: janus, ## Unicast response If successful, the response payload contains an updated **Room** object. + +## Broadcast event + +A notification is being sent to the _audience_ topic. + +**URI:** `audiences/:audience/events` + +**Label:** `room.update`. + +**Payload:** [room](../room.md#room) object. diff --git a/src/app/endpoint/room.rs b/src/app/endpoint/room.rs index 238f9cbe..56b40d77 100644 --- a/src/app/endpoint/room.rs +++ b/src/app/endpoint/room.rs @@ -119,7 +119,10 @@ impl State { shared::respond( &inreq, object, - Some(("room.create", "rooms")), + Some(( + "room.create", + &format!("audiences/{}/events", inreq.payload().audience), + )), start_timestamp, authz_time, ) @@ -198,10 +201,11 @@ impl State { inreq.payload().execute(&conn)? }; + let audience = object.audience().to_owned(); shared::respond( &inreq, object, - Some(("room.update", &format!("rooms/{}/events", room_id))), + Some(("room.update", &format!("audiences/{}/events", audience))), start_timestamp, authz_time, ) @@ -245,10 +249,11 @@ impl State { room::DeleteQuery::new(inreq.payload().id).execute(&conn)? }; + let audience = object.audience().to_owned(); shared::respond( &inreq, object, - Some(("room.delete", "rooms")), + Some(("room.delete", &format!("audiences/{}/events", &audience))), start_timestamp, authz_time, ) @@ -439,7 +444,10 @@ mod test { assert_eq!( evt.topic(), - format!("apps/conference.{}/api/{}/rooms", AUDIENCE, API_VERSION), + format!( + "apps/conference.{}/api/{}/audiences/{}/events", + AUDIENCE, API_VERSION, AUDIENCE + ), ); assert_eq!(evt.properties().kind(), "event"); @@ -639,10 +647,8 @@ mod test { assert_eq!( evt.topic(), format!( - "apps/conference.{}/api/{}/rooms/{}/events", - AUDIENCE, - API_VERSION, - room.id() + "apps/conference.{}/api/{}/audiences/{}/events", + AUDIENCE, API_VERSION, "dev.svc.example.net" ), ); @@ -757,7 +763,10 @@ mod test { assert_eq!( evt.topic(), - format!("apps/conference.{}/api/{}/rooms", AUDIENCE, API_VERSION), + format!( + "apps/conference.{}/api/{}/audiences/{}/events", + AUDIENCE, API_VERSION, AUDIENCE + ), ); assert_eq!(evt.properties().kind(), "event"); diff --git a/src/test_helpers/db.rs b/src/test_helpers/db.rs index 36407f9d..87a73e8d 100644 --- a/src/test_helpers/db.rs +++ b/src/test_helpers/db.rs @@ -2,7 +2,7 @@ use crate::db::{create_pool, ConnectionPool}; use diesel::Connection; use std::env::var; -const TIMEOUT: u64 = 60000; +const TIMEOUT: u64 = 10; pub(crate) struct TestDb { connection_pool: ConnectionPool,