Skip to content

Commit f5eb778

Browse files
committed
Simplify data returned from query, add functionality to data layer instead
1 parent 7f1325a commit f5eb778

File tree

2 files changed

+30
-23
lines changed

2 files changed

+30
-23
lines changed
Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
import { queryOptions } from '@tanstack/react-query';
2-
import {
3-
fetchSiteLogs,
4-
SiteLogsParams,
5-
PHPLogFromEndpoint,
6-
ServerLogFromEndpoint,
7-
} from '../../data/site-logs';
2+
import { fetchSiteLogs, SiteLogsParams } from '../../data/site-logs';
83

94
export const siteLogsQuery = ( siteId: number, params: SiteLogsParams ) =>
105
queryOptions( {
@@ -16,18 +11,4 @@ export const siteLogsQuery = ( siteId: number, params: SiteLogsParams ) =>
1611
} ),
1712
enabled: params.start <= params.end,
1813
staleTime: Infinity, // The logs within a specified time range never change.
19-
select: ( data ) => ( {
20-
logs: Array.isArray( data.data.logs )
21-
? data.data.logs.map(
22-
( log: PHPLogFromEndpoint | ServerLogFromEndpoint, key: number ) => ( {
23-
...log,
24-
id: String( key ),
25-
} )
26-
)
27-
: [],
28-
total_results:
29-
typeof data.data.total_results === 'number'
30-
? data.data.total_results
31-
: data.data.total_results?.value ?? 0,
32-
} ),
3314
} );

client/dashboard/data/site-logs.ts

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ export interface SiteLogsParams {
6969
pageIndex?: number;
7070
}
7171

72+
export interface SiteLogsData {
73+
total_results: number;
74+
logs: ( PHPLog | ServerLog )[];
75+
}
76+
7277
export async function fetchSiteLogs( {
7378
siteId,
7479
logType,
@@ -78,7 +83,7 @@ export async function fetchSiteLogs( {
7883
sortOrder,
7984
pageSize,
8085
pageIndex,
81-
}: SiteLogsParams ): Promise< SiteLogsAPIResponse > {
86+
}: SiteLogsParams ): Promise< SiteLogsData > {
8287
const logTypeFragment = logType === LogType.PHP ? 'error-logs' : 'logs';
8388
const path = `/sites/${ siteId }/hosting/${ logTypeFragment }`;
8489

@@ -98,13 +103,34 @@ export async function fetchSiteLogs( {
98103
delete ( queryParams as Record< string, unknown > )[ key ]
99104
);
100105

101-
const logs = await wpcom.req.get(
106+
const response = await wpcom.req.get(
102107
{
103108
path,
104109
apiNamespace: 'wpcom/v2',
105110
},
106111
{ ...queryParams }
107112
);
108113

109-
return logs;
114+
const { data } = response as SiteLogsAPIResponse;
115+
116+
const totalResults =
117+
typeof data.total_results === 'number' ? data.total_results : data.total_results?.value ?? 0;
118+
119+
const logs = Array.isArray( data.logs ) ? data.logs : [];
120+
121+
if ( logType === LogType.PHP ) {
122+
const normalized = ( logs as PHPLogFromEndpoint[] ).map(
123+
( { atomic_site_id, ...logWithoutAtomicId } ) => ( {
124+
...logWithoutAtomicId,
125+
id: `${ logWithoutAtomicId.timestamp }|${ String( logWithoutAtomicId.line ) }`,
126+
} )
127+
);
128+
return { total_results: totalResults, logs: normalized };
129+
}
130+
131+
const normalized = ( logs as ServerLogFromEndpoint[] ).map( ( log ) => ( {
132+
...log,
133+
id: `${ String( log.timestamp ) }|${ log.status }`,
134+
} ) );
135+
return { total_results: totalResults, logs: normalized };
110136
}

0 commit comments

Comments
 (0)