Skip to content

Commit

Permalink
rm api addr hardcode
Browse files Browse the repository at this point in the history
  • Loading branch information
joshrmcdaniel committed Jun 15, 2024
1 parent a9cc6e3 commit 3a3a4fe
Show file tree
Hide file tree
Showing 7 changed files with 101 additions and 37 deletions.
9 changes: 6 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion web_frontend/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ edition = "2021"


[dependencies]
filterlists-api = { path = "../filterlists-api", features = ["reqwasm"] }
yew = "0.19.3"
yew-router = "0.16.0"
serde_json = "1.0.81"
Expand All @@ -23,3 +22,6 @@ web-sys = { version = "0.3.69", features = ["InputEvent", "InputEventInit", "Ht
reqwasm = "0.5.0"
serde_with = "3.8.1"
url = "2.5.0"
readonly = "0.2.12"
thiserror = "1.0.61"
filterlists-api = { path = "../filterlists-api" }
2 changes: 1 addition & 1 deletion web_frontend/src/dashboard.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ impl Component for Dashboard {
let future = Abortable::new(
async move {
loop {
let ws = match WebSocket::open(&format!("ws://{}/statistics", get_api_host())) {
let ws = match WebSocket::open("/api/statistics") {
Ok(ws) => ws,
Err(_err) => {
log::warn!("Unable to connect to websocket, trying again.");
Expand Down
111 changes: 85 additions & 26 deletions web_frontend/src/filterlists.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
use crate::filters::{AddFilterRequest, Filter, FilterConfiguration, FilterGroup};
use crate::save_button::BASE_BUTTON_CSS;
use crate::{get_api_host, save_button, submit_banner};

Check warning on line 3 in web_frontend/src/filterlists.rs

View workflow job for this annotation

GitHub Actions / Run clippy check

unused imports: `get_api_host`, `save_button`, and `submit_banner`

Check warning on line 3 in web_frontend/src/filterlists.rs

View workflow job for this annotation

GitHub Actions / Run clippy check

unused imports: `get_api_host`, `save_button`, and `submit_banner`

Check warning on line 3 in web_frontend/src/filterlists.rs

View workflow job for this annotation

GitHub Actions / Run clippy check

unused imports: `get_api_host`, `save_button`, and `submit_banner`

Check warning on line 3 in web_frontend/src/filterlists.rs

View workflow job for this annotation

GitHub Actions / Run clippy check

unused imports: `get_api_host`, `save_button`, and `submit_banner`

Check warning on line 3 in web_frontend/src/filterlists.rs

View workflow job for this annotation

GitHub Actions / Build (linux, ubuntu-latest, stable, x86_64-unknown-linux-gnu)

unused imports: `get_api_host`, `save_button`, `submit_banner`

Check warning on line 3 in web_frontend/src/filterlists.rs

View workflow job for this annotation

GitHub Actions / Build (linux, ubuntu-latest, stable, x86_64-unknown-linux-gnu)

unused imports: `get_api_host`, `save_button`, `submit_banner`

Check warning on line 3 in web_frontend/src/filterlists.rs

View workflow job for this annotation

GitHub Actions / Build (linux, ubuntu-latest, stable, aarch64-unknown-linux-gnu)

unused imports: `get_api_host`, `save_button`, `submit_banner`

Check warning on line 3 in web_frontend/src/filterlists.rs

View workflow job for this annotation

GitHub Actions / Build (linux, ubuntu-latest, stable, aarch64-unknown-linux-gnu)

unused imports: `get_api_host`, `save_button`, `submit_banner`
use filterlists_api;
use reqwasm::http::Request;
use url::Url;
use wasm_bindgen_futures::spawn_local;
use web_sys::HtmlInputElement;
use yew::prelude::*;
use yew::InputEvent;
use yew::{html, Component, Context, Html};

pub enum SearchFilterMessage {
Open,
Close,
Expand Down Expand Up @@ -39,8 +39,6 @@ pub struct SearchFilterList {
active_filters: FilterConfiguration,
}

use filterlists_api;

const FILTER_TAG_GROUPS: [&'static str; 4] = ["ads", "privacy", "malware", "social"];

#[derive(Properties, PartialEq)]
Expand Down Expand Up @@ -77,13 +75,14 @@ impl Component for SearchFilterList {
SearchFilterMessage::Close => self.is_open = false,
SearchFilterMessage::FilterChanged(query) => self.filter_query = query,
SearchFilterMessage::AddFilter(filter) => {
let parsed_url = match Url::parse(&filter.primary_view_url.clone().unwrap()) {
Ok(url) => url,
Err(err) => {
log::error!("Failed to parse URL: {}", err);
return false;
}
};
let parsed_url =
match Url::parse(&filter.primary_view_url.clone().unwrap_or_default()) {
Ok(url) => url,
Err(err) => {
log::error!("Failed to parse URL: {}", err);
return false;
}
};
let group: FilterGroup = self
.tags
.clone()
Expand All @@ -104,7 +103,7 @@ impl Component for SearchFilterList {

let request_body: AddFilterRequest =
AddFilterRequest::new(filter.name.clone(), group, parsed_url);
let request = Request::post(&format!("http://{}/filters", get_api_host()))
let request = Request::post("/api/filters")
.header("Content-Type", "application/json")
.body(serde_json::to_string(&request_body).unwrap());
self.active_filters.push(Filter::new(
Expand Down Expand Up @@ -137,7 +136,7 @@ impl Component for SearchFilterList {
};
let request_body: AddFilterRequest =
AddFilterRequest::new(filter.name.clone(), FilterGroup::Malware, parsed_url);
let request = Request::delete(&format!("http://{}/filters", get_api_host()))
let request = Request::delete("/api/filters")
.header("Content-Type", "application/json")
.body(serde_json::to_string(&request_body).unwrap());
spawn_local(async move {
Expand All @@ -159,31 +158,91 @@ impl Component for SearchFilterList {
if self.loading {
let link = self.link.clone();
spawn_local(async move {
match filterlists_api::get_languages().await {
Ok(langs) => {
link.send_message(SearchFilterMessage::LanguagesLoaded(langs))
let request = Request::get("/api/filterlists/list");
match request.send().await {
Ok(response) => {
if response.ok() {
if let Ok(filters) =
response.json::<Vec<filterlists_api::Filter>>().await
{
link.send_message(SearchFilterMessage::FiltersLoaded(
filters,
))
}
} else {
log::error!("Failed to load filters: {:?}", response.status());
link.send_message(SearchFilterMessage::Error(
response.status().to_string(),
))
}
}
Err(err) => {
link.send_message(SearchFilterMessage::Error(err.to_string()))
}
};
match filterlists_api::get_licenses().await {
Ok(licenses) => {
link.send_message(SearchFilterMessage::LicensesLoaded(licenses))
}
let request = Request::get("/api/filterlists/languages");
match request.send().await {
Ok(response) => {
if response.ok() {
if let Ok(langs) = response
.json::<Vec<filterlists_api::FilterLanguage>>()
.await
{
link.send_message(SearchFilterMessage::LanguagesLoaded(
langs,
))
}
} else {
log::error!(
"Failed to load languages: {:?}",
response.status()
);
link.send_message(SearchFilterMessage::Error(
response.status().to_string(),
))
}
}
Err(err) => {
link.send_message(SearchFilterMessage::Error(err.to_string()))
}
};
match filterlists_api::get_tags().await {
Ok(tags) => link.send_message(SearchFilterMessage::TagsLoaded(tags)),
let request = Request::get("/api/filterlists/licenses");
match request.send().await {
Ok(response) => {
if response.ok() {
if let Ok(licenses) =
response.json::<Vec<filterlists_api::FilterLicense>>().await
{
link.send_message(SearchFilterMessage::LicensesLoaded(
licenses,
))
}
} else {
log::error!("Failed to load licenses: {:?}", response.status());
link.send_message(SearchFilterMessage::Error(
response.status().to_string(),
))
}
}
Err(err) => {
link.send_message(SearchFilterMessage::Error(err.to_string()))
}
};
match filterlists_api::get_filters().await {
Ok(filters) => {
link.send_message(SearchFilterMessage::FiltersLoaded(filters))
let request = Request::get("/api/filterlists/tags");
match request.send().await {
Ok(response) => {
if response.ok() {
if let Ok(tags) =
response.json::<Vec<filterlists_api::FilterTag>>().await
{
link.send_message(SearchFilterMessage::TagsLoaded(tags))
}
} else {
log::error!("Failed to load tags: {:?}", response.status());
link.send_message(SearchFilterMessage::Error(
response.status().to_string(),
))
}
}
Err(err) => {
link.send_message(SearchFilterMessage::Error(err.to_string()))
Expand All @@ -210,7 +269,7 @@ impl Component for SearchFilterList {
self.tags = tags.clone();
}
SearchFilterMessage::Error(error) => {
log::error!("Error loading filters: {}", error);
log::error!("Error loading filters: {}", error.to_string());
self.loading = false;
}
SearchFilterMessage::NextPage => {
Expand Down Expand Up @@ -397,7 +456,7 @@ impl SearchFilterList {
}}
</td>
<td class="border px-4 py-2 overflow-auto" style="height: 5vh; max-width: 10vw; white-space: normal;">
{ &filter.description }
{ &filter.description.clone().unwrap() }
</td>
<td class="border px-4 py-2 overflow-hidden" style="height: 5vh; white-space: nowrap; text-overflow: ellipsis;">
{ self.get_language_name(filter.language_ids.clone()) }
Expand Down
6 changes: 3 additions & 3 deletions web_frontend/src/filters.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ impl Component for AddFilterComponent {
url: parsed_url,
};

let request = Request::post(&format!("http://{}/filters", get_api_host()))
let request = Request::post("/api/filters")
.header("Content-Type", "application/json")
.body(serde_json::to_string(&request_body).unwrap());

Expand Down Expand Up @@ -371,7 +371,7 @@ impl Component for Filters {
}
Message::Load => {
log::debug!("Retrieving filters..");
let request = Request::get(&format!("http://{}/filters", get_api_host()));
let request = Request::get("/api/filters");
log::debug!("Request: {:?}", request);
let message_callback = ctx.link().callback(|message: Message| message);
log::debug!("Message callback: {:?}", message_callback);
Expand Down Expand Up @@ -411,7 +411,7 @@ impl Component for Filters {
})
.collect::<Vec<_>>();

let request = Request::put(&format!("http://{}/filters", get_api_host()))
let request = Request::put("/api/filters")
.header("Content-Type", "application/json")
.body(serde_json::to_string(&request_body).unwrap());

Expand Down
2 changes: 1 addition & 1 deletion web_frontend/src/requests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ impl Component for Requests {
fn create(ctx: &Context<Self>) -> Self {
let message_callback = ctx.link().callback(|message: Message| message);

let ws = WebSocket::open(&format!("ws://{}/events", get_api_host())).unwrap();
let ws = WebSocket::open("/api/events").unwrap();
let (_write, mut read) = ws.split();

let (abort_handle, abort_registration) = AbortHandle::new_pair();
Expand Down
4 changes: 2 additions & 2 deletions web_frontend/src/settings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ pub fn switch_settings(route: &SettingsRoute) -> Html {
SettingsRoute::Exclusions => {
set_title("Settings - Exclusions");

let resource_url = format!("http://{}/exclusions", get_api_host());
let resource_url = "/api/exclusions";

let description = html! {<div class="text-gray-600">
<p>
Expand All @@ -70,7 +70,7 @@ pub fn switch_settings(route: &SettingsRoute) -> Html {
SettingsRoute::CustomFilters => {
set_title("Settings - Custom Filters");

let resource_url = format!("http://{}/custom-filters", get_api_host());
let resource_url = "/api/custom-filters";

let description = html! {
<p class="text-gray-600">
Expand Down

0 comments on commit 3a3a4fe

Please sign in to comment.