Graphql erabiltzen du (#5)

* feat: graphql erabiltzen du

* node bertsioa jeisten du

* feat: netlify deployments sartzen du

* feat: token-a sortzen du

* chore: Gatsbyren aldagaiak berreskuratzen ditu

* fix: query-a konpontzen du
This commit is contained in:
Aitor Urrutia
2023-06-26 19:28:03 +02:00
committed by GitHub
parent ea68d390bc
commit 41b8661a10
12 changed files with 3466 additions and 3246 deletions

2
.nvmrc
View File

@@ -1 +1 @@
v16 v14

View File

@@ -1,3 +1,4 @@
HOST=0.0.0.0 HOST=0.0.0.0
PORT=1337 PORT=1337
DATABASE_FILENAME=database/migrations/development.db DATABASE_FILENAME=database/migrations/development.db
NETLIFY_DEPLOYMENTS_PLUGIN_ACCESS_TOKEN="<netlify access token>"

29
back/config/plugins.js Normal file
View File

@@ -0,0 +1,29 @@
module.exports = {
graphql: {
config: {
endpoint: "/graphql",
shadowCRUD: true,
playgroundAlways: false,
depthLimit: 7,
amountLimit: 100,
apolloServer: {
introspection: true,
},
},
},
"netlify-deployments": {
enabled: true,
config: {
accessToken: process.env.NETLIFY_DEPLOYMENTS_PLUGIN_ACCESS_TOKEN,
sites: [
{
name: "laba-webgunea",
id: "3e9ed70d-2f4b-4152-9aaf-1129570d01b4",
buildHook:
"https://api.netlify.com/build_hooks/61e338c09f4ef3bf644f86db",
branch: "main", // optional
},
],
},
},
};

View File

@@ -9,14 +9,15 @@
"build": "strapi build", "build": "strapi build",
"strapi": "strapi" "strapi": "strapi"
}, },
"devDependencies": {},
"dependencies": { "dependencies": {
"@strapi/plugin-graphql": "^4.11.2",
"@strapi/plugin-i18n": "4.11.2", "@strapi/plugin-i18n": "4.11.2",
"@strapi/plugin-users-permissions": "4.11.2", "@strapi/plugin-users-permissions": "4.11.2",
"@strapi/strapi": "4.11.2", "@strapi/strapi": "4.11.2",
"pg": "^8.11.0", "pg": "^8.11.0",
"pg-connection-string": "^2.6.0", "pg-connection-string": "^2.6.0",
"sqlite3": "5.1.6" "sqlite3": "5.1.6",
"strapi-plugin-netlify-deployments": "^2.0.0"
}, },
"author": { "author": {
"name": "Laba Sarea" "name": "Laba Sarea"

View File

@@ -2,43 +2,6 @@ require('dotenv').config({
path: `.env.${process.env.NODE_ENV}`, path: `.env.${process.env.NODE_ENV}`,
}); });
const qs = require('qs');
const query = qs.stringify(
{
populate: {
edariBeroak: {
populate: ['alergenoak'],
},
infusioEkologikoak: {
populate: ['alergenoak'],
},
edariHotzak: {
populate: ['alergenoak'],
},
pikatzekoak: {
populate: ['alergenoak'],
},
gozoak: {
populate: ['alergenoak'],
},
anizkoJogurta: {
populate: ['alergenoak'],
},
tostadak: {
populate: ['alergenoak'],
},
konboak: {
populate: ['alergenoak'],
},
},
},
{
encodeValuesOnly: true,
},
);
const apiUrl = process.env.API_URL || 'http://localhost:1337/api';
module.exports = { module.exports = {
plugins: [ plugins: [
'gatsby-plugin-react-helmet', 'gatsby-plugin-react-helmet',
@@ -50,35 +13,28 @@ module.exports = {
}, },
}, },
{ {
resolve: 'gatsby-source-custom-api', resolve: 'gatsby-source-strapi-graphql',
options: { options: {
rootKey: 'kafetegia', apiURL: 'http://localhost:1337',
url: `${apiUrl}/kafetegia?${query}`, collectionTypes: [],
},
},
{
resolve: 'gatsby-source-strapi',
options: {
apiURL: apiUrl,
singleTypes: [ singleTypes: [
'hasiera', 'hasiera',
{ 'kafetegia',
name: 'kafetegia',
queryParams: {
populate: '*',
},
},
'lege-oharra', 'lege-oharra',
'pribatutasun-politika', 'pribatutasun-politika',
], ],
queryLimit: 1000, contentTypes: [],
// Enable/disable cache.
cache: false,
token:
'307442ef6911b9692d6946bf6aac5d910795b56d92063e8a58ace14e31c8ac6ad7b64480ba591689abbad02758da9562e423e1ef1af8b9f303612ffb63f94f567060ea9f690d9d14bce676bdcf985a2a8c95643963ffd6f593490bb4b4ccae51572cbf315e7c823d0f368de2fe113b113986e9943df1a81e6e4228b82cc7cead',
}, },
}, },
'gatsby-transformer-sharp', 'gatsby-transformer-sharp',
'gatsby-plugin-sharp', 'gatsby-plugin-sharp',
'gatsby-plugin-styled-components', 'gatsby-plugin-styled-components',
{ {
resolve: `gatsby-plugin-manifest`, resolve: 'gatsby-plugin-manifest',
options: { options: {
name: 'Laba', name: 'Laba',
short_name: 'Laba', short_name: 'Laba',
@@ -90,7 +46,6 @@ module.exports = {
}, },
}, },
'gatsby-plugin-offline', 'gatsby-plugin-offline',
// 'gatsby-plugin-sitemap',
{ {
resolve: 'gatsby-plugin-react-svg', resolve: 'gatsby-plugin-react-svg',
options: { options: {
@@ -100,7 +55,7 @@ module.exports = {
}, },
}, },
{ {
resolve: `gatsby-plugin-webfonts`, resolve: 'gatsby-plugin-webfonts',
options: { options: {
fonts: { fonts: {
google: [ google: [

View File

@@ -30,9 +30,8 @@
"gatsby-plugin-sitemap": "^5.5.0", "gatsby-plugin-sitemap": "^5.5.0",
"gatsby-plugin-styled-components": "^5.5.0", "gatsby-plugin-styled-components": "^5.5.0",
"gatsby-plugin-webfonts": "^2.2.1", "gatsby-plugin-webfonts": "^2.2.1",
"gatsby-source-custom-api": "^2.3.5",
"gatsby-source-filesystem": "^4.5.1", "gatsby-source-filesystem": "^4.5.1",
"gatsby-source-strapi": "^1.0.2", "gatsby-source-strapi-graphql": "^4.6.2",
"gatsby-transformer-sharp": "^4.5.0", "gatsby-transformer-sharp": "^4.5.0",
"polished": "^4.1.3", "polished": "^4.1.3",
"raw-loader": "^4.0.2", "raw-loader": "^4.0.2",

View File

@@ -14,13 +14,9 @@ import { Oina } from '../components/Oina';
interface DataProps { interface DataProps {
strapiHasiera: { strapiHasiera: {
data: { deskribapena: string;
attributes: { izenburua: string;
deskribapena: string; bazkidetza: string;
izenburua: string;
bazkidetza: string;
};
};
}; };
} }
@@ -28,13 +24,9 @@ const IndexPage: React.VFC<PageProps> = () => {
const { strapiHasiera } = useStaticQuery<DataProps>(graphql` const { strapiHasiera } = useStaticQuery<DataProps>(graphql`
{ {
strapiHasiera { strapiHasiera {
data { deskribapena
attributes { izenburua
deskribapena bazkidetza
izenburua
bazkidetza
}
}
} }
} }
`); `);
@@ -42,21 +34,18 @@ const IndexPage: React.VFC<PageProps> = () => {
return ( return (
<> <>
<Helmet <Helmet
title={`${strapiHasiera.data.attributes.izenburua} | Laba`} title={`${strapiHasiera.izenburua} | Laba`}
htmlAttributes={{ lang: 'eu' }} htmlAttributes={{ lang: 'eu' }}
> >
<meta <meta name="description" content={strapiHasiera.deskribapena} />
name="description"
content={strapiHasiera.data.attributes.deskribapena}
/>
</Helmet> </Helmet>
<GlobalStyles /> <GlobalStyles />
<Gainburua <Gainburua
atala="hasiera" atala="hasiera"
izenburua={strapiHasiera.data.attributes.izenburua} izenburua={strapiHasiera.izenburua}
deskribapena={strapiHasiera.data.attributes.deskribapena} deskribapena={strapiHasiera.deskribapena}
onClick={() => { onClick={() => {
window.location.replace('/#labazkidetza'); window.location.replace('/#labazkidetza');
}} }}
@@ -64,9 +53,7 @@ const IndexPage: React.VFC<PageProps> = () => {
<ContentWrapper id="labazkidetza"> <ContentWrapper id="labazkidetza">
<Container> <Container>
<Deskribapena> <Deskribapena>{strapiHasiera.bazkidetza}</Deskribapena>
{strapiHasiera.data.attributes.bazkidetza}
</Deskribapena>
<IzanLabaWrapper> <IzanLabaWrapper>
<Botoia href="https://forms.gle/wV41CVkRX1JtHsAu9"> <Botoia href="https://forms.gle/wV41CVkRX1JtHsAu9">

View File

@@ -13,12 +13,8 @@ import { Oina } from '../components/Oina';
interface DataProps { interface DataProps {
strapiLegeOharra: { strapiLegeOharra: {
data: { izenburua: string;
attributes: { edukia: string;
izenburua: string;
edukia: string;
};
};
}; };
} }
@@ -26,12 +22,8 @@ const LegeOharra: React.VFC<PageProps> = () => {
const { strapiLegeOharra } = useStaticQuery<DataProps>(graphql` const { strapiLegeOharra } = useStaticQuery<DataProps>(graphql`
{ {
strapiLegeOharra { strapiLegeOharra {
data { izenburua
attributes { edukia
izenburua
edukia
}
}
} }
} }
`); `);
@@ -39,7 +31,7 @@ const LegeOharra: React.VFC<PageProps> = () => {
return ( return (
<> <>
<Helmet <Helmet
title={`${strapiLegeOharra.data.attributes.izenburua} | Laba`} title={`${strapiLegeOharra.izenburua} | Laba`}
htmlAttributes={{ lang: 'eu' }} htmlAttributes={{ lang: 'eu' }}
/> />
@@ -49,7 +41,7 @@ const LegeOharra: React.VFC<PageProps> = () => {
<Container> <Container>
<Atala> <Atala>
<Edukia>{strapiLegeOharra.data.attributes.edukia}</Edukia> <Edukia>{strapiLegeOharra.edukia}</Edukia>
</Atala> </Atala>
</Container> </Container>

View File

@@ -14,12 +14,8 @@ import { Oina } from '../components/Oina';
interface DataProps { interface DataProps {
strapiPribatutasunPolitika: { strapiPribatutasunPolitika: {
data: { izenburua: string;
attributes: { edukia: string;
izenburua: string;
edukia: string;
};
};
}; };
} }
@@ -27,12 +23,8 @@ const PribatutasunPolitika: React.VFC<PageProps> = () => {
const { strapiPribatutasunPolitika } = useStaticQuery<DataProps>(graphql` const { strapiPribatutasunPolitika } = useStaticQuery<DataProps>(graphql`
{ {
strapiPribatutasunPolitika { strapiPribatutasunPolitika {
data { izenburua
attributes { edukia
izenburua
edukia
}
}
} }
} }
`); `);
@@ -40,7 +32,7 @@ const PribatutasunPolitika: React.VFC<PageProps> = () => {
return ( return (
<> <>
<Helmet <Helmet
title={`${strapiPribatutasunPolitika.data.attributes.izenburua} | Laba`} title={`${strapiPribatutasunPolitika.izenburua} | Laba`}
htmlAttributes={{ lang: 'eu' }} htmlAttributes={{ lang: 'eu' }}
/> />
@@ -50,7 +42,7 @@ const PribatutasunPolitika: React.VFC<PageProps> = () => {
<Container> <Container>
<Atala> <Atala>
<Edukia>{strapiPribatutasunPolitika.data.attributes.edukia}</Edukia> <Edukia>{strapiPribatutasunPolitika.edukia}</Edukia>
</Atala> </Atala>
</Container> </Container>

View File

@@ -4,233 +4,220 @@ import { produktuaFactory } from '../domain/factories/produktuaFactory';
import { KafetegiaData } from './KafetegiaData'; import { KafetegiaData } from './KafetegiaData';
interface DataProps { interface DataProps {
kafetegia: { strapiKafetegia: {
data: { deskribapena: string;
attributes: { izenburua: string;
deskribapena: string; edariBeroak: ProduktuaDTO[];
izenburua: string; infusioEkologikoak: ProduktuaDTO[];
edariBeroak: ProduktuaDTO[]; edariHotzak: ProduktuaDTO[];
infusioEkologikoak: ProduktuaDTO[]; pikatzekoak: ProduktuaDTO[];
edariHotzak: ProduktuaDTO[]; gozoak: ProduktuaDTO[];
pikatzekoak: ProduktuaDTO[]; anizkoJogurta: ProduktuaDTO;
gozoak: ProduktuaDTO[]; tostadak: ProduktuaDTO[];
anizkoJogurta: ProduktuaDTO; konboak: ProduktuaDTO[];
tostadak: ProduktuaDTO[];
konboak: ProduktuaDTO[];
};
};
}; };
} }
export function useKafetegiaData(): KafetegiaData { export function useKafetegiaData(): KafetegiaData {
const { const {
kafetegia: { strapiKafetegia: {
data: { izenburua,
attributes: { deskribapena,
izenburua, anizkoJogurta,
deskribapena, edariBeroak,
anizkoJogurta, edariHotzak,
edariBeroak, infusioEkologikoak,
edariHotzak, pikatzekoak,
infusioEkologikoak, gozoak,
pikatzekoak, tostadak,
gozoak, konboak,
tostadak,
konboak,
},
},
}, },
} = useStaticQuery<DataProps>(graphql` } = useStaticQuery<DataProps>(graphql`
{ {
kafetegia { strapiKafetegia {
data { izenburua
attributes { deskribapena
izenburua anizkoJogurta {
deskribapena alergenoak {
anizkoJogurta { apioa
alergenoak { arraina
apioa arrautzak
arraina esnekiak
arrautzak fruituLehorrak
esnekiak glutena
fruituLehorrak kakahueteak
glutena krustazeoak
kakahueteak lupinuak
krustazeoak moluskuak
lupinuak sesamoa
moluskuak soja
sesamoa sulfitoak
soja ziapea
sulfitoak }
ziapea beganoa
} ekologikoa
beganoa izena
ekologikoa prezioa
izena }
prezioa edariBeroak {
id__normalized id
} ekologikoa
edariBeroak { beganoa
id izena
ekologikoa prezioa
beganoa alergenoak {
izena apioa
prezioa arraina
alergenoak { arrautzak
apioa esnekiak
arraina fruituLehorrak
arrautzak glutena
esnekiak kakahueteak
fruituLehorrak krustazeoak
glutena lupinuak
kakahueteak moluskuak
krustazeoak sesamoa
lupinuak soja
moluskuak sulfitoak
sesamoa ziapea
soja }
sulfitoak }
ziapea edariHotzak {
} id
} ekologikoa
edariHotzak { beganoa
id izena
ekologikoa prezioa
beganoa alergenoak {
izena apioa
prezioa arraina
alergenoak { arrautzak
apioa esnekiak
arraina fruituLehorrak
arrautzak glutena
esnekiak kakahueteak
fruituLehorrak krustazeoak
glutena lupinuak
kakahueteak moluskuak
krustazeoak sesamoa
lupinuak soja
moluskuak sulfitoak
sesamoa ziapea
soja }
sulfitoak }
ziapea infusioEkologikoak {
} id
} ekologikoa
infusioEkologikoak { beganoa
id izena
ekologikoa prezioa
beganoa alergenoak {
izena apioa
prezioa arraina
alergenoak { arrautzak
apioa esnekiak
arraina fruituLehorrak
arrautzak glutena
esnekiak kakahueteak
fruituLehorrak krustazeoak
glutena lupinuak
kakahueteak moluskuak
krustazeoak sesamoa
lupinuak soja
moluskuak sulfitoak
sesamoa ziapea
soja }
sulfitoak }
ziapea pikatzekoak {
} id
} ekologikoa
pikatzekoak { beganoa
id izena
ekologikoa prezioa
beganoa alergenoak {
izena apioa
prezioa arraina
alergenoak { arrautzak
apioa esnekiak
arraina fruituLehorrak
arrautzak glutena
esnekiak kakahueteak
fruituLehorrak krustazeoak
glutena lupinuak
kakahueteak moluskuak
krustazeoak sesamoa
lupinuak soja
moluskuak sulfitoak
sesamoa ziapea
soja }
sulfitoak }
ziapea gozoak {
} id
} ekologikoa
gozoak { beganoa
id izena
ekologikoa prezioa
beganoa alergenoak {
izena apioa
prezioa arraina
alergenoak { arrautzak
apioa esnekiak
arraina fruituLehorrak
arrautzak glutena
esnekiak kakahueteak
fruituLehorrak krustazeoak
glutena lupinuak
kakahueteak moluskuak
krustazeoak sesamoa
lupinuak soja
moluskuak sulfitoak
sesamoa ziapea
soja }
sulfitoak }
ziapea tostadak {
} id
} ekologikoa
tostadak { beganoa
id izena
ekologikoa prezioa
beganoa alergenoak {
izena apioa
prezioa arraina
alergenoak { arrautzak
apioa esnekiak
arraina fruituLehorrak
arrautzak glutena
esnekiak kakahueteak
fruituLehorrak krustazeoak
glutena lupinuak
kakahueteak moluskuak
krustazeoak sesamoa
lupinuak soja
moluskuak sulfitoak
sesamoa ziapea
soja }
sulfitoak }
ziapea konboak {
} id
} ekologikoa
konboak { beganoa
id izena
ekologikoa prezioa
beganoa alergenoak {
izena apioa
prezioa arraina
alergenoak { arrautzak
apioa esnekiak
arraina fruituLehorrak
arrautzak glutena
esnekiak kakahueteak
fruituLehorrak krustazeoak
glutena lupinuak
kakahueteak moluskuak
krustazeoak sesamoa
lupinuak soja
moluskuak sulfitoak
sesamoa ziapea
soja
sulfitoak
ziapea
}
}
} }
} }
} }

6105
yarn.lock

File diff suppressed because it is too large Load Diff