feat: Add other tasks from chapter 6
This commit is contained in:
11
sql/queries/refresh_token.sql
Normal file
11
sql/queries/refresh_token.sql
Normal 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 *;
|
6
sql/queries/update_token.sql
Normal file
6
sql/queries/update_token.sql
Normal file
@ -0,0 +1,6 @@
|
||||
-- name: RevokeRefreshToken :exec
|
||||
UPDATE refresh_tokens
|
||||
SET
|
||||
revoked_at = NOW(),
|
||||
updated_at = NOW()
|
||||
WHERE token = $1;
|
5
sql/queries/user_from_token.sql
Normal file
5
sql/queries/user_from_token.sql
Normal 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;
|
@ -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 *;
|
||||
|
||||
|
12
sql/schema/004_refresh_token.sql
Normal file
12
sql/schema/004_refresh_token.sql
Normal 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;
|
Reference in New Issue
Block a user