Vylepseni SSR, pridani meta informaci, zatim dost WIP
This commit is contained in:
+81
-78
@@ -6,89 +6,92 @@ import {ref} from "vue";
|
||||
import {mutate, query} from "stores/helpers";
|
||||
|
||||
export const useUserStore = defineStore('LoggedUser', () => {
|
||||
const user = ref(null);
|
||||
const publicUser = ref(null);
|
||||
const isQueryRunning = ref(false);
|
||||
const isMutationRunning = ref(false);
|
||||
const isRefreshing = ref(false);
|
||||
const user = ref(null);
|
||||
const publicUser = ref(null);
|
||||
const isQueryRunning = ref(false);
|
||||
const isMutationRunning = ref(false);
|
||||
const isRefreshing = ref(false);
|
||||
|
||||
const fetchLoggedUserDetail = () => query({
|
||||
isQueryRunning,
|
||||
query: LOGGED_USER_DETAIL
|
||||
}).then(item => {
|
||||
user.value = item;
|
||||
return item;
|
||||
const fetchLoggedUserDetail = ({refresh}) => query({
|
||||
isQueryRunning,
|
||||
query: LOGGED_USER_DETAIL,
|
||||
refreshUnauthorized: refresh || false,
|
||||
}).then(item => {
|
||||
user.value = item;
|
||||
return item;
|
||||
});
|
||||
|
||||
const fetchPublicUserDetail = (username) => query({
|
||||
isQueryRunning,
|
||||
query: USER_DETAIL,
|
||||
variables: {username}
|
||||
}).then(item => {
|
||||
publicUser.value = item;
|
||||
return item;
|
||||
});
|
||||
|
||||
const update = (input) => mutate({
|
||||
isMutationRunning,
|
||||
mutation: EDIT_USER,
|
||||
variables: {input}
|
||||
}).then(item => {
|
||||
user.value = item;
|
||||
return item;
|
||||
});
|
||||
|
||||
const register = async (formData) => {
|
||||
return api.post('/registration', formData).then(response => {
|
||||
const registeredUser = response.data;
|
||||
const isSuccess = response.status === 201
|
||||
})
|
||||
};
|
||||
|
||||
const login = async (formData) => {
|
||||
return api.post("/login", formData).then(({data}) => {
|
||||
setTokens(data);
|
||||
user.value = data.user;
|
||||
})
|
||||
};
|
||||
|
||||
const logout = () => {
|
||||
return api.post("/logout").then(response => {
|
||||
localStorage.removeItem("accessToken");
|
||||
localStorage.removeItem("accessTokenValidity");
|
||||
user.value = null;
|
||||
});
|
||||
};
|
||||
|
||||
const fetchPublicUserDetail = (username) => query({
|
||||
isQueryRunning,
|
||||
query: USER_DETAIL,
|
||||
variables: {username}
|
||||
}).then(item => {
|
||||
publicUser.value = item;
|
||||
return item;
|
||||
});
|
||||
const setTokens = ({access_token, access_token_validity}) => {
|
||||
const now = new Date().getTime() / 1000;
|
||||
localStorage.setItem("accessToken", access_token);
|
||||
localStorage.setItem("accessTokenValidity", now + access_token_validity);
|
||||
};
|
||||
|
||||
const update = (input) => mutate({
|
||||
isMutationRunning,
|
||||
mutation: EDIT_USER,
|
||||
variables: {input}
|
||||
}).then(item => {
|
||||
user.value = item;
|
||||
return item;
|
||||
});
|
||||
const getAccessToken = () => {
|
||||
if (typeof localStorage === 'undefined') return null;
|
||||
|
||||
const register = async (formData) => {
|
||||
return api.post('/registration', formData).then(response => {
|
||||
const registeredUser = response.data;
|
||||
const isSuccess = response.status === 201
|
||||
})
|
||||
};
|
||||
const tokenValidity = localStorage.getItem("accessTokenValidity");
|
||||
const now = new Date().getTime() / 1000;
|
||||
|
||||
const login = async (formData) => {
|
||||
return api.post("/login", formData).then(({data}) => {
|
||||
setTokens(data);
|
||||
user.value = data.user;
|
||||
})
|
||||
};
|
||||
|
||||
const logout = () => {
|
||||
return api.post("/logout").then(response => {
|
||||
localStorage.removeItem("accessToken");
|
||||
localStorage.removeItem("accessTokenValidity");
|
||||
user.value = null;
|
||||
});
|
||||
};
|
||||
|
||||
const setTokens = ({access_token, access_token_validity}) => {
|
||||
const now = new Date().getTime() / 1000;
|
||||
localStorage.setItem("accessToken", access_token);
|
||||
localStorage.setItem("accessTokenValidity", now + access_token_validity);
|
||||
};
|
||||
|
||||
const getAccessToken = () => {
|
||||
const tokenValidity = localStorage.getItem("accessTokenValidity");
|
||||
const now = new Date().getTime() / 1000;
|
||||
|
||||
if (tokenValidity < now) {
|
||||
localStorage.removeItem("accessToken");
|
||||
localStorage.removeItem("accessTokenValidity");
|
||||
}
|
||||
|
||||
return localStorage.getItem(`accessToken`);
|
||||
};
|
||||
|
||||
const hasAccessToken = () => !!localStorage.getItem("accessToken");
|
||||
|
||||
const refreshAccessToken = async () => api.post("/refresh")
|
||||
.then(({data}) => {
|
||||
setTokens(data);
|
||||
return data.access_token;
|
||||
});
|
||||
|
||||
return {
|
||||
isQueryRunning, isMutationRunning, user, publicUser, fetchLoggedUserDetail, fetchPublicUserDetail, update,
|
||||
register, login, logout,
|
||||
getAccessToken, hasAccessToken, refreshAccessToken, isRefreshing
|
||||
if (tokenValidity < now) {
|
||||
localStorage.removeItem("accessToken");
|
||||
localStorage.removeItem("accessTokenValidity");
|
||||
}
|
||||
|
||||
return localStorage.getItem(`accessToken`);
|
||||
};
|
||||
|
||||
const hasAccessToken = () => !!localStorage.getItem("accessToken");
|
||||
|
||||
const refreshAccessToken = async () => api.post("/refresh")
|
||||
.then(({data}) => {
|
||||
setTokens(data);
|
||||
return data.access_token;
|
||||
});
|
||||
|
||||
return {
|
||||
isQueryRunning, isMutationRunning, user, publicUser, fetchLoggedUserDetail, fetchPublicUserDetail, update,
|
||||
register, login, logout,
|
||||
getAccessToken, hasAccessToken, refreshAccessToken, isRefreshing
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user