From 426d2e59889f3091804b54e3b57a875f93ee3273 Mon Sep 17 00:00:00 2001 From: Sebastian Pravda Date: Mon, 2 Jan 2023 16:15:31 +0100 Subject: [PATCH] feat: show application id number and field of study in extended infoCard --- frontend/src/lib/@api/candidate.ts | 6 +++--- .../src/lib/components/dashboard/DashboardInfoCard.svelte | 6 ++++-- frontend/src/lib/stores/candidate.ts | 5 +++++ .../routes/(candidate)/(authenticated)/+layout.server.ts | 5 ++++- .../(candidate)/(authenticated)/dashboard/+page.svelte | 3 ++- 5 files changed, 18 insertions(+), 7 deletions(-) diff --git a/frontend/src/lib/@api/candidate.ts b/frontend/src/lib/@api/candidate.ts index 61fde39..433a9f5 100644 --- a/frontend/src/lib/@api/candidate.ts +++ b/frontend/src/lib/@api/candidate.ts @@ -1,5 +1,5 @@ import axios, { type AxiosProgressEvent } from 'axios'; -import type { CandidateData, CandidateLogin } from '$lib/stores/candidate'; +import type { CandidateData, CandidateLogin, CreateCandidate } from '$lib/stores/candidate'; import type { SubmissionProgress } from '$lib/stores/portfolio'; import { API_URL, errorHandler, type Fetch } from '.'; import DOMPurify from 'isomorphic-dompurify'; @@ -52,7 +52,7 @@ export const apiFetchSubmissionProgress = async (fetchSsr?: Fetch): Promise => { +export const apiWhoami = async (fetchSsr?: Fetch): Promise => { const apiFetch = fetchSsr || fetch; try { console.log(API_URL + '/candidate/whoami'); @@ -63,7 +63,7 @@ export const apiWhoami = async (fetchSsr?: Fetch): Promise => { if (res.status != 200) { throw Error(await res.text()); } - return await res.text(); + return await res.json(); } catch (e) { throw errorHandler(e, 'Failed to fetch whoami'); } diff --git a/frontend/src/lib/components/dashboard/DashboardInfoCard.svelte b/frontend/src/lib/components/dashboard/DashboardInfoCard.svelte index db45d0f..c00ac0d 100644 --- a/frontend/src/lib/components/dashboard/DashboardInfoCard.svelte +++ b/frontend/src/lib/components/dashboard/DashboardInfoCard.svelte @@ -6,7 +6,7 @@ import { fetchSubmProgress, type Status } from '$lib/stores/portfolio'; import StatusNotificationBig from './StatusNotificationBig.svelte'; import InfoButton from './InfoButton.svelte'; - import { candidateData } from '$lib/stores/candidate'; + import { baseCandidateData, candidateData } from '$lib/stores/candidate'; import tippy, {sticky} from 'tippy.js'; import { goto } from '$app/navigation'; @@ -103,6 +103,8 @@ }} class="mt-4 flex flex-col justify-between leading-10" > + Ev. č. přihlášky: {$baseCandidateData.applicationId} + Obor: {$candidateData.candidate.study} Adresa: {$candidateData.candidate.address} Datum narození: {$candidateData.candidate.birthdate}({ + applicationId: 0, + personalIdNumber: '' +}); + export const candidateData = writable({ candidate: { name: '', diff --git a/frontend/src/routes/(candidate)/(authenticated)/+layout.server.ts b/frontend/src/routes/(candidate)/(authenticated)/+layout.server.ts index 8196422..cd4cb60 100644 --- a/frontend/src/routes/(candidate)/(authenticated)/+layout.server.ts +++ b/frontend/src/routes/(candidate)/(authenticated)/+layout.server.ts @@ -7,9 +7,12 @@ export const load: LayoutServerLoad = async ({ cookies, fetch }) => { const isAuthenticated = cookies.get('id'); if (isAuthenticated) { - await apiWhoami(fetch).catch((e) => { + const whoami = await apiWhoami(fetch).catch((e) => { throw redirect(302, '/auth/logout'); }); + return { + whoami: whoami + } } else { throw redirect(302, '/auth/logout'); } diff --git a/frontend/src/routes/(candidate)/(authenticated)/dashboard/+page.svelte b/frontend/src/routes/(candidate)/(authenticated)/dashboard/+page.svelte index 4ea9083..37a184d 100644 --- a/frontend/src/routes/(candidate)/(authenticated)/dashboard/+page.svelte +++ b/frontend/src/routes/(candidate)/(authenticated)/dashboard/+page.svelte @@ -16,7 +16,7 @@ UploadStatus, type Status } from '$lib/stores/portfolio'; - import { candidateData } from '$lib/stores/candidate'; + import { baseCandidateData, candidateData } from '$lib/stores/candidate'; export let data: PageData; @@ -25,6 +25,7 @@ $: candidateData.set(data.candidate); $: submissionProgress.set(data.submission); + $: baseCandidateData.set(data.whoami); const getUploadStatus = (progressStatus: UploadStatus | undefined): Status => { switch (progressStatus) {