mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-11-21 05:53:11 -05:00
Hard code keibi postgres schema
This commit is contained in:
parent
4dc34641ec
commit
5827cc32e8
@ -43,8 +43,3 @@ PGPORT=5432
|
|||||||
# PGSSLROOTCERT=/my/serving.crt
|
# PGSSLROOTCERT=/my/serving.crt
|
||||||
# PGSSLCERT=/my/client.crt
|
# PGSSLCERT=/my/client.crt
|
||||||
# PGSSLKEY=/my/client.key
|
# PGSSLKEY=/my/client.key
|
||||||
|
|
||||||
# Default is keibi, you can specify "disabled" to use the default search_path of the user.
|
|
||||||
# If this is not "disabled", the schema will be created (if it does not exists) and
|
|
||||||
# the search_path of the user will be ignored (only the schema specified will be used).
|
|
||||||
POSTGRES_SCHEMA=keibi
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
// Code generated by sqlc. DO NOT EDIT.
|
// Code generated by sqlc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// sqlc v1.28.0
|
// sqlc v1.30.0
|
||||||
// source: apikeys.sql
|
// source: apikeys.sql
|
||||||
|
|
||||||
package dbc
|
package dbc
|
||||||
@ -13,7 +13,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const createApiKey = `-- name: CreateApiKey :one
|
const createApiKey = `-- name: CreateApiKey :one
|
||||||
insert into apikeys(name, token, claims, created_by)
|
insert into keibi.apikeys(name, token, claims, created_by)
|
||||||
values ($1, $2, $3, $4)
|
values ($1, $2, $3, $4)
|
||||||
returning
|
returning
|
||||||
pk, id, name, token, claims, created_by, created_at, last_used
|
pk, id, name, token, claims, created_by, created_at, last_used
|
||||||
@ -48,7 +48,7 @@ func (q *Queries) CreateApiKey(ctx context.Context, arg CreateApiKeyParams) (Api
|
|||||||
}
|
}
|
||||||
|
|
||||||
const deleteApiKey = `-- name: DeleteApiKey :one
|
const deleteApiKey = `-- name: DeleteApiKey :one
|
||||||
delete from apikeys
|
delete from keibi.apikeys
|
||||||
where id = $1
|
where id = $1
|
||||||
returning
|
returning
|
||||||
pk, id, name, token, claims, created_by, created_at, last_used
|
pk, id, name, token, claims, created_by, created_at, last_used
|
||||||
@ -74,7 +74,7 @@ const getApiKey = `-- name: GetApiKey :one
|
|||||||
select
|
select
|
||||||
pk, id, name, token, claims, created_by, created_at, last_used
|
pk, id, name, token, claims, created_by, created_at, last_used
|
||||||
from
|
from
|
||||||
apikeys
|
keibi.apikeys
|
||||||
where
|
where
|
||||||
name = $1
|
name = $1
|
||||||
and token = $2
|
and token = $2
|
||||||
@ -105,7 +105,7 @@ const listApiKeys = `-- name: ListApiKeys :many
|
|||||||
select
|
select
|
||||||
pk, id, name, token, claims, created_by, created_at, last_used
|
pk, id, name, token, claims, created_by, created_at, last_used
|
||||||
from
|
from
|
||||||
apikeys
|
keibi.apikeys
|
||||||
order by
|
order by
|
||||||
last_used
|
last_used
|
||||||
`
|
`
|
||||||
@ -141,7 +141,7 @@ func (q *Queries) ListApiKeys(ctx context.Context) ([]Apikey, error) {
|
|||||||
|
|
||||||
const touchApiKey = `-- name: TouchApiKey :exec
|
const touchApiKey = `-- name: TouchApiKey :exec
|
||||||
update
|
update
|
||||||
apikeys
|
keibi.apikeys
|
||||||
set
|
set
|
||||||
last_used = now()::timestamptz
|
last_used = now()::timestamptz
|
||||||
where
|
where
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
// Code generated by sqlc. DO NOT EDIT.
|
// Code generated by sqlc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// sqlc v1.28.0
|
// sqlc v1.30.0
|
||||||
|
|
||||||
package dbc
|
package dbc
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
// Code generated by sqlc. DO NOT EDIT.
|
// Code generated by sqlc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// sqlc v1.28.0
|
// sqlc v1.30.0
|
||||||
|
|
||||||
package dbc
|
package dbc
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
// Code generated by sqlc. DO NOT EDIT.
|
// Code generated by sqlc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// sqlc v1.28.0
|
// sqlc v1.30.0
|
||||||
// source: sessions.sql
|
// source: sessions.sql
|
||||||
|
|
||||||
package dbc
|
package dbc
|
||||||
@ -13,7 +13,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const clearOtherSessions = `-- name: ClearOtherSessions :exec
|
const clearOtherSessions = `-- name: ClearOtherSessions :exec
|
||||||
delete from sessions as s using users as u
|
delete from keibi.sessions as s using keibi.users as u
|
||||||
where s.user_pk = u.pk
|
where s.user_pk = u.pk
|
||||||
and s.id != $1
|
and s.id != $1
|
||||||
and u.id = $2
|
and u.id = $2
|
||||||
@ -30,7 +30,7 @@ func (q *Queries) ClearOtherSessions(ctx context.Context, arg ClearOtherSessions
|
|||||||
}
|
}
|
||||||
|
|
||||||
const createSession = `-- name: CreateSession :one
|
const createSession = `-- name: CreateSession :one
|
||||||
insert into sessions(token, user_pk, device)
|
insert into keibi.sessions(token, user_pk, device)
|
||||||
values ($1, $2, $3)
|
values ($1, $2, $3)
|
||||||
returning
|
returning
|
||||||
pk, id, token, user_pk, created_date, last_used, device
|
pk, id, token, user_pk, created_date, last_used, device
|
||||||
@ -58,7 +58,7 @@ func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) (S
|
|||||||
}
|
}
|
||||||
|
|
||||||
const deleteSession = `-- name: DeleteSession :one
|
const deleteSession = `-- name: DeleteSession :one
|
||||||
delete from sessions as s using users as u
|
delete from keibi.sessions as s using keibi.users as u
|
||||||
where s.user_pk = u.pk
|
where s.user_pk = u.pk
|
||||||
and s.id = $1
|
and s.id = $1
|
||||||
and u.id = $2
|
and u.id = $2
|
||||||
@ -93,8 +93,8 @@ select
|
|||||||
s.last_used,
|
s.last_used,
|
||||||
u.pk, u.id, u.username, u.email, u.password, u.claims, u.created_date, u.last_seen
|
u.pk, u.id, u.username, u.email, u.password, u.claims, u.created_date, u.last_seen
|
||||||
from
|
from
|
||||||
users as u
|
keibi.users as u
|
||||||
inner join sessions as s on u.pk = s.user_pk
|
inner join keibi.sessions as s on u.pk = s.user_pk
|
||||||
where
|
where
|
||||||
s.token = $1
|
s.token = $1
|
||||||
limit 1
|
limit 1
|
||||||
@ -130,8 +130,8 @@ const getUserSessions = `-- name: GetUserSessions :many
|
|||||||
select
|
select
|
||||||
s.pk, s.id, s.token, s.user_pk, s.created_date, s.last_used, s.device
|
s.pk, s.id, s.token, s.user_pk, s.created_date, s.last_used, s.device
|
||||||
from
|
from
|
||||||
sessions as s
|
keibi.sessions as s
|
||||||
inner join users as u on u.pk = s.user_pk
|
inner join keibi.users as u on u.pk = s.user_pk
|
||||||
where
|
where
|
||||||
u.pk = $1
|
u.pk = $1
|
||||||
order by
|
order by
|
||||||
@ -168,7 +168,7 @@ func (q *Queries) GetUserSessions(ctx context.Context, pk int32) ([]Session, err
|
|||||||
|
|
||||||
const touchSession = `-- name: TouchSession :exec
|
const touchSession = `-- name: TouchSession :exec
|
||||||
update
|
update
|
||||||
sessions
|
keibi.sessions
|
||||||
set
|
set
|
||||||
last_used = now()::timestamptz
|
last_used = now()::timestamptz
|
||||||
where
|
where
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
// Code generated by sqlc. DO NOT EDIT.
|
// Code generated by sqlc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// sqlc v1.28.0
|
// sqlc v1.30.0
|
||||||
// source: users.sql
|
// source: users.sql
|
||||||
|
|
||||||
package dbc
|
package dbc
|
||||||
@ -13,12 +13,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const createUser = `-- name: CreateUser :one
|
const createUser = `-- name: CreateUser :one
|
||||||
insert into users(username, email, password, claims)
|
insert into keibi.users(username, email, password, claims)
|
||||||
values ($1, $2, $3, case when not exists (
|
values ($1, $2, $3, case when not exists (
|
||||||
select
|
select
|
||||||
pk, id, username, email, password, claims, created_date, last_seen
|
pk, id, username, email, password, claims, created_date, last_seen
|
||||||
from
|
from
|
||||||
users) then
|
keibi.users) then
|
||||||
$4::jsonb
|
$4::jsonb
|
||||||
else
|
else
|
||||||
$5::jsonb
|
$5::jsonb
|
||||||
@ -58,7 +58,7 @@ func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (User, e
|
|||||||
}
|
}
|
||||||
|
|
||||||
const deleteUser = `-- name: DeleteUser :one
|
const deleteUser = `-- name: DeleteUser :one
|
||||||
delete from users
|
delete from keibi.users
|
||||||
where id = $1
|
where id = $1
|
||||||
returning
|
returning
|
||||||
pk, id, username, email, password, claims, created_date, last_seen
|
pk, id, username, email, password, claims, created_date, last_seen
|
||||||
@ -84,7 +84,7 @@ const getAllUsers = `-- name: GetAllUsers :many
|
|||||||
select
|
select
|
||||||
pk, id, username, email, password, claims, created_date, last_seen
|
pk, id, username, email, password, claims, created_date, last_seen
|
||||||
from
|
from
|
||||||
users
|
keibi.users
|
||||||
order by
|
order by
|
||||||
id
|
id
|
||||||
limit $1
|
limit $1
|
||||||
@ -123,7 +123,7 @@ const getAllUsersAfter = `-- name: GetAllUsersAfter :many
|
|||||||
select
|
select
|
||||||
pk, id, username, email, password, claims, created_date, last_seen
|
pk, id, username, email, password, claims, created_date, last_seen
|
||||||
from
|
from
|
||||||
users
|
keibi.users
|
||||||
where
|
where
|
||||||
id >= $2
|
id >= $2
|
||||||
order by
|
order by
|
||||||
@ -173,8 +173,8 @@ select
|
|||||||
h.username,
|
h.username,
|
||||||
h.profile_url
|
h.profile_url
|
||||||
from
|
from
|
||||||
users as u
|
keibi.users as u
|
||||||
left join oidc_handle as h on u.pk = h.user_pk
|
left join keibi.oidc_handle as h on u.pk = h.user_pk
|
||||||
where ($1::boolean
|
where ($1::boolean
|
||||||
and u.id = $2)
|
and u.id = $2)
|
||||||
or (not $1
|
or (not $1
|
||||||
@ -232,7 +232,7 @@ const getUserByLogin = `-- name: GetUserByLogin :one
|
|||||||
select
|
select
|
||||||
pk, id, username, email, password, claims, created_date, last_seen
|
pk, id, username, email, password, claims, created_date, last_seen
|
||||||
from
|
from
|
||||||
users
|
keibi.users
|
||||||
where
|
where
|
||||||
email = $1
|
email = $1
|
||||||
or username = $1
|
or username = $1
|
||||||
@ -257,7 +257,7 @@ func (q *Queries) GetUserByLogin(ctx context.Context, login string) (User, error
|
|||||||
|
|
||||||
const touchUser = `-- name: TouchUser :exec
|
const touchUser = `-- name: TouchUser :exec
|
||||||
update
|
update
|
||||||
users
|
keibi.users
|
||||||
set
|
set
|
||||||
last_used = now()::timestamptz
|
last_used = now()::timestamptz
|
||||||
where
|
where
|
||||||
@ -271,7 +271,7 @@ func (q *Queries) TouchUser(ctx context.Context, pk int32) error {
|
|||||||
|
|
||||||
const updateUser = `-- name: UpdateUser :one
|
const updateUser = `-- name: UpdateUser :one
|
||||||
update
|
update
|
||||||
users
|
keibi.users
|
||||||
set
|
set
|
||||||
username = coalesce($2, username),
|
username = coalesce($2, username),
|
||||||
email = coalesce($3, email),
|
email = coalesce($3, email),
|
||||||
|
|||||||
17
auth/main.go
17
auth/main.go
@ -106,29 +106,20 @@ func OpenDatabase() (*pgxpool.Pool, error) {
|
|||||||
config.ConnConfig.RuntimeParams["application_name"] = "keibi"
|
config.ConnConfig.RuntimeParams["application_name"] = "keibi"
|
||||||
}
|
}
|
||||||
|
|
||||||
schema := GetenvOr("POSTGRES_SCHEMA", "keibi")
|
|
||||||
if _, ok := config.ConnConfig.RuntimeParams["search_path"]; !ok {
|
|
||||||
config.ConnConfig.RuntimeParams["search_path"] = schema
|
|
||||||
}
|
|
||||||
|
|
||||||
db, err := pgxpool.NewWithConfig(ctx, config)
|
db, err := pgxpool.NewWithConfig(ctx, config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Could not connect to database, check your env variables!\n")
|
fmt.Printf("Could not connect to database, check your env variables!\n")
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if schema != "disabled" {
|
|
||||||
_, err = db.Exec(ctx, fmt.Sprintf("create schema if not exists %s", schema))
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println("Migrating database")
|
fmt.Println("Migrating database")
|
||||||
dbi := stdlib.OpenDBFromPool(db)
|
dbi := stdlib.OpenDBFromPool(db)
|
||||||
defer dbi.Close()
|
defer dbi.Close()
|
||||||
|
|
||||||
driver, err := pgxd.WithInstance(dbi, &pgxd.Config{})
|
dbi.Exec("create schema if not exists keibi")
|
||||||
|
driver, err := pgxd.WithInstance(dbi, &pgxd.Config{
|
||||||
|
SchemaName: "keibi",
|
||||||
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
begin;
|
begin;
|
||||||
|
|
||||||
drop table oidc_handle;
|
drop table keibi.oidc_handle;
|
||||||
drop table users;
|
drop table keibi.users;
|
||||||
|
|
||||||
commit;
|
commit;
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
begin;
|
begin;
|
||||||
|
|
||||||
create table users(
|
create schema if not exists keibi;
|
||||||
|
|
||||||
|
create table keibi.users(
|
||||||
pk serial primary key,
|
pk serial primary key,
|
||||||
id uuid not null default gen_random_uuid(),
|
id uuid not null default gen_random_uuid(),
|
||||||
username varchar(256) not null unique,
|
username varchar(256) not null unique,
|
||||||
@ -12,8 +14,8 @@ create table users(
|
|||||||
last_seen timestamptz not null default now()::timestamptz
|
last_seen timestamptz not null default now()::timestamptz
|
||||||
);
|
);
|
||||||
|
|
||||||
create table oidc_handle(
|
create table keibi.oidc_handle(
|
||||||
user_pk integer not null references users(pk) on delete cascade,
|
user_pk integer not null references keibi.users(pk) on delete cascade,
|
||||||
provider varchar(256) not null,
|
provider varchar(256) not null,
|
||||||
|
|
||||||
id text not null,
|
id text not null,
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
begin;
|
begin;
|
||||||
|
|
||||||
drop table sessions;
|
drop table keibi.sessions;
|
||||||
|
|
||||||
commit;
|
commit;
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
begin;
|
begin;
|
||||||
|
|
||||||
create table sessions(
|
create table keibi.sessions(
|
||||||
pk serial primary key,
|
pk serial primary key,
|
||||||
id uuid not null default gen_random_uuid(),
|
id uuid not null default gen_random_uuid(),
|
||||||
token varchar(128) not null unique,
|
token varchar(128) not null unique,
|
||||||
user_pk integer not null references users(pk) on delete cascade,
|
user_pk integer not null references keibi.users(pk) on delete cascade,
|
||||||
created_date timestamptz not null default now()::timestamptz,
|
created_date timestamptz not null default now()::timestamptz,
|
||||||
last_used timestamptz not null default now()::timestamptz,
|
last_used timestamptz not null default now()::timestamptz,
|
||||||
device varchar(1024)
|
device varchar(1024)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
begin;
|
begin;
|
||||||
|
|
||||||
drop table apikeys;
|
drop table keibi.apikeys;
|
||||||
|
|
||||||
commit;
|
commit;
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
begin;
|
begin;
|
||||||
|
|
||||||
create table apikeys(
|
create table keibi.apikeys(
|
||||||
pk serial primary key,
|
pk serial primary key,
|
||||||
id uuid not null default gen_random_uuid(),
|
id uuid not null default gen_random_uuid(),
|
||||||
name varchar(256) not null unique,
|
name varchar(256) not null unique,
|
||||||
token varchar(128) not null unique,
|
token varchar(128) not null unique,
|
||||||
claims jsonb not null,
|
claims jsonb not null,
|
||||||
|
|
||||||
created_by integer references users(pk) on delete cascade,
|
created_by integer references keibi.users(pk) on delete cascade,
|
||||||
created_at timestamptz not null default now()::timestamptz,
|
created_at timestamptz not null default now()::timestamptz,
|
||||||
last_used timestamptz not null default now()::timestamptz
|
last_used timestamptz not null default now()::timestamptz
|
||||||
);
|
);
|
||||||
|
|||||||
@ -2,14 +2,14 @@
|
|||||||
select
|
select
|
||||||
*
|
*
|
||||||
from
|
from
|
||||||
apikeys
|
keibi.apikeys
|
||||||
where
|
where
|
||||||
name = $1
|
name = $1
|
||||||
and token = $2;
|
and token = $2;
|
||||||
|
|
||||||
-- name: TouchApiKey :exec
|
-- name: TouchApiKey :exec
|
||||||
update
|
update
|
||||||
apikeys
|
keibi.apikeys
|
||||||
set
|
set
|
||||||
last_used = now()::timestamptz
|
last_used = now()::timestamptz
|
||||||
where
|
where
|
||||||
@ -19,18 +19,18 @@ where
|
|||||||
select
|
select
|
||||||
*
|
*
|
||||||
from
|
from
|
||||||
apikeys
|
keibi.apikeys
|
||||||
order by
|
order by
|
||||||
last_used;
|
last_used;
|
||||||
|
|
||||||
-- name: CreateApiKey :one
|
-- name: CreateApiKey :one
|
||||||
insert into apikeys(name, token, claims, created_by)
|
insert into keibi.apikeys(name, token, claims, created_by)
|
||||||
values ($1, $2, $3, $4)
|
values ($1, $2, $3, $4)
|
||||||
returning
|
returning
|
||||||
*;
|
*;
|
||||||
|
|
||||||
-- name: DeleteApiKey :one
|
-- name: DeleteApiKey :one
|
||||||
delete from apikeys
|
delete from keibi.apikeys
|
||||||
where id = $1
|
where id = $1
|
||||||
returning
|
returning
|
||||||
*;
|
*;
|
||||||
|
|||||||
@ -5,15 +5,15 @@ select
|
|||||||
s.last_used,
|
s.last_used,
|
||||||
sqlc.embed(u)
|
sqlc.embed(u)
|
||||||
from
|
from
|
||||||
users as u
|
keibi.users as u
|
||||||
inner join sessions as s on u.pk = s.user_pk
|
inner join keibi.sessions as s on u.pk = s.user_pk
|
||||||
where
|
where
|
||||||
s.token = $1
|
s.token = $1
|
||||||
limit 1;
|
limit 1;
|
||||||
|
|
||||||
-- name: TouchSession :exec
|
-- name: TouchSession :exec
|
||||||
update
|
update
|
||||||
sessions
|
keibi.sessions
|
||||||
set
|
set
|
||||||
last_used = now()::timestamptz
|
last_used = now()::timestamptz
|
||||||
where
|
where
|
||||||
@ -23,21 +23,21 @@ where
|
|||||||
select
|
select
|
||||||
s.*
|
s.*
|
||||||
from
|
from
|
||||||
sessions as s
|
keibi.sessions as s
|
||||||
inner join users as u on u.pk = s.user_pk
|
inner join keibi.users as u on u.pk = s.user_pk
|
||||||
where
|
where
|
||||||
u.pk = $1
|
u.pk = $1
|
||||||
order by
|
order by
|
||||||
last_used;
|
last_used;
|
||||||
|
|
||||||
-- name: CreateSession :one
|
-- name: CreateSession :one
|
||||||
insert into sessions(token, user_pk, device)
|
insert into keibi.sessions(token, user_pk, device)
|
||||||
values ($1, $2, $3)
|
values ($1, $2, $3)
|
||||||
returning
|
returning
|
||||||
*;
|
*;
|
||||||
|
|
||||||
-- name: DeleteSession :one
|
-- name: DeleteSession :one
|
||||||
delete from sessions as s using users as u
|
delete from keibi.sessions as s using keibi.users as u
|
||||||
where s.user_pk = u.pk
|
where s.user_pk = u.pk
|
||||||
and s.id = $1
|
and s.id = $1
|
||||||
and u.id = sqlc.arg(user_id)
|
and u.id = sqlc.arg(user_id)
|
||||||
@ -45,7 +45,7 @@ returning
|
|||||||
s.*;
|
s.*;
|
||||||
|
|
||||||
-- name: ClearOtherSessions :exec
|
-- name: ClearOtherSessions :exec
|
||||||
delete from sessions as s using users as u
|
delete from keibi.sessions as s using keibi.users as u
|
||||||
where s.user_pk = u.pk
|
where s.user_pk = u.pk
|
||||||
and s.id != @session_id
|
and s.id != @session_id
|
||||||
and u.id = @user_id;
|
and u.id = @user_id;
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
select
|
select
|
||||||
*
|
*
|
||||||
from
|
from
|
||||||
users
|
keibi.users
|
||||||
order by
|
order by
|
||||||
id
|
id
|
||||||
limit $1;
|
limit $1;
|
||||||
@ -11,7 +11,7 @@ limit $1;
|
|||||||
select
|
select
|
||||||
*
|
*
|
||||||
from
|
from
|
||||||
users
|
keibi.users
|
||||||
where
|
where
|
||||||
id >= sqlc.arg(after_id)
|
id >= sqlc.arg(after_id)
|
||||||
order by
|
order by
|
||||||
@ -26,8 +26,8 @@ select
|
|||||||
h.username,
|
h.username,
|
||||||
h.profile_url
|
h.profile_url
|
||||||
from
|
from
|
||||||
users as u
|
keibi.users as u
|
||||||
left join oidc_handle as h on u.pk = h.user_pk
|
left join keibi.oidc_handle as h on u.pk = h.user_pk
|
||||||
where (@use_id::boolean
|
where (@use_id::boolean
|
||||||
and u.id = @id)
|
and u.id = @id)
|
||||||
or (not @use_id
|
or (not @use_id
|
||||||
@ -37,7 +37,7 @@ where (@use_id::boolean
|
|||||||
select
|
select
|
||||||
*
|
*
|
||||||
from
|
from
|
||||||
users
|
keibi.users
|
||||||
where
|
where
|
||||||
email = sqlc.arg(login)
|
email = sqlc.arg(login)
|
||||||
or username = sqlc.arg(login)
|
or username = sqlc.arg(login)
|
||||||
@ -45,19 +45,19 @@ limit 1;
|
|||||||
|
|
||||||
-- name: TouchUser :exec
|
-- name: TouchUser :exec
|
||||||
update
|
update
|
||||||
users
|
keibi.users
|
||||||
set
|
set
|
||||||
last_used = now()::timestamptz
|
last_used = now()::timestamptz
|
||||||
where
|
where
|
||||||
pk = $1;
|
pk = $1;
|
||||||
|
|
||||||
-- name: CreateUser :one
|
-- name: CreateUser :one
|
||||||
insert into users(username, email, password, claims)
|
insert into keibi.users(username, email, password, claims)
|
||||||
values ($1, $2, $3, case when not exists (
|
values ($1, $2, $3, case when not exists (
|
||||||
select
|
select
|
||||||
*
|
*
|
||||||
from
|
from
|
||||||
users) then
|
keibi.users) then
|
||||||
sqlc.arg(first_claims)::jsonb
|
sqlc.arg(first_claims)::jsonb
|
||||||
else
|
else
|
||||||
sqlc.arg(claims)::jsonb
|
sqlc.arg(claims)::jsonb
|
||||||
@ -67,7 +67,7 @@ returning
|
|||||||
|
|
||||||
-- name: UpdateUser :one
|
-- name: UpdateUser :one
|
||||||
update
|
update
|
||||||
users
|
keibi.users
|
||||||
set
|
set
|
||||||
username = coalesce(sqlc.narg(username), username),
|
username = coalesce(sqlc.narg(username), username),
|
||||||
email = coalesce(sqlc.narg(email), email),
|
email = coalesce(sqlc.narg(email), email),
|
||||||
@ -79,7 +79,7 @@ returning
|
|||||||
*;
|
*;
|
||||||
|
|
||||||
-- name: DeleteUser :one
|
-- name: DeleteUser :one
|
||||||
delete from users
|
delete from keibi.users
|
||||||
where id = $1
|
where id = $1
|
||||||
returning
|
returning
|
||||||
*;
|
*;
|
||||||
|
|||||||
@ -30,15 +30,20 @@ sql:
|
|||||||
- db_type: "jsonb"
|
- db_type: "jsonb"
|
||||||
go_type:
|
go_type:
|
||||||
type: "interface{}"
|
type: "interface{}"
|
||||||
- column: "users.claims"
|
- column: "keibi.users.claims"
|
||||||
go_type:
|
go_type:
|
||||||
import: "github.com/golang-jwt/jwt/v5"
|
import: "github.com/golang-jwt/jwt/v5"
|
||||||
package: "jwt"
|
package: "jwt"
|
||||||
type: "MapClaims"
|
type: "MapClaims"
|
||||||
- column: "apikeys.claims"
|
- column: "keibi.apikeys.claims"
|
||||||
go_type:
|
go_type:
|
||||||
import: "github.com/golang-jwt/jwt/v5"
|
import: "github.com/golang-jwt/jwt/v5"
|
||||||
package: "jwt"
|
package: "jwt"
|
||||||
type: "MapClaims"
|
type: "MapClaims"
|
||||||
|
overrides:
|
||||||
|
go:
|
||||||
|
rename:
|
||||||
|
keibi_apikey: Apikey
|
||||||
|
keibi_oidc_handle: OidcHandle
|
||||||
|
keibi_session: Session
|
||||||
|
keibi_user: User
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user