Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 EES-4859 Fix data set id's and data set file id's used by API subscription pages #5212

Merged
merged 1 commit into from
Sep 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ await TestApp.AddTestData<PublicDataDbContext>(context =>
content.LatestVersion.Published
);
Assert.Equal(dataSetVersion.TotalResults, content.LatestVersion.TotalResults);
Assert.Equal(dataSetVersion.Release.DataSetFileId, content.LatestVersion.File.Id);
Assert.Equal(
TimePeriodFormatter.FormatLabel(
dataSetVersion.MetaSummary!.TimePeriodRange.Start.Period,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -526,6 +526,7 @@ await TestApp.AddTestData<PublicDataDbContext>(context =>
result.LatestVersion.Published
);
Assert.Equal(dataSetVersion.TotalResults, result.LatestVersion.TotalResults);
Assert.Equal(dataSetVersion.Release.DataSetFileId, result.LatestVersion.File.Id);
Assert.Equal(
TimePeriodFormatter.FormatLabel(
dataSetVersion.MetaSummary!.TimePeriodRange.Start.Period,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ private static DataSetLatestVersionViewModel MapLatestVersion(DataSetVersion lat
Version = latestVersion.PublicVersion,
Published = latestVersion.Published!.Value,
TotalResults = latestVersion.TotalResults,
File = MapFile(latestVersion),
TimePeriods = MapTimePeriods(latestVersion.MetaSummary!.TimePeriodRange),
GeographicLevels = latestVersion.MetaSummary.GeographicLevels,
Filters = latestVersion.MetaSummary.Filters,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,11 @@ public record DataSetLatestVersionViewModel
/// </summary>
public required long TotalResults { get; init; }

/// <summary>
/// The file that this data set version is based on.
/// </summary>
public required DataSetVersionFileViewModel File { get; init; }

/// <summary>
/// The time period range covered by the data set.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import useToggle from '@common/hooks/useToggle';
import logger from '@common/services/logger';
import Page from '@frontend/components/Page';
import withAxiosHandler from '@frontend/middleware/ssr/withAxiosHandler';
import { DataSetFile } from '@frontend/services/dataSetFileService';
import dataSetFileQueries from '@frontend/queries/dataSetFileQueries';
import { ApiDataSet } from '@frontend/services/apiDataSetService';
import apiDataSetQueries from '@frontend/queries/apiDataSetQueries';
import Link from '@frontend/components/Link';
import apiNotificationService from '@frontend/services/apiNotificationService';
import { isAxiosError } from 'axios';
Expand All @@ -16,15 +16,16 @@ import Head from 'next/head';
import { QueryClient } from '@tanstack/react-query';

interface Props {
dataSetFile: DataSetFile;
dataSet: ApiDataSet;
token: string;
}

const ConfirmSubscriptionPage: NextPage<Props> = ({ dataSetFile, token }) => {
const ConfirmSubscriptionPage: NextPage<Props> = ({ dataSet, token }) => {
const [submitted, toggleSubmitted] = useToggle(false);
const [subscriptionError, setSubscriptionError] = useState<string>();

const { id: dataSetId, title } = dataSetFile;
const { id: dataSetId, title } = dataSet;
const dataSetFileId = dataSet.latestVersion.file.id;

const onConfirm = async () => {
try {
Expand Down Expand Up @@ -53,7 +54,7 @@ const ConfirmSubscriptionPage: NextPage<Props> = ({ dataSetFile, token }) => {
<p>
Your subscription verification token has expired. You can try
again by re-subscribing from the{' '}
<Link to={`/data-catalogue/data-set/${dataSetId}`}>
<Link to={`/data-catalogue/data-set/${dataSetFileId}`}>
data set's main screen.
</Link>
</p>
Expand All @@ -72,7 +73,7 @@ const ConfirmSubscriptionPage: NextPage<Props> = ({ dataSetFile, token }) => {
<>
<p>You are already subscribed to this data set.</p>
<p>
<Link to={`/data-catalogue/data-set/${dataSetId}`}>
<Link to={`/data-catalogue/data-set/${dataSetFileId}`}>
View {title}
</Link>
</p>
Expand Down Expand Up @@ -127,7 +128,7 @@ const ConfirmSubscriptionPage: NextPage<Props> = ({ dataSetFile, token }) => {
{ name: 'Data catalogue', link: '/data-catalogue' },
{
name: title,
link: `/data-catalogue/data-set/${dataSetId}`,
link: `/data-catalogue/data-set/${dataSetFileId}`,
},
]}
>
Expand All @@ -138,7 +139,7 @@ const ConfirmSubscriptionPage: NextPage<Props> = ({ dataSetFile, token }) => {
<Panel headingTag="h2" title="Subscribed">
<p>You have successfully subscribed to these updates.</p>
<p>
<Link to={`/data-catalogue/data-set/${dataSetId}`}>
<Link to={`/data-catalogue/data-set/${dataSetFileId}`}>
View {title}
</Link>
</p>
Expand All @@ -162,13 +163,13 @@ export const getServerSideProps: GetServerSideProps<Props> = withAxiosHandler(

const queryClient = new QueryClient();

const dataSetFile = await queryClient.fetchQuery(
dataSetFileQueries.get(dataSetId),
const dataSet = await queryClient.fetchQuery(
apiDataSetQueries.getDataSet(dataSetId),
);

return {
props: {
dataSetFile,
dataSet,
token,
},
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import logger from '@common/services/logger';
import Link from '@frontend/components/Link';
import Page from '@frontend/components/Page';
import withAxiosHandler from '@frontend/middleware/ssr/withAxiosHandler';
import { DataSetFile } from '@frontend/services/dataSetFileService';
import dataSetFileQueries from '@frontend/queries/dataSetFileQueries';
import { ApiDataSet } from '@frontend/services/apiDataSetService';
import apiDataSetQueries from '@frontend/queries/apiDataSetQueries';
import apiNotificationService from '@frontend/services/apiNotificationService';
import React, { useState } from 'react';
import { GetServerSideProps, NextPage } from 'next';
Expand All @@ -16,14 +16,16 @@ import { QueryClient } from '@tanstack/react-query';
import { isAxiosError } from 'axios';

interface Props {
dataSetFile: DataSetFile;
dataSet: ApiDataSet;
token: string;
}

const ConfirmUnsubscriptionPage: NextPage<Props> = ({ dataSetFile, token }) => {
const ConfirmUnsubscriptionPage: NextPage<Props> = ({ dataSet, token }) => {
const [submitted, toggleSubmitted] = useToggle(false);
const [unsubscribeError, setUnsubscribeError] = useState<string>();
const { id: dataSetId, title } = dataSetFile;

const { id: dataSetId, title } = dataSet;
const dataSetFileId = dataSet.latestVersion.file.id;

const onConfirm = async () => {
try {
Expand Down Expand Up @@ -96,7 +98,7 @@ const ConfirmUnsubscriptionPage: NextPage<Props> = ({ dataSetFile, token }) => {
{ name: 'Data catalogue', link: '/data-catalogue' },
{
name: title,
link: `/data-catalogue/data-set/${dataSetId}`,
link: `/data-catalogue/data-set/${dataSetFileId}`,
},
]}
>
Expand All @@ -107,7 +109,7 @@ const ConfirmUnsubscriptionPage: NextPage<Props> = ({ dataSetFile, token }) => {
<Panel headingTag="h2" title="Unsubscribed">
<p>You have successfully unsubscribed from these updates.</p>
<p>
<Link to={`/data-catalogue/data-set/${dataSetId}`}>
<Link to={`/data-catalogue/data-set/${dataSetFileId}`}>
View {title}
</Link>
</p>
Expand All @@ -131,13 +133,13 @@ export const getServerSideProps: GetServerSideProps<Props> = withAxiosHandler(

const queryClient = new QueryClient();

const dataSetFile = await queryClient.fetchQuery(
dataSetFileQueries.get(dataSetId),
const dataSet = await queryClient.fetchQuery(
apiDataSetQueries.getDataSet(dataSetId),
);

return {
props: {
dataSetFile,
dataSet,
token,
},
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ interface Props {
}

const NewSubscriptionPage: NextPage<Props> = ({ dataSetFile }) => {
const { id: dataSetId, title } = dataSetFile;
const { id: dataSetFileId, title } = dataSetFile;
const dataSetId = dataSetFile.api!.id;

const handleFormSubmit = async ({ email }: FormValues) => {
await apiNotificationService.requestPendingSubscription({
Expand All @@ -51,14 +52,14 @@ const NewSubscriptionPage: NextPage<Props> = ({ dataSetFile }) => {

return (
<Page
title={dataSetFile.title}
title={title}
caption="Notify me"
breadcrumbLabel="Notify me"
breadcrumbs={[
{ name: 'Data catalogue', link: '/data-catalogue' },
{
name: title,
link: `/data-catalogue/data-set/${dataSetId}`,
link: `/data-catalogue/data-set/${dataSetFileId}`,
},
]}
>
Expand All @@ -70,7 +71,7 @@ const NewSubscriptionPage: NextPage<Props> = ({ dataSetFile }) => {
enableReinitialize
errorMappings={errorMappings}
initialValues={{
dataSetId: dataSetFile.id,
dataSetId,
email: '',
}}
validationSchema={Yup.object({
Expand Down Expand Up @@ -120,12 +121,12 @@ const NewSubscriptionPage: NextPage<Props> = ({ dataSetFile }) => {

export const getServerSideProps: GetServerSideProps<Props> = withAxiosHandler(
async ({ query }) => {
const { dataSetId } = query as Dictionary<string>;
const { dataSetFileId } = query as Dictionary<string>;

const queryClient = new QueryClient();

const dataSetFile = await queryClient.fetchQuery(
dataSetFileQueries.get(dataSetId),
dataSetFileQueries.get(dataSetFileId),
);

return {
Expand Down
Loading
Loading