1
1
---
2
2
import { client } from " ../../.tina/__generated__/client.js"
3
- import { Debug } from ' astro:components'
4
3
import Layout from " ../layouts/Layout.astro" ;
5
- import { getServices } from " ../../../src/services/data " ;
4
+ import { Service , ServiceConnectionEdges } from " ../../.tina/__generated__/types " ;
6
5
7
- const services = await getServices ();
8
- const services2 = await client .queries .service ({relativePath: ' eCamp.yaml' })
6
+ const serviceResponse = await client .queries .serviceConnection ()
7
+ // @ts-ignore
8
+ const serviceEdges: ServiceConnectionEdges [] = serviceResponse .data .serviceConnection .edges || []
9
+
10
+ const services = serviceEdges .map ((service : ServiceConnectionEdges ) => {
11
+ const lifecycle = service .node ?.lifecycle || [];
12
+ const length: number = lifecycle ?.length || 0
13
+ const productOwner = service .node ?.product_owner ?.name ;
14
+ const dateString: string = service .node ?.last_updated ? new Date (service .node ?.last_updated ).toLocaleDateString (' de' ) : ' unknown'
15
+
16
+ return {
17
+ id: service .node ?.id ,
18
+ name: service .node ?.name ,
19
+ status: lifecycle [length - 1 ]?.state ,
20
+ product_owner: productOwner ,
21
+ lastUpdated: dateString ,
22
+ }
23
+ });
9
24
---
10
25
11
26
<Layout title =" Services" >
@@ -18,26 +33,26 @@ const services2 = await client.queries.service({relativePath: 'eCamp.yaml'})
18
33
<tr >
19
34
<td >Name</td >
20
35
<td >Status</td >
36
+ <td >Product Owner</td >
21
37
<td >last updated</td >
22
38
</tr >
23
- </thead >$<Debug values ={ services2 .data .service .has_sla } >
24
- {
25
- Array .from (services .values ()).map ((service ) => (
26
- <tr >
27
- <td >
28
- <a class = " text-brombeer hover:underscore" href = { ` /it-landscape/services/${service .id } ` } >
39
+ </thead >
40
+ { services ?.map ((service ) => <tr >
41
+ <td >
42
+ <a class = " text-brombeer hover:underscore" href = { ` /it-landscape/services/${service .name } ` } >
29
43
{ service .name }
30
44
</a >
31
- </td >
32
- <td >
33
- <span class = " bg-green-100 text-green-800 text-xs font-medium mr-2 px-2.5 py-0.5 rounded" >{ service .lifecycle [service .lifecycle .length - 1 ].state } </span >
34
- </td >
35
- <td >
36
- { new Date (service .last_updated ).toLocaleDateString (' de' )}
37
- </td >
38
- </tr >
39
- ))
40
- }
45
+ </td >
46
+ <td >
47
+ <span class = " bg-green-100 text-green-800 text-xs font-medium mr-2 px-2.5 py-0.5 rounded" >{ service .status } </span >
48
+ </td >
49
+ <td >
50
+ { service .product_owner }
51
+ </td >
52
+ <td >
53
+ { service .lastUpdated }
54
+ </td >
55
+ </tr >) }
41
56
</table >
42
57
</main >
43
58
</Layout >
0 commit comments