Skip to main content

eoka_server/
dispatch.rs

1use serde_json::Value;
2
3use crate::methods::{browser, page};
4use crate::protocol::ServerError;
5use crate::state::AppState;
6
7pub async fn dispatch(
8    state: &mut AppState,
9    method: &str,
10    params: Value,
11) -> Result<Value, ServerError> {
12    match method {
13        "browser.launch" => browser::launch(state, params).await,
14        "browser.new_page" => browser::new_page(state, params).await,
15        "browser.tabs" => browser::tabs(state, params).await,
16        "browser.close_tab" => browser::close_tab(state, params).await,
17        "browser.close" => browser::close(state, params).await,
18
19        "page.goto" => page::goto(state, params).await,
20        "page.click" => page::click(state, params).await,
21        "page.click_text" => page::click_text(state, params).await,
22        "page.human_click" => page::human_click(state, params).await,
23        "page.human_click_text" => page::human_click_text(state, params).await,
24        "page.fill" => page::fill(state, params).await,
25        "page.human_fill" => page::human_fill(state, params).await,
26        "page.type_into" => page::type_into(state, params).await,
27        "page.text" => page::text(state, params).await,
28        "page.content" => page::content(state, params).await,
29        "page.title" => page::title(state, params).await,
30        "page.url" => page::url(state, params).await,
31        "page.get_text" => page::get_text(state, params).await,
32        "page.get_attribute" => page::get_attribute(state, params).await,
33        "page.exists" => page::exists(state, params).await,
34        "page.wait_for" => page::wait_for(state, params).await,
35        "page.wait_for_visible" => page::wait_for_visible(state, params).await,
36        "page.wait_for_text" => page::wait_for_text(state, params).await,
37        "page.evaluate" => page::evaluate(state, params).await,
38        "page.execute" => page::execute(state, params).await,
39        "page.fetch" => page::fetch(state, params).await,
40        "page.capture_state" => page::capture_state(state, params).await,
41        "page.restore_state" => page::restore_state(state, params).await,
42        "page.screenshot" => page::screenshot(state, params).await,
43        "page.select" => page::select(state, params).await,
44        "page.hover" => page::hover(state, params).await,
45        "page.press_key" => page::press_key(state, params).await,
46        "page.solve_captcha" => page::solve_captcha(state, params).await,
47        "page.close" => page::close(state, params).await,
48
49        _ => Err(ServerError::unknown_method(method)),
50    }
51}