Merge branch 'main' into main
This commit is contained in:
commit
d657525f79
9 changed files with 383 additions and 78 deletions
20
app/backend/ProcessMemory.ts
Normal file
20
app/backend/ProcessMemory.ts
Normal file
|
@ -0,0 +1,20 @@
|
|||
import { Settings } from 'electron'
|
||||
import React from 'react'
|
||||
|
||||
type Message = {
|
||||
role: string
|
||||
content: string
|
||||
}
|
||||
|
||||
type Chat = {
|
||||
name: string
|
||||
messages: Message[]
|
||||
}
|
||||
|
||||
type Data = {
|
||||
chats: Chat[]
|
||||
settings: Settings[]
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
import React from 'react'
|
||||
|
||||
type Chat = {
|
||||
name:string
|
||||
messages:string[]
|
||||
}
|
||||
|
||||
type History = {
|
||||
chats:Chat[]
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1,16 +1,96 @@
|
|||
import axios from "axios";
|
||||
|
||||
const sendToDatabase = (data: any) => {
|
||||
axios.post("http://localhost:5000/interstellar_ai/db", data)
|
||||
.then(response => {
|
||||
const status = response.data.status
|
||||
console.log(status);
|
||||
postMessage({ status })
|
||||
console.log('message posted');
|
||||
/*
|
||||
This is the guide on how to user this function:
|
||||
|
||||
})
|
||||
.catch(error => {
|
||||
console.log("Error calling Database:", error)
|
||||
postMessage({ status: 500 })
|
||||
})
|
||||
}
|
||||
data should be the json containing everything relevant, the json can contain the following keys:
|
||||
|
||||
action -> contains the action you want to do, there are: create_account, change_password, get_data, change_data, check_credentials, delete_account
|
||||
username -> contains the current username, required for create_account, but can be omitted in favor of email in other requests. Preffered over email authentication.
|
||||
email -> contains the current email, required for create_account, but just like the username, it can be omitted, in favor of the other, sending both is possible too.
|
||||
password -> contains the password, required for all requests.
|
||||
new_password -> in the case you are changing your password, you will need to use this in addition to password, to specify the new password.
|
||||
data -> data contains all the data you want to store, you have to always give the entire data, because the data you give here overwrites the data in the database,
|
||||
so if you only give the chat history for example, all settings will be deleted, and if you only give settings, all chat histories will get deleted.
|
||||
|
||||
|
||||
if all went well, you will get the status 200 in response.data.status
|
||||
to check if the request was accepted or declined, check response.data.response, it will be either true or false depending on if it worked, or not.
|
||||
*/
|
||||
|
||||
export const sendToDatabase = (data: any): Promise<boolean> => {
|
||||
return axios.post("http://localhost:5000/interstellar_ai/db", data)
|
||||
.then(response => {
|
||||
const status = response.data.status;
|
||||
const success = response.data.response;
|
||||
postMessage({ status, success });
|
||||
return success; // Ensure success is returned to the caller
|
||||
})
|
||||
.catch(error => {
|
||||
postMessage({ status: 500, success: false });
|
||||
return false; // Return false in case of an error
|
||||
});
|
||||
};
|
||||
|
||||
// Functions for each action
|
||||
export const createAccount = async (username: string, email: string, password: string) => {
|
||||
const data = {
|
||||
action: "create_account",
|
||||
username,
|
||||
email,
|
||||
password,
|
||||
};
|
||||
return await sendToDatabase(data);
|
||||
};
|
||||
|
||||
export const changePassword = async (usernameOrEmail: string, password: string, newPassword: string) => {
|
||||
const data = {
|
||||
action: "change_password",
|
||||
username: usernameOrEmail.includes('@') ? undefined : usernameOrEmail,
|
||||
email: usernameOrEmail.includes('@') ? usernameOrEmail : undefined,
|
||||
password,
|
||||
new_password: newPassword,
|
||||
};
|
||||
return await sendToDatabase(data);
|
||||
};
|
||||
|
||||
export const getData = async (usernameOrEmail: string, password: string) => {
|
||||
const data = {
|
||||
action: "get_data",
|
||||
username: usernameOrEmail.includes('@') ? undefined : usernameOrEmail,
|
||||
email: usernameOrEmail.includes('@') ? usernameOrEmail : undefined,
|
||||
password,
|
||||
};
|
||||
return await sendToDatabase(data);
|
||||
};
|
||||
|
||||
export const changeData = async (usernameOrEmail: string, password: string, newData: any) => {
|
||||
const data = {
|
||||
action: "change_data",
|
||||
username: usernameOrEmail.includes('@') ? undefined : usernameOrEmail,
|
||||
email: usernameOrEmail.includes('@') ? usernameOrEmail : undefined,
|
||||
password,
|
||||
data: newData,
|
||||
};
|
||||
return await sendToDatabase(data);
|
||||
};
|
||||
|
||||
export const checkCredentials = async (usernameOrEmail: string, password: string) => {
|
||||
const data = {
|
||||
action: "check_credentials",
|
||||
username: usernameOrEmail.includes('@') ? undefined : usernameOrEmail,
|
||||
email: usernameOrEmail.includes('@') ? usernameOrEmail : undefined,
|
||||
password,
|
||||
};
|
||||
return await sendToDatabase(data);
|
||||
};
|
||||
|
||||
export const deleteAccount = async (usernameOrEmail: string, password: string) => {
|
||||
const data = {
|
||||
action: "delete_account",
|
||||
username: usernameOrEmail.includes('@') ? undefined : usernameOrEmail,
|
||||
email: usernameOrEmail.includes('@') ? usernameOrEmail : undefined,
|
||||
password,
|
||||
};
|
||||
return await sendToDatabase(data);
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue