refactor: ♻️ error handling for permission and window
This commit is contained in:
parent
97ff087111
commit
604806670e
3 changed files with 8 additions and 3 deletions
|
@ -1,11 +1,14 @@
|
||||||
|
use protocol::Error;
|
||||||
|
|
||||||
pub mod gui;
|
pub mod gui;
|
||||||
pub mod media;
|
pub mod media;
|
||||||
pub mod webrtc;
|
|
||||||
pub mod signal;
|
pub mod signal;
|
||||||
|
pub mod webrtc;
|
||||||
|
|
||||||
pub async fn sleep(timeout: u16) {
|
pub async fn sleep(timeout: u16) {
|
||||||
let sleep_promise = web_sys::js_sys::Promise::new(&mut |resolve, _| {
|
let sleep_promise = web_sys::js_sys::Promise::new(&mut |resolve, _| {
|
||||||
web_sys::window()
|
web_sys::window()
|
||||||
|
.ok_or(Error::Window)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.set_timeout_with_callback_and_timeout_and_arguments_0(&resolve, timeout as i32)
|
.set_timeout_with_callback_and_timeout_and_arguments_0(&resolve, timeout as i32)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
|
@ -13,7 +13,7 @@ use crate::webrtc::WebRTC;
|
||||||
|
|
||||||
pub async fn get_audio_stream() -> Result<MediaStream, Error> {
|
pub async fn get_audio_stream() -> Result<MediaStream, Error> {
|
||||||
let media_devices = window()
|
let media_devices = window()
|
||||||
.ok_or(Error::MediaStream("Accessing Window".to_owned()))?
|
.ok_or(Error::Window)?
|
||||||
.navigator()
|
.navigator()
|
||||||
.media_devices()
|
.media_devices()
|
||||||
.map_err(|err_val| Error::MediaStream(format!("{:?}", err_val)))?;
|
.map_err(|err_val| Error::MediaStream(format!("{:?}", err_val)))?;
|
||||||
|
@ -31,7 +31,7 @@ pub async fn get_audio_stream() -> Result<MediaStream, Error> {
|
||||||
.map_err(|err_val| Error::MediaStream(format!("{:?}", err_val)))?;
|
.map_err(|err_val| Error::MediaStream(format!("{:?}", err_val)))?;
|
||||||
let media_stream = JsFuture::from(media_stream_promise)
|
let media_stream = JsFuture::from(media_stream_promise)
|
||||||
.await
|
.await
|
||||||
.map_err(|err_val| Error::MediaStream(format!("{:?}", err_val)))?;
|
.map_err(|err_val| Error::Permission(format!("{:?}", err_val)))?;
|
||||||
let media_stream = media_stream.unchecked_ref::<MediaStream>();
|
let media_stream = media_stream.unchecked_ref::<MediaStream>();
|
||||||
|
|
||||||
let audio_stream_tracks = media_stream.get_audio_tracks();
|
let audio_stream_tracks = media_stream.get_audio_tracks();
|
||||||
|
|
|
@ -10,6 +10,7 @@ pub struct User {
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||||
pub enum Error {
|
pub enum Error {
|
||||||
|
Window,
|
||||||
Permission(String),
|
Permission(String),
|
||||||
MediaPlay(String),
|
MediaPlay(String),
|
||||||
MediaStream(String),
|
MediaStream(String),
|
||||||
|
@ -42,6 +43,7 @@ impl std::error::Error for Error {
|
||||||
impl Display for Error {
|
impl Display for Error {
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
match self {
|
match self {
|
||||||
|
Error::Window => write!(f, "Window"),
|
||||||
Error::Permission(permission_cause) => write!(f, "Permission | {}", permission_cause),
|
Error::Permission(permission_cause) => write!(f, "Permission | {}", permission_cause),
|
||||||
Error::MediaPlay(err_val) => write!(f, "Media Play | {}", err_val),
|
Error::MediaPlay(err_val) => write!(f, "Media Play | {}", err_val),
|
||||||
Error::MediaStream(err_val) => write!(f, "Media Stream | {}", err_val),
|
Error::MediaStream(err_val) => write!(f, "Media Stream | {}", err_val),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue