aboutsummaryrefslogtreecommitdiff
path: root/crates/secd/store/sqlite/sql
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--crates/secd/store/sqlite/sql/find_credential.sql12
-rw-r--r--crates/secd/store/sqlite/sql/write_credential.sql19
2 files changed, 31 insertions, 0 deletions
diff --git a/crates/secd/store/sqlite/sql/find_credential.sql b/crates/secd/store/sqlite/sql/find_credential.sql
new file mode 100644
index 0000000..9062914
--- /dev/null
+++ b/crates/secd/store/sqlite/sql/find_credential.sql
@@ -0,0 +1,12 @@
+select c.credential_public_id
+ , i.identity_public_id
+ , c.data
+ , c.created_at
+ , c.revoked_at
+ , c.deleted_at
+from credential c
+join identity i using (identity_id)
+where (($1 is null) or (c.credential_public_id = $1))
+and (($2 is null) or (i.identity_public_id = $2))
+and (($3 is null) or (c.type = $3))
+and (($3 is null or $4 is null) or (c.data->$3->>'key' = $4))
diff --git a/crates/secd/store/sqlite/sql/write_credential.sql b/crates/secd/store/sqlite/sql/write_credential.sql
new file mode 100644
index 0000000..3319226
--- /dev/null
+++ b/crates/secd/store/sqlite/sql/write_credential.sql
@@ -0,0 +1,19 @@
+insert into credential (
+ credential_public_id
+ , identity_id
+ , partial_key
+ , type
+ , data
+ , created_at
+ , revoked_at
+ , deleted_at
+) values (
+ $1
+ , (select identity_id from identity where identity_public_id = $2)
+ , $3
+ , $4
+ , $5
+ , $6
+ , $7
+ , $8
+);