Update createDatabase scripts & get sendUserInfo endpoint & when

creating an account it will also create a array in user_other_data.
This commit is contained in:
yuanhau 2025-06-07 09:21:37 +08:00
parent a4a522974a
commit 3a85eda19a
5 changed files with 84 additions and 33 deletions

View file

@ -39,16 +39,22 @@ const createUserOtherData = await sql`
groq_api_key text,
starred_news JSON not null,
translate_provider text,
translate_enabled boolean,
remove_translate_popup boolean
translate_enabled boolean not null,
remove_translate_popup boolean not null
)`;
/*const createSources = await sql`
create table if not exists source (
const createSources = await sql`
create table if not exists lt_news_org (
news_id text primary key,
name text not null,
description text
)
`;*/
`;
console.log("Creation Complete");
console.log(
"If the script still does not quit after 2 seconds after the 'Creation Complete' message, please stop it by using Ctrl + C or on mac Control + C",
);
await sql.end();
process.exit(0);

View file

@ -10,7 +10,7 @@ export default defineEventHandler(async (event) => {
passwordhash text not null,
email text
);
`;
`;
const usersList = await sql`
create table if not exists usertokens (
@ -21,21 +21,41 @@ export default defineEventHandler(async (event) => {
avatarurl text,
firstname text
)
`;
`;
const createUserAiChatHistory = await sql`
CREATE TABLE IF NOT EXISTS chat_history (
CREATE TABLE IF NOT EXISTS chat_history (
id SERIAL PRIMARY KEY,
uuid VARCHAR(255) NOT NULL,
role VARCHAR(50) NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)`;
const createSources = await sql``;
)`;
const createUserOtherData = await sql`
create table if not exists user_other_data (
user_id text primary key ,
user text not null unique,
groq_api_key text,
starred_news JSON not null,
translate_provider text,
translate_enabled boolean not null,
remove_translate_popup boolean not null
)`;
const createSources = await sql`
create table if not exists lt_news_org (
news_id text primary key,
name text not null,
description text
)
`;
return {
createUsers: createUsers,
usersList: usersList,
createUserAiChatHistory: createUserAiChatHistory,
createSources: createSources,
createUserOtherData: createUserOtherData,
};
});

View file

@ -34,9 +34,10 @@ export default defineEventHandler(async (event) => {
console.log(fetchUserInfo[0]);
if (fetchUserInfo.length === 0) {
const hashedPassword = await argon2.hash(salt + password);
const userUUID = uuidv4();
const createNewUser = await sql`
insert into users (uuid, username, passwordhash, avatarurl)
values (${uuidv4()}, ${username}, ${hashedPassword}, ${defaultAvatarUrl})
values (${userUUID}, ${username}, ${hashedPassword}, ${defaultAvatarUrl})
`;
console.log(createNewUser);
if (fetchUserInfo.length !== 0) {
@ -44,6 +45,10 @@ export default defineEventHandler(async (event) => {
error: "CANNOT_CREATE_NEW_USER",
};
}
const createOtherFields = await sql`
insert into user_other_data(user_id, user, translate_enabled, translate_provider, remove_translate_popup)
values (${userUUID}, ${username}, false, 'google', false)
`;
const newToken = uuidv4();
return {
user: fetchUserInfo,

View file

@ -0,0 +1,20 @@
import sql from "~/server/components/postgres";
export default defineEventHandler(async (event) => {
const body = await readBody(event);
const { request_change } = body;
const userToken = getCookie(event, "token");
if (!userToken) {
return {
error: "ERR_NOT_ALLOWED",
};
}
const checkUserToken = await sql`
select * from usertokens
where token=${userToken}
`;
if (checkUserToken.length === 0) {
return {
error: "ERR_NOT_ALLOWED",
};
}
});