ruwuma/src/r0/client_exchange/send_event_to_device.rs
2020-02-18 19:19:10 +01:00

37 lines
1.2 KiB
Rust

//! [PUT /_matrix/client/r0/sendToDevice/{eventType}/{txnId}](https://matrix.org/docs/spec/client_server/r0.6.0#put-matrix-client-r0-sendtodevice-eventtype-txnid)
use std::collections::HashMap;
use ruma_api::ruma_api;
use ruma_events::{collections::all, EventResult};
use ruma_identifiers::UserId;
use super::DeviceIdOrAllDevices;
ruma_api! {
metadata {
description: "Send an event to a device or devices.",
method: PUT,
name: "send_event_to_device",
path: "/_matrix/client/r0/sendToDevice/:event_type/:txn_id",
rate_limited: false,
requires_authentication: true,
}
request {
/// Type of event being sent to each device.
#[ruma_api(path)]
event_type: String,
/// A request identifier unique to the access token used to send the request.
#[ruma_api(path)]
txn_id: String,
/// A map of users to devices to a message event to be sent to the user's
/// device. Individual message events can be sent to devices, but all
/// events must be of the same type.
#[wrap_incoming(all::Event with EventResult)]
messages: HashMap<UserId, HashMap<DeviceIdOrAllDevices, all::Event>>
}
response {}
}