Files
laba-webgunea/front/src/content.config.ts

142 lines
3.6 KiB
TypeScript

import { defineCollection } from "astro:content";
import type { Ekintza } from "./models/Ekintza";
import type { Zikloa } from "./models/Zikloa";
import type { OrriBasikoa } from "models/OrriBasikoa";
const ekintzak = defineCollection({
loader: async () => {
const response = await fetch(`${import.meta.env.STRAPI_URL}/graphql`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
query: `
query {
ekintzak(pagination: { limit: -1 }) {
id: documentId
createdAt
slug
elkarlana {
label
erakundeak {
izena
logo {
formats
}
esteka
}
}
hitzordua
deskribapena
izenburua
labakoUzta
mainMedia {
alternativeText
formats
}
sarrera {
deskribapena
id
label
url
}
titularra
zikloa {
izena
slug
}
}
}
`,
}),
});
const json = await response.json();
const { ekintzak } = json.data;
return ekintzak as Ekintza[];
},
});
const zikloak = defineCollection({
loader: async () => {
const response = await fetch(`${import.meta.env.STRAPI_URL}/graphql`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
query: `
query {
zikloak {
id:documentId
slug
izena
deskribapena
ekintzak {
id:documentId
slug
izenburua
hitzordua
mainMedia {
alternativeText
formats
}
}
}
}
`,
}),
});
const json = await response.json();
const { zikloak } = json.data;
return zikloak as Zikloa[];
},
});
const orriBasikoak = defineCollection({
loader: async () => {
const response = await fetch(`${import.meta.env.STRAPI_URL}/graphql`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
query: `
query {
orriBasikoak {
id: documentId
izenburua
slug
deskribapena
edukiLibrea {
... on ComponentParagraphTestua {
type: __typename
id
testua
}
... on ComponentParagraphIrudia {
type: __typename
id
media {
alternativeText
formats
}
}
... on ComponentParagraphCallToAction {
type: __typename
id
url
label
}
}
}
}
`,
}),
});
const json = await response.json();
const { orriBasikoak } = json.data;
return orriBasikoak as OrriBasikoa[];
},
});
export const collections = { ekintzak, zikloak, orriBasikoak };