aboutsummaryrefslogtreecommitdiff
path: root/crates/secd/store/pg/sql/write_oauth_validation.sql
diff options
context:
space:
mode:
authorbenj <benj@rse8.com>2022-12-12 17:06:57 -0800
committerbenj <benj@rse8.com>2022-12-12 17:06:57 -0800
commit0920c4d4f30a3345870d385d5c6f3e0919228b56 (patch)
treef54668d91db469b7304758893a51b590c8f9b0de /crates/secd/store/pg/sql/write_oauth_validation.sql
parent3a4de13528fc85dcbe6bc9055d97ba5cc87f5712 (diff)
downloadsecdiam-0920c4d4f30a3345870d385d5c6f3e0919228b56.tar
secdiam-0920c4d4f30a3345870d385d5c6f3e0919228b56.tar.gz
secdiam-0920c4d4f30a3345870d385d5c6f3e0919228b56.tar.bz2
secdiam-0920c4d4f30a3345870d385d5c6f3e0919228b56.tar.lz
secdiam-0920c4d4f30a3345870d385d5c6f3e0919228b56.tar.xz
secdiam-0920c4d4f30a3345870d385d5c6f3e0919228b56.tar.zst
secdiam-0920c4d4f30a3345870d385d5c6f3e0919228b56.zip
(oauth2 + email added): a mess that may or may not really work and needs to be refactored...
Diffstat (limited to 'crates/secd/store/pg/sql/write_oauth_validation.sql')
-rw-r--r--crates/secd/store/pg/sql/write_oauth_validation.sql45
1 files changed, 45 insertions, 0 deletions
diff --git a/crates/secd/store/pg/sql/write_oauth_validation.sql b/crates/secd/store/pg/sql/write_oauth_validation.sql
new file mode 100644
index 0000000..11f2578
--- /dev/null
+++ b/crates/secd/store/pg/sql/write_oauth_validation.sql
@@ -0,0 +1,45 @@
+insert into secd.oauth_validation (
+ oauth_validation_public_id
+ , oauth_provider_id
+ , access_token
+ , raw_response
+ , created_at
+ , validated_at
+) values (
+ $1
+ , (
+ select oauth_provider_id
+ from secd.oauth_provider
+ where name = $2
+ and flow = $3
+ )
+ , $4
+ , $5
+ , $6
+ , $7
+) on conflict (oauth_validation_public_id) do update
+ set access_token = excluded.access_token
+ , validated_at = excluded.validated_at
+ , raw_response = excluded.raw_response;
+--
+insert into secd.identity_oauth_validation (
+ identity_id
+ , oauth_validation_id
+ , revoked_at
+ , deleted_at
+) values (
+ (
+ select identity_id
+ from secd.identity
+ where identity_public_id = $1
+ )
+ , (
+ select oauth_validation_id
+ from secd.oauth_validation
+ where oauth_validation_public_id = $2
+ )
+ , $3
+ , $4
+) on conflict (identity_id, oauth_validation_id) do update
+ set revoked_at = excluded.revoked_at
+ , deleted_at = excluded.deleted_at;