mirror of
https://codeberg.org/shroff/phylum.git
synced 2025-12-31 16:30:28 -06:00
[server][breaking] Use timestamptz everywhere
This commit is contained in:
@@ -44,7 +44,7 @@ func (f *FileSystem) TrashList(cursor string, n uint) ([]Resource, string, error
|
||||
} else {
|
||||
t := int64(binary.LittleEndian.Uint64(d[16:]))
|
||||
lastID, _ := uuid.FromBytes(d[:16])
|
||||
lastTimestamp := time.Unix(t/1e9, t%1e9).UTC()
|
||||
lastTimestamp := time.Unix(t/1e9, t%1e9)
|
||||
q = q.Where(
|
||||
goqu.Or(
|
||||
goqu.I("deleted").Lt(goqu.V(lastTimestamp)),
|
||||
@@ -127,7 +127,7 @@ func (f *FileSystem) selectTrash(time time.Time) (exp.AliasedExpression, *goqu.S
|
||||
base = base.Where(goqu.L("r.permissions[?]::INTEGER <> 0", f.user.ID))
|
||||
}
|
||||
if !time.IsZero() {
|
||||
base = base.Where(r.Col("deleted").Lt(goqu.V(time.UTC())))
|
||||
base = base.Where(r.Col("deleted").Lt(goqu.V(time)))
|
||||
}
|
||||
|
||||
rec := pg.
|
||||
|
||||
@@ -71,11 +71,11 @@ WHERE user_id = @user_id::INT
|
||||
if since == 0 {
|
||||
sb.WriteString("AND deleted IS NULL\n")
|
||||
} else {
|
||||
sb.WriteString("AND modified >= @since::TIMESTAMP\n")
|
||||
sb.WriteString("AND modified >= @since::TIMESTAMPTZ\n")
|
||||
}
|
||||
sb.WriteString("ORDER BY modified DESC")
|
||||
|
||||
if rows, err := db.Query(sb.String(), pgx.NamedArgs{"user_id": u.ID, "since": time.UnixMilli(since).UTC()}); err != nil {
|
||||
if rows, err := db.Query(sb.String(), pgx.NamedArgs{"user_id": u.ID, "since": time.UnixMilli(since)}); err != nil {
|
||||
return nil, err
|
||||
} else if bookmarks, err := pgx.CollectRows(rows, scanBookmark); err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -44,9 +44,9 @@ func ListUsers(db db.Handler, since int64) ([]User, error) {
|
||||
sb := strings.Builder{}
|
||||
sb.WriteString("SELECT id, email, name, home, permissions FROM users")
|
||||
if since > 0 {
|
||||
sb.WriteString(" WHERE modified >= @since::TIMESTAMP")
|
||||
sb.WriteString(" WHERE modified >= @since::TIMESTAMPTZ ")
|
||||
}
|
||||
if rows, err := db.Query(sb.String(), pgx.NamedArgs{"since": time.UnixMilli(since).UTC()}); err != nil {
|
||||
if rows, err := db.Query(sb.String(), pgx.NamedArgs{"since": time.UnixMilli(since)}); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return pgx.CollectRows(rows, scanUser)
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
CREATE TABLE resources (
|
||||
id uuid PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
parent uuid REFERENCES resources(id) ON UPDATE CASCADE ON DELETE CASCADE,
|
||||
dir BOOLEAN NOT NULL,
|
||||
created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
modified TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted TIMESTAMP,
|
||||
permissions JSONB NOT NULL DEFAULT '{}',
|
||||
grants JSONB NOT NULL DEFAULT '{}'
|
||||
id uuid PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
parent uuid REFERENCES resources(id) ON UPDATE CASCADE ON DELETE CASCADE,
|
||||
dir BOOLEAN NOT NULL,
|
||||
created TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
modified TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted TIMESTAMPTZ,
|
||||
permissions JSONB NOT NULL DEFAULT '{}',
|
||||
grants JSONB NOT NULL DEFAULT '{}'
|
||||
);
|
||||
|
||||
CREATE TABLE resource_versions(
|
||||
id UUID PRIMARY KEY,
|
||||
resource_id UUID NOT NULL REFERENCES resources(id) ON DELETE CASCADE,
|
||||
created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted TIMESTAMP,
|
||||
created TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted TIMESTAMPTZ,
|
||||
size BIGINT NOT NULL,
|
||||
mime_type TEXT NOT NULL,
|
||||
sha256 TEXT NOT NULL
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
CREATE TABLE users(
|
||||
id SERIAL PRIMARY KEY,
|
||||
created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
modified TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted TIMESTAMP,
|
||||
created TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
modified TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted TIMESTAMPTZ,
|
||||
email TEXT NOT NULL UNIQUE,
|
||||
name TEXT NOT NULL,
|
||||
password_hash TEXT NOT NULL,
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
CREATE TABLE api_keys(
|
||||
id TEXT NOT NULL PRIMARY KEY,
|
||||
created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
expires TIMESTAMP NOT NULL,
|
||||
user_id INT NOT NULL REFERENCES users(id) ON UPDATE CASCADE ON DELETE CASCADE
|
||||
id TEXT NOT NULL PRIMARY KEY,
|
||||
created TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
expires TIMESTAMPTZ NOT NULL,
|
||||
user_id INT NOT NULL REFERENCES users(id) ON UPDATE CASCADE ON DELETE CASCADE
|
||||
);
|
||||
|
||||
---- create above / drop below ----
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
CREATE TABLE publinks(
|
||||
id TEXT PRIMARY KEY,
|
||||
created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
root UUID NOT NULL REFERENCES resources(id) ON UPDATE CASCADE ON DELETE CASCADE,
|
||||
accessed INT NOT NULL DEFAULT 0,
|
||||
access_limit INT NOT NULL DEFAULT 0,
|
||||
password_hash TEXT NOT NULL DEFAULT '',
|
||||
expires TIMESTAMP
|
||||
id TEXT PRIMARY KEY,
|
||||
created TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
root UUID NOT NULL REFERENCES resources(id) ON UPDATE CASCADE ON DELETE CASCADE,
|
||||
accessed INT NOT NULL DEFAULT 0,
|
||||
access_limit INT NOT NULL DEFAULT 0,
|
||||
password_hash TEXT NOT NULL DEFAULT '',
|
||||
expires TIMESTAMPTZ
|
||||
);
|
||||
|
||||
CREATE INDEX publinks_by_root ON publinks(root);
|
||||
|
||||
@@ -3,9 +3,9 @@ CREATE TABLE bookmarks(
|
||||
resource_id UUID NOT NULL REFERENCES resources(id),
|
||||
name TEXT NOT NULL,
|
||||
dir BOOLEAN NOT NULL,
|
||||
created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
modified TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted TIMESTAMP,
|
||||
created TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
modified TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted TIMESTAMPTZ,
|
||||
PRIMARY KEY(user_id, resource_id)
|
||||
);
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
CREATE TABLE reset_tokens(
|
||||
user_id INT PRIMARY KEY REFERENCES users(id) ON UPDATE CASCADE ON DELETE CASCADE,
|
||||
token TEXT NOT NULL,
|
||||
expires TIMESTAMP NOT NULL
|
||||
user_id INT PRIMARY KEY REFERENCES users(id) ON UPDATE CASCADE ON DELETE CASCADE,
|
||||
token TEXT NOT NULL,
|
||||
expires TIMESTAMPTZ NOT NULL
|
||||
);
|
||||
|
||||
|
||||
|
||||
@@ -8,5 +8,4 @@ CREATE UNLOGGED TABLE pending_logins(
|
||||
|
||||
---- create above / drop below ----
|
||||
|
||||
|
||||
DROP TABLE pending_logins;
|
||||
Reference in New Issue
Block a user