feat: Add other tasks from chapter 6

This commit is contained in:
2024-10-25 23:31:57 +02:00
parent e72fd2ee86
commit 61beecd4a0
18 changed files with 361 additions and 23 deletions

View File

@ -0,0 +1,11 @@
-- name: CreateRefreshToken :one
INSERT INTO refresh_tokens (token, created_at, updated_at, user_id, expires_at, revoked_at)
VALUES (
$1,
NOW(),
NOW(),
$2,
$3,
NULL
)
RETURNING *;

View File

@ -0,0 +1,6 @@
-- name: RevokeRefreshToken :exec
UPDATE refresh_tokens
SET
revoked_at = NOW(),
updated_at = NOW()
WHERE token = $1;

View File

@ -0,0 +1,5 @@
-- name: GetUserFromRefreshToken :one
SELECT user_id FROM refresh_tokens
WHERE refresh_tokens.token = $1
AND refresh_tokens.expires_at > NOW()
AND refresh_tokens.revoked_at IS NULL;

View File

@ -1,10 +1,11 @@
-- name: CreateUser :one
INSERT INTO users (id, created_at, updated_at, email)
INSERT INTO users (id, created_at, updated_at, email, hashed_password)
VALUES (
gen_random_uuid(),
NOW(),
NOW(),
$1
$1,
$2
)
RETURNING *;

View File

@ -0,0 +1,12 @@
-- +goose Up
CREATE TABLE refresh_tokens (
token TEXT PRIMARY KEY,
created_at TIMESTAMP NOT NULL,
updated_at TIMESTAMP NOT NULL,
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
expires_at TIMESTAMP,
revoked_at TIMESTAMP
);
-- +goose Down
DROP TABLE refresh_tokens;