From a970de336574e046e63763d93f9a70d5b1e8464b Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Fri, 9 Jun 2023 15:52:34 +0300 Subject: feat(corp/rih): add UUIDs to records from frontend This UUID stays the same even if a user submits the form multiple times (unless they edit it manually in local storage, of course). Change-Id: I4190fbfeb1027ce8a8d87bc283099539e8722b39 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8733 Reviewed-by: tazjin Tested-by: BuildkiteCI --- corp/ops/yandex/rih.tf | 2 +- corp/rih/frontend/Cargo.lock | 11 +++++++++++ corp/rih/frontend/Cargo.toml | 1 + corp/rih/frontend/src/main.rs | 10 +++++++++- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/corp/ops/yandex/rih.tf b/corp/ops/yandex/rih.tf index 3e1ac5b091..b9a6889c9b 100644 --- a/corp/ops/yandex/rih.tf +++ b/corp/ops/yandex/rih.tf @@ -94,7 +94,7 @@ resource "yandex_serverless_container" "rih_backend" { service_account_id = yandex_iam_service_account.rih_backend.id image { - url = "cr.yandex/crpkcq65tn6bhq6puq2o/rih-backend:a4sdm3gn9l41xv3lyr5642mpd9m0fdhg" + url = "cr.yandex/crpkcq65tn6bhq6puq2o/rih-backend:9cwnx8jvwjw2ckpqg970p4y7cf74z28j" } secrets { diff --git a/corp/rih/frontend/Cargo.lock b/corp/rih/frontend/Cargo.lock index b9d5c9c330..9be2ab384b 100644 --- a/corp/rih/frontend/Cargo.lock +++ b/corp/rih/frontend/Cargo.lock @@ -1092,6 +1092,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "static_markdown", + "uuid", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -1465,6 +1466,16 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +[[package]] +name = "uuid" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345444e32442451b267fc254ae85a209c64be56d2890e601a0c37ff0c3c5ecd2" +dependencies = [ + "getrandom", + "serde", +] + [[package]] name = "version_check" version = "0.9.4" diff --git a/corp/rih/frontend/Cargo.toml b/corp/rih/frontend/Cargo.toml index 1ef53bb5d3..2f58274566 100644 --- a/corp/rih/frontend/Cargo.toml +++ b/corp/rih/frontend/Cargo.toml @@ -20,6 +20,7 @@ wasm-bindgen-futures = "0.4" # needs to be in sync with nixpkgs wasm-bindgen = "= 0.2.84" +uuid = { version = "1.3.3", features = ["v4", "serde"] } [dependencies.serde] version = "*" # pinned by yew diff --git a/corp/rih/frontend/src/main.rs b/corp/rih/frontend/src/main.rs index 9b7e38422a..efccaaece2 100644 --- a/corp/rih/frontend/src/main.rs +++ b/corp/rih/frontend/src/main.rs @@ -10,6 +10,7 @@ use rand::thread_rng; use serde::{Deserialize, Serialize}; use static_markdown::markdown; use std::collections::BTreeSet; +use uuid::Uuid; use wasm_bindgen::closure::Closure; use wasm_bindgen::{JsCast, JsValue}; use web_sys::{HtmlInputElement, HtmlTextAreaElement, KeyboardEvent}; @@ -94,6 +95,9 @@ enum Route { /// primary data structure we want to populate and persist somewhere. #[derive(Clone, Default, Debug, Deserialize, Serialize)] struct Record { + // Record-specific metadata + uuid: Uuid, + // Personal information name: String, email: String, @@ -362,7 +366,11 @@ impl Component for App { fn create(ctx: &Context) -> Self { App { - record: LocalStorage::get("record").unwrap_or_default(), + record: LocalStorage::get("record").unwrap_or_else(|_| { + let mut new_record = Record::default(); + new_record.uuid = Uuid::new_v4(); + new_record + }), citizenship_focus: false, citizenship_query: String::default(), history: BrowserHistory::default(), -- cgit 1.4.1