diff --git a/src/components/CreateServer/CreateServer.jsx b/src/components/CreateServer/CreateServer.jsx
index 5f19719..865621d 100644
--- a/src/components/CreateServer/CreateServer.jsx
+++ b/src/components/CreateServer/CreateServer.jsx
@@ -67,8 +67,9 @@ const CreateServer = ({ user, onCreateServer, onSubdomainUpdate, onCancel, noSer
};
useEffect(() => {
- loadSubdomain();
- }, [user]);
+ loadSubdomain().then(r => r);
+ },
+ [user]);
const handleSaveSubdomain = async () => {
try {
diff --git a/src/components/serverCard/serverCard.jsx b/src/components/serverCards/DefaultServerCard.jsx
similarity index 91%
rename from src/components/serverCard/serverCard.jsx
rename to src/components/serverCards/DefaultServerCard.jsx
index 5aa3468..ec66a76 100644
--- a/src/components/serverCard/serverCard.jsx
+++ b/src/components/serverCards/DefaultServerCard.jsx
@@ -1,5 +1,5 @@
import { Link } from 'react-router-dom';
-import styles from './serverCard.module.scss';
+import styles from './DefaultServerCard.module.scss';
import bukkit from '../../assets/frameworks/bukkit.png';
import fabric from '../../assets/frameworks/fabric.png';
@@ -10,9 +10,7 @@ import vanilla from '../../assets/frameworks/vanilla.png';
import PropTypes from "prop-types";
// eslint-disable-next-line react/prop-types
-const ServerCard = ({ status, version, name, framework, onRunClick, onStopClick, onDeleteClick , countPlayers , maxPlayers}) => {
-
-
+const DefaultServerCard = ({ status, version, name, framework, onRunClick, onStopClick, onDeleteClick , countPlayers , maxPlayers}) => {
const getFrameworkSource = () => {
switch (framework) {
case "bukkit":
@@ -89,7 +87,7 @@ const ServerCard = ({ status, version, name, framework, onRunClick, onStopClick,
};
-ServerCard.propTypes = {
+DefaultServerCard.propTypes = {
key: PropTypes.string,
status: PropTypes.bool,
version: PropTypes.string,
@@ -102,4 +100,4 @@ ServerCard.propTypes = {
subdomain: PropTypes.string,
};
-export default ServerCard;
+export default DefaultServerCard;
diff --git a/src/components/serverCard/serverCard.module.scss b/src/components/serverCards/DefaultServerCard.module.scss
similarity index 100%
rename from src/components/serverCard/serverCard.module.scss
rename to src/components/serverCards/DefaultServerCard.module.scss
diff --git a/src/pages/DashboardPage/DashboardPage.jsx b/src/pages/DashboardPage/DashboardPage.jsx
index adde911..2526645 100644
--- a/src/pages/DashboardPage/DashboardPage.jsx
+++ b/src/pages/DashboardPage/DashboardPage.jsx
@@ -1,5 +1,5 @@
import { useEffect, useState } from 'react';
-import ServerCard from '../../components/serverCard/serverCard';
+import DefaultServerCard from '../../components/serverCards/DefaultServerCard.jsx';
import Navbar from '../../components/navbar/Navbar';
import styles from './DashboardPage.module.scss';
import Loading from '../Loading/loading';
@@ -87,7 +87,7 @@ const DashboardPage = ({ user }) => {
const handleCopyAddress = () => {
const address = `${subdomain}.servii.fr`;
- navigator.clipboard.writeText(address)
+ navigator.clipboard.writeText(address).then(r => r)
};
@@ -116,6 +116,7 @@ const DashboardPage = ({ user }) => {
@@ -134,19 +135,19 @@ const DashboardPage = ({ user }) => {
Créer un nouveau serveur
{servers.map((server) => (
- handleRunServer(server.name)}
- onStopClick={() => handleStopServer(server.name)}
- onDeleteClick={() => handleDeleteServer(server.name)}
- subdomain={subdomain}
- />
+ handleRunServer(server.name)}
+ onStopClick={() => handleStopServer(server.name)}
+ onDeleteClick={() => handleDeleteServer(server.name)}
+ subdomain={subdomain}
+ />
))}
)}
diff --git a/src/service/api.tsx b/src/service/api.tsx
index 2be430e..0c76d47 100644
--- a/src/service/api.tsx
+++ b/src/service/api.tsx
@@ -1,7 +1,8 @@
-import { getAuth } from 'firebase/auth';
-import { Bounce, toast } from "react-toastify";
+import {auth} from './firebase.jsx'
+import {Bounce, toast} from "react-toastify";
const apiUrl: string = 'https://www.servii.fr/api';
+//const apiUrl: string = 'http://localhost:3000';
interface ApiResponse {
return_code: number;
@@ -9,7 +10,6 @@ interface ApiResponse {
}
interface BaseRequest {
- token: string;
}
interface SubdomainRequest extends BaseRequest {
@@ -87,13 +87,14 @@ function toast_status(status: number, message: string) {
}
class serviiApi {
- private static async call(endpoint: serviiRequest, body: T): Promise {
+ private static async call(endpoint: serviiRequest, body: T, token: string): Promise {
const unreachable: string = "Couldn't find an available API";
try {
const response = await fetch(`${apiUrl}/${endpoint}`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
+ 'SST': token,
},
body: JSON.stringify(body),
});
@@ -121,81 +122,77 @@ class serviiApi {
constructor() {}
- private static token(): string {
- const currentUser = getAuth().currentUser;
- if (!currentUser) {
- throw new Error('No user is currently logged in.');
+ private static async token(): Promise {
+ try {
+ return await auth.currentUser.getIdToken(true);
+ } catch (error) {
+ throw new Error("No token retrieved.");
}
- return currentUser.uid;
}
public static async setSubdomain(subdomain: string): Promise {
- const payload: SubdomainRequest = { token: this.token(), subdomain: subdomain };
- return this.call(serviiRequest.setSubdomain, payload);
+ const payload: SubdomainRequest = { subdomain: subdomain };
+ return this.call(serviiRequest.setSubdomain, payload, await this.token());
}
public static async fetchServers(): Promise {
- const payload: BaseRequest = { token: this.token() };
- return this.call(serviiRequest.fetchServers, payload);
+ const payload: BaseRequest = { wait: "wtf" };
+ return this.call(serviiRequest.fetchServers, payload, await this.token());
}
public static async fetchLogs(name: string): Promise {
- const payload: ServerRequest = { token: this.token(), name: name };
- return this.call(serviiRequest.fetchLogs, payload);
+ const payload: ServerRequest = { name: name };
+ return this.call(serviiRequest.fetchLogs, payload, await this.token());
}
public static async fetchHistory(name: string): Promise {
- const payload: ServerRequest = { token: this.token(), name: name };
- return this.call(serviiRequest.fetchHistory, payload);
+ const payload: ServerRequest = { name: name };
+ return this.call(serviiRequest.fetchHistory, payload, await this.token());
}
public static async fetchPlayersStatus(name: string): Promise {
- const payload: ServerRequest = { token: this.token(), name: name,};
- return this.call(serviiRequest.fetchPlayersStatus, payload);
+ const payload: ServerRequest = { name: name,};
+ return this.call(serviiRequest.fetchPlayersStatus, payload, await this.token());
}
public static async accountCreate(): Promise {
const payload: BaseRequest = { token: this.token() };
- return this.call(serviiRequest.accountCreate, payload);
+ return this.call(serviiRequest.accountCreate, payload, await this.token());
}
public static async serverCreate(name: string, version: string, framework: string): Promise {
- const payload: ServerCreationRequest = { token: this.token(), name: name, version: version, framework: framework };
- return this.call(serviiRequest.serverCreate, payload);
+ const payload: ServerCreationRequest = { name: name, version: version, framework: framework };
+ return this.call(serviiRequest.serverCreate, payload, await this.token());
}
public static async serverDelete(name: string): Promise {
- const payload: ServerRequest = { token: this.token(), name: name };
- return this.call(serviiRequest.serverDelete, payload);
+ const payload: ServerRequest = { name: name };
+ return this.call(serviiRequest.serverDelete, payload, await this.token());
}
public static async accountDelete(): Promise {
const payload: BaseRequest = { token: this.token() };
- return this.call(serviiRequest.accountDelete, payload);
+ return this.call(serviiRequest.accountDelete, payload, await this.token());
}
public static async serverRun(name: string): Promise {
- const payload: ServerRequest = { token: this.token(), name: name };
- return this.call(serviiRequest.serverRun, payload);
+ const payload: ServerRequest = { name: name };
+ return this.call(serviiRequest.serverRun, payload, await this.token());
}
public static async serverStop(name: string): Promise {
- const payload: ServerRequest = { token: this.token(), name: name };
- return this.call(serviiRequest.serverStop, payload);
+ const payload: ServerRequest = { name: name };
+ return this.call(serviiRequest.serverStop, payload, await this.token());
}
public static async updateProperties(name: string, props: [string, string][]): Promise {
- const payload: UpdatePropertiesRequest = {
- token: this.token(),
- name: name,
- props: props,
- };
- return this.call(serviiRequest.updateProperty, payload);
+ const payload: UpdatePropertiesRequest = { name: name, props: props };
+ return this.call(serviiRequest.updateProperty, payload, await this.token());
}
public static async command(command: string, name: string): Promise {
- const payload: CommandRequest = { token: this.token(), command: command, name: name };
- return this.call(serviiRequest.command, payload);
+ const payload: CommandRequest = { command: command, name: name };
+ return this.call(serviiRequest.command, payload, await this.token());
}
}
diff --git a/src/service/firebase.jsx b/src/service/firebase.jsx
index 428677e..5f84bdd 100644
--- a/src/service/firebase.jsx
+++ b/src/service/firebase.jsx
@@ -37,4 +37,4 @@ const getUserSubdomain = async (userId) => {
}
};
-export { auth, googleProvider, signInWithPopup, getUserSubdomain };
+export { auth, googleProvider, signInWithPopup, getUserSubdomain, app };