initial commit
[squeep-indie-auther] / src / db / postgres / sql / refresh-code.sql
diff --git a/src/db/postgres/sql/refresh-code.sql b/src/db/postgres/sql/refresh-code.sql
new file mode 100644 (file)
index 0000000..339e488
--- /dev/null
@@ -0,0 +1,19 @@
+--
+UPDATE token SET
+       expires = $(refreshed)::timestamptz + duration,
+       refreshed = $(refreshed)::timestamptz,
+       refresh_expires = $(refreshed)::timestamptz + refresh_duration,
+       refresh_count = refresh_count + 1
+WHERE
+       code_id = $(codeId)
+AND
+       NOT is_revoked
+AND
+       (refresh_expires IS NOT NULL AND refresh_expires > $(refreshed)::timestamptz)
+RETURNING
+       expires,
+       refresh_expires,
+       ARRAY(
+               SELECT s.scope FROM token_scope ts INNER JOIN scope s USING (scope_id)
+               WHERE ts.code_id = code_id
+       ) AS scopes