Skip to content

Commit

Permalink
make initial_messages optional in line with db
Browse files Browse the repository at this point in the history
  • Loading branch information
HugoCasa committed Dec 19, 2024
1 parent d9149cd commit 460d3d7
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 9 deletions.
2 changes: 1 addition & 1 deletion backend/ee-repo-ref.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
586b02014d57f862a5c4313dd1e529d50c315c30
04617d796ec91b64265929e81536aa0778314776
3 changes: 0 additions & 3 deletions backend/windmill-api/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12384,7 +12384,6 @@ components:
- workspace_id
- enabled
- filters
- initial_messages

NewWebsocketTrigger:
type: object
Expand Down Expand Up @@ -12423,7 +12422,6 @@ components:
- url
- is_flow
- filters
- initial_messages

EditWebsocketTrigger:
type: object
Expand Down Expand Up @@ -12460,7 +12458,6 @@ components:
- url
- is_flow
- filters
- initial_messages

WebsocketTriggerInitialMessage:
anyOf:
Expand Down
22 changes: 17 additions & 5 deletions backend/windmill-api/src/websocket_triggers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ struct NewWebsocketTrigger {
is_flow: bool,
enabled: Option<bool>,
filters: Vec<Box<RawValue>>,
initial_messages: Vec<Box<RawValue>>,
initial_messages: Option<Vec<Box<RawValue>>>,
url_runnable_args: Option<Box<RawValue>>,
}

Expand Down Expand Up @@ -98,7 +98,7 @@ pub struct WebsocketTrigger {
error: Option<String>,
enabled: bool,
filters: Vec<SqlxJson<Box<RawValue>>>,
initial_messages: Vec<SqlxJson<Box<RawValue>>>,
initial_messages: Option<Vec<SqlxJson<Box<RawValue>>>>,
url_runnable_args: Option<SqlxJson<Box<RawValue>>>,
}

Expand All @@ -109,7 +109,7 @@ struct EditWebsocketTrigger {
script_path: String,
is_flow: bool,
filters: Vec<Box<RawValue>>,
initial_messages: Vec<Box<RawValue>>,
initial_messages: Option<Vec<Box<RawValue>>>,
url_runnable_args: Option<Box<RawValue>>,
}

Expand Down Expand Up @@ -195,7 +195,12 @@ async fn create_websocket_trigger(
let mut tx = user_db.begin(&authed).await?;

let filters = ct.filters.into_iter().map(SqlxJson).collect_vec();
let initial_messages = ct.initial_messages.into_iter().map(SqlxJson).collect_vec();
let initial_messages = ct
.initial_messages
.unwrap_or_default()
.into_iter()
.map(SqlxJson)
.collect_vec();
sqlx::query_as::<_, WebsocketTrigger>(
"INSERT INTO websocket_trigger (workspace_id, path, url, script_path, is_flow, enabled, filters, initial_messages, url_runnable_args, edited_by, email, edited_at) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, now()) RETURNING *",
)
Expand Down Expand Up @@ -238,7 +243,12 @@ async fn update_websocket_trigger(
let mut tx = user_db.begin(&authed).await?;

let filters = ct.filters.into_iter().map(SqlxJson).collect_vec();
let initial_messages = ct.initial_messages.into_iter().map(SqlxJson).collect_vec();
let initial_messages = ct
.initial_messages
.unwrap_or_default()
.into_iter()
.map(SqlxJson)
.collect_vec();

// important to update server_id, last_server_ping and error to NULL to stop current websocket listener
sqlx::query!(
Expand Down Expand Up @@ -720,6 +730,8 @@ impl WebsocketTrigger {
) -> error::Result<()> {
let initial_messages: Vec<InitialMessage> = self
.initial_messages
.as_deref()
.unwrap_or_default()
.iter()
.filter_map(|m| serde_json::from_str(m.get()).ok())
.collect_vec();
Expand Down

0 comments on commit 460d3d7

Please sign in to comment.