(
&self,
guild_id: Id<GuildMarker>,
script: UpdateScript,
)
| 293 | } |
| 294 | |
| 295 | pub async fn update_script( |
| 296 | &self, |
| 297 | guild_id: Id<GuildMarker>, |
| 298 | script: UpdateScript, |
| 299 | ) -> ConfigStoreResult<Script> { |
| 300 | let settings_values = script |
| 301 | .settings_values |
| 302 | .map(|v| serde_json::to_value(v).unwrap()); |
| 303 | |
| 304 | let res = sqlx::query_as!( |
| 305 | DbScript, |
| 306 | " |
| 307 | UPDATE guild_scripts SET |
| 308 | original_source = COALESCE($3, guild_scripts.original_source), |
| 309 | enabled = COALESCE($4, guild_scripts.enabled), |
| 310 | plugin_version_number = COALESCE($5, guild_scripts.plugin_version_number), |
| 311 | settings_values = COALESCE($6, guild_scripts.settings_values) |
| 312 | WHERE guild_id = $1 AND id=$2 |
| 313 | RETURNING id, name, original_source, guild_id, enabled, plugin_id, \ |
| 314 | plugin_auto_update, plugin_version_number, settings_values; |
| 315 | ", |
| 316 | guild_id.get() as i64, |
| 317 | script.id as i64, |
| 318 | script.original_source, |
| 319 | script.enabled, |
| 320 | script.plugin_version_number.map(|v| v as i32), |
| 321 | settings_values, |
| 322 | ) |
| 323 | .fetch_one(&self.pool) |
| 324 | .await?; |
| 325 | |
| 326 | let mut converted: Script = res.into(); |
| 327 | Self::attach_script_derived( |
| 328 | &mut *self.pool.acquire().await?, |
| 329 | guild_id, |
| 330 | std::slice::from_mut(&mut converted), |
| 331 | ) |
| 332 | .await?; |
| 333 | |
| 334 | Ok(converted) |
| 335 | } |
| 336 | |
| 337 | /// Upserts the derived state observed for a script during a vm boot. |
| 338 | pub async fn upsert_script_derived( |
no outgoing calls
no test coverage detected