Compare commits

...

2 Commits

Author SHA1 Message Date
8e0514514b fix: check if profile existe befort render profile page 2023-12-21 00:05:54 +01:00
0626faae7f core: edit renderView engine
to display 404 error on not found page
2023-12-21 00:04:48 +01:00
4 changed files with 25 additions and 10 deletions

View File

@ -19,6 +19,10 @@ class Profile
async init(user_id)
{
let response = await this.client._get(`/api/profiles/${user_id}`);
if (response.status === 404)
return 1;
let response_data = await response.json();
this.user_id = response_data.user_id;

View File

@ -28,7 +28,8 @@ class Profiles
async getProfile(user_id)
{
let profile = new Profile(this.client);
await profile.init(user_id);
if (await profile.init(user_id))
return null;
return profile;
}

View File

@ -35,6 +35,19 @@ const navigateTo = async (uri) => {
history.pushState(null, null, uri);
};
async function renderView(view)
{
let content = await view.getHtml();
if (content == null)
return 1;
view.setTitle();
document.querySelector("#app").innerHTML = content
if (await view.postInit())
renderView(new PageNotFoundView());
}
const router = async (uri) => {
const routes = [
{ path: "/", view: Dashboard },
@ -80,14 +93,7 @@ const router = async (uri) => {
lastView = view;
await client.isAuthentificate();
let content = await view.getHtml();
if (content == null)
return 1;
view.setTitle();
document.querySelector("#app").innerHTML = content
await view.postInit();
renderView(view);
return 0;
};

View File

@ -10,6 +10,10 @@ export default class extends AbstractView {
async postInit()
{
let profile = await client.profiles.getProfile(this.user_id);
if (profile === null)
return 1;
let info = document.getElementById("info");
// Username
@ -18,7 +22,7 @@ export default class extends AbstractView {
username.appendChild(document.createTextNode(profile.username));
info.appendChild(username);
info.appendChild(document.createElement("br"));
info.appendChild(document.createElement("br"));
// Avatar
let avatar = document.createElement("img");