mirror of
https://github.com/hpware/news-analyze.git
synced 2025-06-23 15:51:01 +08:00
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:
parent
a4a522974a
commit
3a85eda19a
@ -39,16 +39,22 @@ const createUserOtherData = await sql`
|
|||||||
groq_api_key text,
|
groq_api_key text,
|
||||||
starred_news JSON not null,
|
starred_news JSON not null,
|
||||||
translate_provider text,
|
translate_provider text,
|
||||||
translate_enabled boolean,
|
translate_enabled boolean not null,
|
||||||
remove_translate_popup boolean
|
remove_translate_popup boolean not null
|
||||||
)`;
|
)`;
|
||||||
|
|
||||||
/*const createSources = await sql`
|
const createSources = await sql`
|
||||||
create table if not exists source (
|
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("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();
|
await sql.end();
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
|
@ -1,41 +1,61 @@
|
|||||||
import sql from "~/server/components/postgres";
|
import sql from "~/server/components/postgres";
|
||||||
export default defineEventHandler(async (event) => {
|
export default defineEventHandler(async (event) => {
|
||||||
const createUsers = await sql`
|
const createUsers = await sql`
|
||||||
create table if not exists users (
|
create table if not exists users (
|
||||||
uuid text primary key,
|
uuid text primary key,
|
||||||
created_at timestamptz default current_timestamp,
|
created_at timestamptz default current_timestamp,
|
||||||
username text not null unique,
|
username text not null unique,
|
||||||
avatarurl text,
|
avatarurl text,
|
||||||
firstname text,
|
firstname text,
|
||||||
passwordhash text not null,
|
passwordhash text not null,
|
||||||
email text
|
email text
|
||||||
);
|
);
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const usersList = await sql`
|
const usersList = await sql`
|
||||||
create table if not exists usertokens (
|
create table if not exists usertokens (
|
||||||
token text not null primary key,
|
token text not null primary key,
|
||||||
created_at timestamptz default current_timestamp,
|
created_at timestamptz default current_timestamp,
|
||||||
username text not null,
|
username text not null,
|
||||||
email text,
|
email text,
|
||||||
avatarurl text,
|
avatarurl text,
|
||||||
firstname text
|
firstname text
|
||||||
)
|
)
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const createUserAiChatHistory = await sql`
|
const createUserAiChatHistory = await sql`
|
||||||
CREATE TABLE IF NOT EXISTS chat_history (
|
CREATE TABLE IF NOT EXISTS chat_history (
|
||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
uuid VARCHAR(255) NOT NULL,
|
uuid VARCHAR(255) NOT NULL,
|
||||||
role VARCHAR(50) NOT NULL,
|
role VARCHAR(50) NOT NULL,
|
||||||
content TEXT NOT NULL,
|
content TEXT NOT NULL,
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
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 {
|
return {
|
||||||
createUsers: createUsers,
|
createUsers: createUsers,
|
||||||
usersList: usersList,
|
usersList: usersList,
|
||||||
createUserAiChatHistory: createUserAiChatHistory,
|
createUserAiChatHistory: createUserAiChatHistory,
|
||||||
createSources: createSources,
|
createSources: createSources,
|
||||||
|
createUserOtherData: createUserOtherData,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
@ -34,9 +34,10 @@ export default defineEventHandler(async (event) => {
|
|||||||
console.log(fetchUserInfo[0]);
|
console.log(fetchUserInfo[0]);
|
||||||
if (fetchUserInfo.length === 0) {
|
if (fetchUserInfo.length === 0) {
|
||||||
const hashedPassword = await argon2.hash(salt + password);
|
const hashedPassword = await argon2.hash(salt + password);
|
||||||
|
const userUUID = uuidv4();
|
||||||
const createNewUser = await sql`
|
const createNewUser = await sql`
|
||||||
insert into users (uuid, username, passwordhash, avatarurl)
|
insert into users (uuid, username, passwordhash, avatarurl)
|
||||||
values (${uuidv4()}, ${username}, ${hashedPassword}, ${defaultAvatarUrl})
|
values (${userUUID}, ${username}, ${hashedPassword}, ${defaultAvatarUrl})
|
||||||
`;
|
`;
|
||||||
console.log(createNewUser);
|
console.log(createNewUser);
|
||||||
if (fetchUserInfo.length !== 0) {
|
if (fetchUserInfo.length !== 0) {
|
||||||
@ -44,6 +45,10 @@ export default defineEventHandler(async (event) => {
|
|||||||
error: "CANNOT_CREATE_NEW_USER",
|
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();
|
const newToken = uuidv4();
|
||||||
return {
|
return {
|
||||||
user: fetchUserInfo,
|
user: fetchUserInfo,
|
||||||
|
20
server/api/user/sendUserInfo.post.ts
Normal file
20
server/api/user/sendUserInfo.post.ts
Normal 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",
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
Loading…
x
Reference in New Issue
Block a user