feat(session): create website on session request
parent
c881751e4f
commit
66f2075f37
|
@ -8,11 +8,13 @@ services:
|
||||||
environment:
|
environment:
|
||||||
DATABASE_URL: postgresql://umami:umami@db:5432/umami
|
DATABASE_URL: postgresql://umami:umami@db:5432/umami
|
||||||
DATABASE_TYPE: postgresql
|
DATABASE_TYPE: postgresql
|
||||||
HASH_SALT: replace-me-with-a-random-string
|
HASH_SALT: cMP9En7jrhD6uKKAMpuADybe32Ww7Cfu
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
db:
|
db:
|
||||||
image: postgres:12-alpine
|
image: postgres:12-alpine
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:5432:5432"
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_DB: umami
|
POSTGRES_DB: umami
|
||||||
POSTGRES_USER: umami
|
POSTGRES_USER: umami
|
||||||
|
@ -21,4 +23,4 @@ services:
|
||||||
- ./sql/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro
|
- ./sql/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro
|
||||||
- umami-db-data:/var/lib/postgresql/data
|
- umami-db-data:/var/lib/postgresql/data
|
||||||
volumes:
|
volumes:
|
||||||
umami-db-data:
|
umami-db-data:
|
|
@ -28,7 +28,15 @@ export function uuid(...args) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isValidUuid(s) {
|
export function isValidUuid(s) {
|
||||||
return validate(s);
|
const isValid = validate(s);
|
||||||
|
if (isValid) return true;
|
||||||
|
|
||||||
|
try {
|
||||||
|
s.toString();
|
||||||
|
return true;
|
||||||
|
} catch (error) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getRandomChars(n) {
|
export function getRandomChars(n) {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { getWebsiteByUuid, getSessionByUuid, createSession } from 'lib/queries';
|
import { getWebsiteByUuid, getSessionByUuid, createSession, createWebsite } from 'lib/queries';
|
||||||
import { getClientInfo } from 'lib/request';
|
import { getClientInfo } from 'lib/request';
|
||||||
import { uuid, isValidUuid, parseToken } from 'lib/crypto';
|
import { uuid, isValidUuid, parseToken } from 'lib/crypto';
|
||||||
|
|
||||||
|
@ -25,10 +25,17 @@ export async function getSession(req) {
|
||||||
|
|
||||||
const { userAgent, browser, os, ip, country, device } = await getClientInfo(req, payload);
|
const { userAgent, browser, os, ip, country, device } = await getClientInfo(req, payload);
|
||||||
|
|
||||||
const website = await getWebsiteByUuid(website_uuid);
|
let website = await getWebsiteByUuid(website_uuid);
|
||||||
|
|
||||||
if (!website) {
|
if (!website) {
|
||||||
throw new Error(`Website not found: ${website_uuid}`);
|
// throw new Error(`Website not found: ${website_uuid}`);
|
||||||
|
const user_id = 1;
|
||||||
|
website = await createWebsite(user_id, {
|
||||||
|
website_uuid,
|
||||||
|
name: website_uuid,
|
||||||
|
domain: `http://${website_uuid}`,
|
||||||
|
share_id: null,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const { website_id } = website;
|
const { website_id } = website;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -15,7 +15,7 @@ create table account (
|
||||||
|
|
||||||
create table website (
|
create table website (
|
||||||
website_id int unsigned not null auto_increment primary key,
|
website_id int unsigned not null auto_increment primary key,
|
||||||
website_uuid varchar(36) unique not null,
|
website_uuid varchar(128) unique not null,
|
||||||
user_id int unsigned not null,
|
user_id int unsigned not null,
|
||||||
name varchar(100) not null,
|
name varchar(100) not null,
|
||||||
domain varchar(500),
|
domain varchar(500),
|
||||||
|
|
|
@ -15,7 +15,7 @@ create table account (
|
||||||
|
|
||||||
create table website (
|
create table website (
|
||||||
website_id serial primary key,
|
website_id serial primary key,
|
||||||
website_uuid uuid unique not null,
|
website_uuid varchar(128) unique not null,
|
||||||
user_id int not null references account(user_id) on delete cascade,
|
user_id int not null references account(user_id) on delete cascade,
|
||||||
name varchar(100) not null,
|
name varchar(100) not null,
|
||||||
domain varchar(500),
|
domain varchar(500),
|
||||||
|
|
Loading…
Reference in New Issue