preserve json orders for apps and drafts

This commit is contained in:
Ruben Fiszel
2023-05-10 13:23:04 +02:00
parent 5b6a2c3c82
commit ae332c9e2d
3 changed files with 86 additions and 83 deletions
+76 -76
View File
@@ -85,7 +85,7 @@
{
"name": "value",
"ordinal": 6,
"type_info": "Jsonb"
"type_info": "Json"
},
{
"name": "created_at",
@@ -692,32 +692,6 @@
},
"query": "SELECT * FROM workspace_settings WHERE workspace_id = $1"
},
"17c2a1abcff52cfb39ae55cfafb6b5945bb87eebfdb2e030e7de3db938d0c6c9": {
"describe": {
"columns": [],
"nullable": [],
"parameters": {
"Left": [
"Varchar",
"Varchar",
"Jsonb",
{
"Custom": {
"kind": {
"Enum": [
"script",
"flow",
"app"
]
},
"name": "draft_type"
}
}
]
}
},
"query": "INSERT INTO draft\n (workspace_id, path, value, typ)\n VALUES ($1, $2, $3, $4)\n ON CONFLICT (workspace_id, path, typ) DO UPDATE SET value = $3"
},
"187a27d18f78f068319a0ec684f71a76c49dd09c5c74c2c777e35233c4f5a281": {
"describe": {
"columns": [
@@ -1229,6 +1203,28 @@
},
"query": "SELECT set_config('session.folders_read', $1, true)"
},
"2a3992b5e9abcfbb032d10e142d98efa969dae26a7242eb7ac12593ed5421ef3": {
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Int8"
}
],
"nullable": [
false
],
"parameters": {
"Left": [
"Int8",
"Text",
"Varchar"
]
}
},
"query": "INSERT INTO app_version\n (app_id, value, created_by)\n VALUES ($1, $2::text::json, $3) RETURNING id"
},
"2a3ebe1b0eae5b2164894321e138cc4dc0293788aeb98d05d95d18dfc708d6a6": {
"describe": {
"columns": [],
@@ -1386,6 +1382,32 @@
},
"query": "UPDATE folder SET owners = array_append(owners, $1) WHERE name = $2 AND workspace_id = $3 AND NOT $1 = ANY(owners) RETURNING name"
},
"366609f7e7fbd73ea807128b931eff2f1ab763fa630c8531f590fed2110c03d9": {
"describe": {
"columns": [],
"nullable": [],
"parameters": {
"Left": [
"Varchar",
"Varchar",
"Text",
{
"Custom": {
"kind": {
"Enum": [
"script",
"flow",
"app"
]
},
"name": "draft_type"
}
}
]
}
},
"query": "INSERT INTO draft\n (workspace_id, path, value, typ)\n VALUES ($1, $2, $3::text::json, $4)\n ON CONFLICT (workspace_id, path, typ) DO UPDATE SET value = $3::text::json"
},
"372b0a81d37b6874727c1aa4dc1bec17f9475a5f446e8987ab7359f55b96436e": {
"describe": {
"columns": [],
@@ -1729,7 +1751,7 @@
{
"name": "value",
"ordinal": 6,
"type_info": "Jsonb"
"type_info": "Json"
},
{
"name": "created_at",
@@ -3235,6 +3257,28 @@
},
"query": "UPDATE group_ SET summary = $1 WHERE name = $2 AND workspace_id = $3"
},
"83d18f4e1cda2c1867168551d855d5626e766b5469c6976c986bdafc8b9407c5": {
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Int8"
}
],
"nullable": [
false
],
"parameters": {
"Left": [
"Int8",
"Text",
"Varchar"
]
}
},
"query": "INSERT INTO app_version\n (app_id, value, created_by)\n VALUES ($1, $2::text::json, $3) RETURNING id"
},
"84bbd11f7bb0c65dcfb2e12038b8a9cb51d303480ac3c5f8a5e833a53c40ed9b": {
"describe": {
"columns": [],
@@ -4179,7 +4223,7 @@
{
"name": "value",
"ordinal": 6,
"type_info": "Jsonb"
"type_info": "Json"
},
{
"name": "created_at",
@@ -5560,7 +5604,7 @@
{
"name": "value",
"ordinal": 6,
"type_info": "Jsonb"
"type_info": "Json"
},
{
"name": "created_at",
@@ -5659,28 +5703,6 @@
},
"query": "SELECT name, (EXISTS (SELECT 1 FROM (SELECT key, value FROM jsonb_each_text(extra_perms) WHERE key = ANY($1)) t WHERE value::boolean IS true)) as write, $1 && owners::text[] as owner FROM folder\n WHERE extra_perms ?| $1 AND workspace_id = $2"
},
"d47bff7d6b54cd6da8bb330f7321c37af5dcbd76f9acad73b5ba1b8a4afb5091": {
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Int8"
}
],
"nullable": [
false
],
"parameters": {
"Left": [
"Int8",
"Jsonb",
"Varchar"
]
}
},
"query": "INSERT INTO app_version\n (app_id, value, created_by)\n VALUES ($1, $2, $3) RETURNING id"
},
"d4bf68b4c2bfd11db84787e41e92c13612fda7352e841f3cdef45ea762588f04": {
"describe": {
"columns": [],
@@ -5726,28 +5748,6 @@
},
"query": "DELETE FROM resource_type WHERE name = $1 AND workspace_id = $2"
},
"d68eaf1533bbe9052f6b1737e2f212c969a18c9d7840fe419c20995404ed0be8": {
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Int8"
}
],
"nullable": [
false
],
"parameters": {
"Left": [
"Int8",
"Jsonb",
"Varchar"
]
}
},
"query": "INSERT INTO app_version\n (app_id, value, created_by)\n VALUES ($1, $2, $3) RETURNING id"
},
"d697b7311430e7bd5375ec5494179f4071e3bfe123d9600249cfa80c1103edd8": {
"describe": {
"columns": [],
@@ -6500,7 +6500,7 @@
{
"name": "value",
"ordinal": 6,
"type_info": "Jsonb"
"type_info": "Json"
},
{
"name": "created_at",
@@ -6520,7 +6520,7 @@
{
"name": "draft?",
"ordinal": 10,
"type_info": "Jsonb"
"type_info": "Json"
}
],
"nullable": [
+6 -4
View File
@@ -424,9 +424,10 @@ async fn create_app(
let v_id = sqlx::query_scalar!(
"INSERT INTO app_version
(app_id, value, created_by)
VALUES ($1, $2, $3) RETURNING id",
VALUES ($1, $2::text::json, $3) RETURNING id",
id,
app.value,
//to preserve key orders
serde_json::to_string(&app.value).unwrap(),
authed.username,
)
.fetch_one(&mut tx)
@@ -610,9 +611,10 @@ async fn update_app(
let v_id = sqlx::query_scalar!(
"INSERT INTO app_version
(app_id, value, created_by)
VALUES ($1, $2, $3) RETURNING id",
VALUES ($1, $2::text::json, $3) RETURNING id",
app_id,
nvalue,
//to preserve key orders
serde_json::to_string(&nvalue).unwrap(),
authed.username,
)
.fetch_one(&mut tx)
+4 -3
View File
@@ -56,11 +56,12 @@ async fn create_draft(
sqlx::query!(
"INSERT INTO draft
(workspace_id, path, value, typ)
VALUES ($1, $2, $3, $4)
ON CONFLICT (workspace_id, path, typ) DO UPDATE SET value = $3",
VALUES ($1, $2, $3::text::json, $4)
ON CONFLICT (workspace_id, path, typ) DO UPDATE SET value = $3::text::json",
&w_id,
draft.path,
draft.value,
//to preserve key orders
serde_json::to_string(&draft.value).unwrap(),
draft.typ: DraftType,
)
.execute(&mut tx)