Skip to content

Commit

Permalink
Merge pull request #140 from carrismetropolitana/digital-284-add-dyna…
Browse files Browse the repository at this point in the history
…mic-ogdescription-to-the-lines-and-stops-pages

Updated objects descriptions.
  • Loading branch information
joao-vasconcelos authored Feb 4, 2025
2 parents dbcdebb + eef4acf commit fe89ce8
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 3 deletions.
13 changes: 12 additions & 1 deletion frontend/app/(views)/(website)/lines/[line_id]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import { LinesDetail } from '@/components/lines/LinesDetail';
import { LinesDetailContextProvider } from '@/contexts/LinesDetail.context';
import { Routes } from '@/utils/routes';
import { type ApiResponse } from '@carrismetropolitana/api-types/common';
import { type Locality } from '@carrismetropolitana/api-types/locations';
import { type Line } from '@carrismetropolitana/api-types/network';
import { type Metadata } from 'next';

Expand All @@ -22,16 +24,25 @@ export async function generateMetadata({ params }): Promise<Metadata> {
const allLinesResponse = await fetch(`${Routes.API}/lines`);
const allLinesData: Line[] = await allLinesResponse.json();

const fetchedLocalitiesResponse = await fetch(`${Routes.API}/locations/localities`);
const fetchedLocalitiesData: ApiResponse<Locality[]> = await fetchedLocalitiesResponse.json();
const allLocalitiesData: Locality[] = fetchedLocalitiesData.status === 'success' ? fetchedLocalitiesData.data : [];

//
// C. Transform data

const lineData = allLinesData.find(item => item.id === line_id);

const goesTroughString = allLocalitiesData
.filter(item => lineData?.locality_ids?.includes(item.id))
.map(item => item.name)
.join(', ');

//
// D. Render components

return {
description: `Horários em tempo real da linha ${lineData?.short_name}.`,
description: `Horários planeados e em tempo real da linha ${lineData?.short_name}. Esta linha passa por ${goesTroughString}.`,
title: `${lineData?.short_name} | ${lineData?.long_name}`,
};

Expand Down
12 changes: 10 additions & 2 deletions frontend/app/(views)/(website)/stops/[stop_id]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import { StopsDetail } from '@/components/stops/StopsDetail';
import { StopsDetailContextProvider } from '@/contexts/StopsDetail.context';
import { Routes } from '@/utils/routes';
import { type Stop } from '@carrismetropolitana/api-types/network';
import { type Line, type Stop } from '@carrismetropolitana/api-types/network';
import { type Metadata } from 'next';

/* * */
Expand All @@ -22,16 +22,24 @@ export async function generateMetadata({ params }): Promise<Metadata> {
const allStopsResponse = await fetch(`${Routes.API}/stops`);
const allStopsData: Stop[] = await allStopsResponse.json();

const allLinesResponse = await fetch(`${Routes.API}/lines`);
const allLinesData: Line[] = await allLinesResponse.json();

//
// C. Transform data

const stopData = allStopsData.find(item => item.id === stop_id);
const linesAtThisStopString = allLinesData
.filter(item => stopData?.line_ids.includes(item.id))
.sort((a, b) => a.id.localeCompare(b.id))
.map(item => item.short_name)
.join(', ');

//
// D. Render components

return {
description: `Horários em tempo real na paragem #${stopData?.id}`,
description: `Horários planeados e em tempo real na paragem #${stopData?.id}. Nesta paragem passam as linhas ${linesAtThisStopString}.`,
title: stopData?.long_name,
};

Expand Down

0 comments on commit fe89ce8

Please sign in to comment.