From 752c46ead7ee511c0773a06d8ccfd47b11f9f078 Mon Sep 17 00:00:00 2001 From: paulobressan Date: Mon, 22 Jul 2024 16:25:33 -0300 Subject: [PATCH 1/2] feat: implemented created_at/updated_at fields --- ...e61aa36c14b898867e837094cfd7d0c0ef2e1.json | 12 ++++ ...12eeea7fa1bf96f2c15290173bf4af66d198.json} | 6 +- ...edb6b9547d87ad29d3cfcdd0b8b103f4ccdab.json | 12 ++++ ...ffa107af65ba7e806c3b4dcd6db8004b48ef9.json | 12 ---- ...5d3dac8838e11e8f4604ec1850fe7829071fe.json | 12 ---- Cargo.lock | 58 +++++++++++++++++++ Cargo.toml | 3 +- src/domain/event.rs | 6 ++ src/domain/project.rs | 18 ++++++ src/domain/resource.rs | 11 ++++ .../cache/migrations/20240606_tables.sql | 8 ++- src/driven/cache/project.rs | 30 ++++++---- src/driven/cache/resource.rs | 8 ++- 13 files changed, 154 insertions(+), 42 deletions(-) create mode 100644 .sqlx/query-0c64288739469b438a5594c242ee61aa36c14b898867e837094cfd7d0c0ef2e1.json rename .sqlx/{query-c9ed235e092dc7baca9e957f8b1de0b2dad959cee369e6fedf462b0f66757bf2.json => query-2d0f7987d21ec4e30aed41b7c3f112eeea7fa1bf96f2c15290173bf4af66d198.json} (50%) create mode 100644 .sqlx/query-9ffaba23f9806e445bbb3d3a14eedb6b9547d87ad29d3cfcdd0b8b103f4ccdab.json delete mode 100644 .sqlx/query-f00e79c9e725e895a778bc5f398ffa107af65ba7e806c3b4dcd6db8004b48ef9.json delete mode 100644 .sqlx/query-fbff5cf6cff65a8c32b09aaecf75d3dac8838e11e8f4604ec1850fe7829071fe.json diff --git a/.sqlx/query-0c64288739469b438a5594c242ee61aa36c14b898867e837094cfd7d0c0ef2e1.json b/.sqlx/query-0c64288739469b438a5594c242ee61aa36c14b898867e837094cfd7d0c0ef2e1.json new file mode 100644 index 0000000..05b92b2 --- /dev/null +++ b/.sqlx/query-0c64288739469b438a5594c242ee61aa36c14b898867e837094cfd7d0c0ef2e1.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n INSERT INTO project_secret (id, project_id, name, phc, secret, created_at)\n VALUES ($1, $2, $3, $4, $5, $6)\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 6 + }, + "nullable": [] + }, + "hash": "0c64288739469b438a5594c242ee61aa36c14b898867e837094cfd7d0c0ef2e1" +} diff --git a/.sqlx/query-c9ed235e092dc7baca9e957f8b1de0b2dad959cee369e6fedf462b0f66757bf2.json b/.sqlx/query-2d0f7987d21ec4e30aed41b7c3f112eeea7fa1bf96f2c15290173bf4af66d198.json similarity index 50% rename from .sqlx/query-c9ed235e092dc7baca9e957f8b1de0b2dad959cee369e6fedf462b0f66757bf2.json rename to .sqlx/query-2d0f7987d21ec4e30aed41b7c3f112eeea7fa1bf96f2c15290173bf4af66d198.json index 10b2842..f0a8fb3 100644 --- a/.sqlx/query-c9ed235e092dc7baca9e957f8b1de0b2dad959cee369e6fedf462b0f66757bf2.json +++ b/.sqlx/query-2d0f7987d21ec4e30aed41b7c3f112eeea7fa1bf96f2c15290173bf4af66d198.json @@ -1,12 +1,12 @@ { "db_name": "SQLite", - "query": "\n INSERT INTO project_user (project_id, user_id)\n VALUES ($1, $2)\n ", + "query": "\n INSERT INTO project_user (project_id, user_id, created_at)\n VALUES ($1, $2, $3)\n ", "describe": { "columns": [], "parameters": { - "Right": 2 + "Right": 3 }, "nullable": [] }, - "hash": "c9ed235e092dc7baca9e957f8b1de0b2dad959cee369e6fedf462b0f66757bf2" + "hash": "2d0f7987d21ec4e30aed41b7c3f112eeea7fa1bf96f2c15290173bf4af66d198" } diff --git a/.sqlx/query-9ffaba23f9806e445bbb3d3a14eedb6b9547d87ad29d3cfcdd0b8b103f4ccdab.json b/.sqlx/query-9ffaba23f9806e445bbb3d3a14eedb6b9547d87ad29d3cfcdd0b8b103f4ccdab.json new file mode 100644 index 0000000..5aecc12 --- /dev/null +++ b/.sqlx/query-9ffaba23f9806e445bbb3d3a14eedb6b9547d87ad29d3cfcdd0b8b103f4ccdab.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n INSERT INTO project (id, namespace, name, owner, created_at, updated_at)\n VALUES ($1, $2, $3, $4, $5, $6)\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 6 + }, + "nullable": [] + }, + "hash": "9ffaba23f9806e445bbb3d3a14eedb6b9547d87ad29d3cfcdd0b8b103f4ccdab" +} diff --git a/.sqlx/query-f00e79c9e725e895a778bc5f398ffa107af65ba7e806c3b4dcd6db8004b48ef9.json b/.sqlx/query-f00e79c9e725e895a778bc5f398ffa107af65ba7e806c3b4dcd6db8004b48ef9.json deleted file mode 100644 index 592123f..0000000 --- a/.sqlx/query-f00e79c9e725e895a778bc5f398ffa107af65ba7e806c3b4dcd6db8004b48ef9.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n INSERT INTO project_secret (id, project_id, name, phc, secret)\n VALUES ($1, $2, $3, $4, $5)\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 5 - }, - "nullable": [] - }, - "hash": "f00e79c9e725e895a778bc5f398ffa107af65ba7e806c3b4dcd6db8004b48ef9" -} diff --git a/.sqlx/query-fbff5cf6cff65a8c32b09aaecf75d3dac8838e11e8f4604ec1850fe7829071fe.json b/.sqlx/query-fbff5cf6cff65a8c32b09aaecf75d3dac8838e11e8f4604ec1850fe7829071fe.json deleted file mode 100644 index 9dd4057..0000000 --- a/.sqlx/query-fbff5cf6cff65a8c32b09aaecf75d3dac8838e11e8f4604ec1850fe7829071fe.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n INSERT INTO project (id, namespace, name, owner)\n VALUES ($1, $2, $3, $4)\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 4 - }, - "nullable": [] - }, - "hash": "fbff5cf6cff65a8c32b09aaecf75d3dac8838e11e8f4604ec1850fe7829071fe" -} diff --git a/Cargo.lock b/Cargo.lock index 7eec6cc..479255e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -45,6 +45,21 @@ version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "anstyle" version = "1.0.7" @@ -282,8 +297,13 @@ version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", "num-traits", "serde", + "wasm-bindgen", + "windows-targets 0.52.6", ] [[package]] @@ -555,6 +575,7 @@ dependencies = [ "argon2", "async-trait", "bech32", + "chrono", "config", "dmtri", "dotenv", @@ -1123,6 +1144,29 @@ dependencies = [ "tracing", ] +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + [[package]] name = "idna" version = "0.5.0" @@ -2785,6 +2829,7 @@ dependencies = [ "atoi", "byteorder", "bytes", + "chrono", "crc", "crossbeam-queue", "either", @@ -2848,6 +2893,7 @@ dependencies = [ "sha2", "sqlx-core", "sqlx-mysql", + "sqlx-postgres", "sqlx-sqlite", "syn 1.0.109", "tempfile", @@ -2866,6 +2912,7 @@ dependencies = [ "bitflags 2.6.0", "byteorder", "bytes", + "chrono", "crc", "digest", "dotenvy", @@ -2907,6 +2954,7 @@ dependencies = [ "base64 0.21.7", "bitflags 2.6.0", "byteorder", + "chrono", "crc", "dotenvy", "etcetera", @@ -2942,6 +2990,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa" dependencies = [ "atoi", + "chrono", "flume", "futures-channel", "futures-core", @@ -3684,6 +3733,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.48.0" diff --git a/Cargo.toml b/Cargo.toml index 2731e80..397f40c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ dmtri = { version = "0.1.0", git = "https://github.com/demeter-run/specs.git" } anyhow = "1.0.86" async-trait = "0.1.80" -sqlx = { version = "0.7.4", features = ["runtime-tokio-rustls", "sqlite"] } +sqlx = { version = "0.7.4", features = ["runtime-tokio-rustls", "sqlite", "chrono"] } tokio = { version = "1.38.0", features = ["macros", "rt-multi-thread", "time"] } tonic = "0.11.0" serde = { version = "1.0.203", features = ["derive"] } @@ -33,6 +33,7 @@ bech32 = "0.11.0" argon2 = "0.5.3" tower = "0.4.13" hyper = "1.4.1" +chrono = "0.4.38" [dev-dependencies] mockall = "0.12.1" diff --git a/src/domain/event.rs b/src/domain/event.rs index e41ab44..7c16c19 100644 --- a/src/domain/event.rs +++ b/src/domain/event.rs @@ -1,4 +1,5 @@ use anyhow::{bail, Result}; +use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; macro_rules! into_event { @@ -17,6 +18,8 @@ pub struct ProjectCreated { pub name: String, pub namespace: String, pub owner: String, + pub created_at: DateTime, + pub updated_at: DateTime, } into_event!(ProjectCreated); @@ -27,6 +30,8 @@ pub struct ResourceCreated { pub project_namespace: String, pub kind: String, pub data: String, + pub created_at: DateTime, + pub updated_at: DateTime, } into_event!(ResourceCreated); @@ -37,6 +42,7 @@ pub struct ProjectSecretCreated { pub name: String, pub phc: String, pub secret: Vec, + pub created_at: DateTime, } into_event!(ProjectSecretCreated); diff --git a/src/domain/project.rs b/src/domain/project.rs index 31a5e3e..bc833a1 100644 --- a/src/domain/project.rs +++ b/src/domain/project.rs @@ -1,6 +1,7 @@ use anyhow::{bail, Error, Result}; use argon2::{password_hash::SaltString, Argon2, PasswordHash, PasswordHasher, PasswordVerifier}; use bech32::{Bech32m, Hrp}; +use chrono::{DateTime, Utc}; use k8s_openapi::api::core::v1::Namespace; use kube::{api::ObjectMeta, ResourceExt}; use rand::{ @@ -34,6 +35,8 @@ pub async fn create( namespace: cmd.namespace.clone(), name: cmd.name, owner: user_id, + created_at: Utc::now(), + updated_at: Utc::now(), }; event.dispatch(evt.into()).await?; @@ -113,6 +116,7 @@ pub async fn create_secret( name: cmd.name, phc: password_hash.to_string(), secret: secret.to_vec(), + created_at: Utc::now(), }; event.dispatch(evt.into()).await?; @@ -211,6 +215,8 @@ pub struct ProjectCache { pub name: String, pub namespace: String, pub owner: String, + pub created_at: DateTime, + pub updated_at: DateTime, } impl From for ProjectCache { fn from(value: ProjectCreated) -> Self { @@ -219,6 +225,8 @@ impl From for ProjectCache { namespace: value.namespace, name: value.name, owner: value.owner, + created_at: value.created_at, + updated_at: value.updated_at, } } } @@ -252,6 +260,7 @@ pub struct ProjectSecretCache { pub name: String, pub phc: String, pub secret: Vec, + pub created_at: DateTime, } impl From for ProjectSecretCache { fn from(value: ProjectSecretCreated) -> Self { @@ -261,6 +270,7 @@ impl From for ProjectSecretCache { name: value.name, phc: value.phc, secret: value.secret, + created_at: value.created_at, } } } @@ -269,6 +279,7 @@ impl From for ProjectSecretCache { pub struct ProjectUserCache { pub user_id: String, pub project_id: String, + pub created_at: DateTime, } #[async_trait::async_trait] @@ -350,6 +361,8 @@ mod tests { name: "New Project".into(), namespace: "sonic-vegas".into(), owner: "user id".into(), + created_at: Utc::now(), + updated_at: Utc::now(), } } } @@ -360,6 +373,8 @@ mod tests { name: "New Project".into(), namespace: "sonic-vegas".into(), owner: "user id".into(), + created_at: Utc::now(), + updated_at: Utc::now(), } } } @@ -389,6 +404,7 @@ mod tests { name: "Key 1".into(), phc: PHC.into(), secret: SECRET.to_bytes().to_vec(), + created_at: Utc::now(), } } } @@ -400,6 +416,7 @@ mod tests { name: "Key 1".into(), phc: PHC.into(), secret: SECRET.to_bytes().to_vec(), + created_at: Utc::now(), } } } @@ -409,6 +426,7 @@ mod tests { Self { user_id: Uuid::new_v4().to_string(), project_id: Uuid::new_v4().to_string(), + created_at: Utc::now(), } } } diff --git a/src/domain/resource.rs b/src/domain/resource.rs index 4b7479d..e06a2ad 100644 --- a/src/domain/resource.rs +++ b/src/domain/resource.rs @@ -1,4 +1,5 @@ use anyhow::{bail, ensure, Result}; +use chrono::{DateTime, Utc}; use kube::{ api::{ApiResource, DynamicObject, ObjectMeta}, ResourceExt, @@ -30,6 +31,8 @@ pub async fn create( project_namespace: project.namespace, kind: cmd.kind.clone(), data: cmd.data, + created_at: Utc::now(), + updated_at: Utc::now(), }; event.dispatch(evt.into()).await?; @@ -121,6 +124,8 @@ pub struct ResourceCache { pub project_id: String, pub kind: String, pub data: String, + pub created_at: DateTime, + pub updated_at: DateTime, } impl From for ResourceCache { fn from(value: ResourceCreated) -> Self { @@ -129,6 +134,8 @@ impl From for ResourceCache { project_id: value.project_id, kind: value.kind, data: value.data, + created_at: value.created_at, + updated_at: value.updated_at, } } } @@ -213,6 +220,8 @@ mod tests { project_namespace: "prj-test".into(), kind: "CardanoNode".into(), data: "{\"spec\":{\"operatorVersion\":\"1\",\"kupoVersion\":\"v1\",\"network\":\"mainnet\",\"pruneUtxo\":false,\"throughputTier\":\"0\"}}".into(), + created_at: Utc::now(), + updated_at: Utc::now(), } } } @@ -223,6 +232,8 @@ mod tests { project_id: Uuid::new_v4().to_string(), kind: "CardanoNode".into(), data: "{\"spec\":{\"operatorVersion\":\"1\",\"kupoVersion\":\"v1\",\"network\":\"mainnet\",\"pruneUtxo\":false,\"throughputTier\":\"0\"}}".into(), + created_at: Utc::now(), + updated_at: Utc::now(), } } } diff --git a/src/driven/cache/migrations/20240606_tables.sql b/src/driven/cache/migrations/20240606_tables.sql index b98d4b0..528bf1f 100644 --- a/src/driven/cache/migrations/20240606_tables.sql +++ b/src/driven/cache/migrations/20240606_tables.sql @@ -2,7 +2,9 @@ CREATE TABLE IF NOT EXISTS project ( id TEXT PRIMARY KEY NOT NULL, namespace TEXT NOT NULL UNIQUE, name TEXT NOT NULL, - owner TEXT NOT NULL + owner TEXT NOT NULL, + created_at DATETIME NOT NULL, + updated_at DATETIME NOT NULL ); CREATE TABLE IF NOT EXISTS resource ( @@ -10,12 +12,15 @@ CREATE TABLE IF NOT EXISTS resource ( project_id TEXT NOT NULL, kind TEXT NOT NULL, data TEXT NOT NULL, + created_at DATETIME NOT NULL, + updated_at DATETIME NOT NULL, FOREIGN KEY(project_id) REFERENCES project(id) ); CREATE TABLE IF NOT EXISTS project_user ( user_id TEXT NOT NULL, project_id TEXT NOT NULL, + created_at DATETIME NOT NULL, PRIMARY KEY (user_id, project_id), FOREIGN KEY(project_id) REFERENCES project(id) ); @@ -26,5 +31,6 @@ CREATE TABLE IF NOT EXISTS project_secret ( name TEXT NOT NULL, phc TEXT NOT NULL, secret BLOB NOT NULL, + created_at DATETIME NOT NULL, FOREIGN KEY(project_id) REFERENCES project(id) ); diff --git a/src/driven/cache/project.rs b/src/driven/cache/project.rs index 86d5667..69fad36 100644 --- a/src/driven/cache/project.rs +++ b/src/driven/cache/project.rs @@ -21,7 +21,7 @@ impl ProjectDrivenCache for SqliteProjectDrivenCache { async fn find_by_namespace(&self, namespace: &str) -> Result> { let project = sqlx::query_as::<_, ProjectCache>( r#" - SELECT id, namespace, name, owner + SELECT id, namespace, name, owner, created_at, updated_at FROM project WHERE namespace = $1; "#, ) @@ -34,7 +34,7 @@ impl ProjectDrivenCache for SqliteProjectDrivenCache { async fn find_by_id(&self, id: &str) -> Result> { let project = sqlx::query_as::<_, ProjectCache>( r#" - SELECT id, namespace, name, owner + SELECT id, namespace, name, owner, created_at, updated_at FROM project WHERE id = $1; "#, ) @@ -50,24 +50,27 @@ impl ProjectDrivenCache for SqliteProjectDrivenCache { sqlx::query!( r#" - INSERT INTO project (id, namespace, name, owner) - VALUES ($1, $2, $3, $4) + INSERT INTO project (id, namespace, name, owner, created_at, updated_at) + VALUES ($1, $2, $3, $4, $5, $6) "#, project.id, project.namespace, project.name, project.owner, + project.created_at, + project.updated_at ) .execute(&mut *tx) .await?; sqlx::query!( r#" - INSERT INTO project_user (project_id, user_id) - VALUES ($1, $2) + INSERT INTO project_user (project_id, user_id, created_at) + VALUES ($1, $2, $3) "#, project.id, project.owner, + project.created_at ) .execute(&mut *tx) .await?; @@ -79,14 +82,15 @@ impl ProjectDrivenCache for SqliteProjectDrivenCache { async fn create_secret(&self, secret: &ProjectSecretCache) -> Result<()> { sqlx::query!( r#" - INSERT INTO project_secret (id, project_id, name, phc, secret) - VALUES ($1, $2, $3, $4, $5) + INSERT INTO project_secret (id, project_id, name, phc, secret, created_at) + VALUES ($1, $2, $3, $4, $5, $6) "#, secret.id, secret.project_id, secret.name, secret.phc, - secret.secret + secret.secret, + secret.created_at ) .execute(&self.sqlite.db) .await?; @@ -96,7 +100,7 @@ impl ProjectDrivenCache for SqliteProjectDrivenCache { async fn find_secret_by_project_id(&self, project_id: &str) -> Result> { let secrets = sqlx::query_as::<_, ProjectSecretCache>( r#" - SELECT id, project_id, name, phc, secret + SELECT id, project_id, name, phc, secret, created_at FROM project_secret WHERE project_id = $1; "#, ) @@ -113,7 +117,7 @@ impl ProjectDrivenCache for SqliteProjectDrivenCache { ) -> Result> { let project_user = sqlx::query_as::<_, ProjectUserCache>( r#" - SELECT user_id, project_id + SELECT user_id, project_id, created_at FROM project_user WHERE user_id = $1 and project_id = $2; "#, ) @@ -133,6 +137,8 @@ impl FromRow<'_, SqliteRow> for ProjectCache { name: row.try_get("name")?, namespace: row.try_get("namespace")?, owner: row.try_get("owner")?, + created_at: row.try_get("created_at")?, + updated_at: row.try_get("updated_at")?, }) } } @@ -145,6 +151,7 @@ impl FromRow<'_, SqliteRow> for ProjectSecretCache { name: row.try_get("name")?, phc: row.try_get("phc")?, secret: row.try_get("secret")?, + created_at: row.try_get("created_at")?, }) } } @@ -154,6 +161,7 @@ impl FromRow<'_, SqliteRow> for ProjectUserCache { Ok(Self { user_id: row.try_get("user_id")?, project_id: row.try_get("project_id")?, + created_at: row.try_get("created_at")?, }) } } diff --git a/src/driven/cache/resource.rs b/src/driven/cache/resource.rs index eec407d..fe9e681 100644 --- a/src/driven/cache/resource.rs +++ b/src/driven/cache/resource.rs @@ -19,13 +19,15 @@ impl ResourceDrivenCache for SqliteResourceDrivenCache { async fn create(&self, resource: &ResourceCache) -> Result<()> { sqlx::query!( r#" - INSERT INTO resource (id, project_id, kind, data) - VALUES ($1, $2, $3, $4) + INSERT INTO resource (id, project_id, kind, data, created_at, updated_at) + VALUES ($1, $2, $3, $4, $5, $6) "#, resource.id, resource.project_id, resource.kind, resource.data, + resource.created_at, + resource.updated_at ) .execute(&self.sqlite.db) .await?; @@ -41,6 +43,8 @@ impl FromRow<'_, SqliteRow> for ResourceCache { project_id: row.try_get("project_id")?, kind: row.try_get("kind")?, data: row.try_get("data")?, + created_at: row.try_get("created_at")?, + updated_at: row.try_get("updated_at")?, }) } } From 63c4f16450cfde9758dfcb36857434661f49488d Mon Sep 17 00:00:00 2001 From: paulobressan Date: Mon, 22 Jul 2024 16:30:48 -0300 Subject: [PATCH 2/2] fix: updated sqlx files --- ...ae0adc60d8aeb3e903e1948c8dc1b434b1476774fc6c.json | 12 ++++++++++++ ...a80a62ba38dde98acff657723c7eb71aa7dbb57eb6de.json | 12 ------------ 2 files changed, 12 insertions(+), 12 deletions(-) create mode 100644 .sqlx/query-4ce4f36e4b7fe7327efcae0adc60d8aeb3e903e1948c8dc1b434b1476774fc6c.json delete mode 100644 .sqlx/query-6e891e9977ee0cad549fa80a62ba38dde98acff657723c7eb71aa7dbb57eb6de.json diff --git a/.sqlx/query-4ce4f36e4b7fe7327efcae0adc60d8aeb3e903e1948c8dc1b434b1476774fc6c.json b/.sqlx/query-4ce4f36e4b7fe7327efcae0adc60d8aeb3e903e1948c8dc1b434b1476774fc6c.json new file mode 100644 index 0000000..35747bb --- /dev/null +++ b/.sqlx/query-4ce4f36e4b7fe7327efcae0adc60d8aeb3e903e1948c8dc1b434b1476774fc6c.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n INSERT INTO resource (id, project_id, kind, data, created_at, updated_at)\n VALUES ($1, $2, $3, $4, $5, $6)\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 6 + }, + "nullable": [] + }, + "hash": "4ce4f36e4b7fe7327efcae0adc60d8aeb3e903e1948c8dc1b434b1476774fc6c" +} diff --git a/.sqlx/query-6e891e9977ee0cad549fa80a62ba38dde98acff657723c7eb71aa7dbb57eb6de.json b/.sqlx/query-6e891e9977ee0cad549fa80a62ba38dde98acff657723c7eb71aa7dbb57eb6de.json deleted file mode 100644 index 274c6d7..0000000 --- a/.sqlx/query-6e891e9977ee0cad549fa80a62ba38dde98acff657723c7eb71aa7dbb57eb6de.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n INSERT INTO resource (id, project_id, kind, data)\n VALUES ($1, $2, $3, $4)\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 4 - }, - "nullable": [] - }, - "hash": "6e891e9977ee0cad549fa80a62ba38dde98acff657723c7eb71aa7dbb57eb6de" -}