Skip to content

Commit 6f0d79a

Browse files
committed
add Apollo Fetch and graphql-cool endpoint
1 parent 638928e commit 6f0d79a

File tree

3 files changed

+129
-41
lines changed

3 files changed

+129
-41
lines changed

packages/gatsby-theme/gatsby-node.js

Lines changed: 37 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,25 @@ const {
44
getTutorialOverviewSlug,
55
} = require('./src/utils/getTutorialSlug.js');
66

7-
const { Mutation } = require('react-apollo');
8-
const { gql } = require('graphql-tag');
7+
const { createApolloFetch } = require('apollo-fetch');
8+
9+
const createPrismaNodes = async variables => {
10+
const uri = 'https://api.graph.cool/simple/v1/HowtoGraphQL2';
11+
const apolloFetch = createApolloFetch({ uri });
12+
const query = `
13+
mutation createTutorial($gatsbyID: String!, $name: String!, $numberofChapters: Int!) {
14+
createTutorial(gatsbyID: $gatsbyID, name: $name, numberofChapters: $numberofChapters, numberOfStudents: 9, upvotes:10){
15+
id
16+
}
17+
}`;
18+
return apolloFetch({ query, variables })
19+
.then(response => {
20+
console.log(response);
21+
})
22+
.catch(error => {
23+
console.log(error);
24+
});
25+
};
926

1027
exports.createPages = async ({ graphql, actions }) => {
1128
const { createPage } = actions;
@@ -32,32 +49,32 @@ exports.createPages = async ({ graphql, actions }) => {
3249
}
3350
`).catch(error => console.error(error));
3451

35-
const UPSERT_TUTORIAL = gql`
36-
mutation UpsertTutorial(
37-
$gatsbyID: String!
38-
$name: String!
39-
$numberofChapters: Int!
40-
) {
41-
upsertTutorial(
42-
gatsbyId: $gatsbyID
43-
name: $name
44-
numberofChapters: $numberofChapters
45-
) {
46-
gatsbyId
47-
name
48-
numberofChapters
49-
}
50-
}
51-
`;
52-
5352
data.allMdx.edges.forEach(({ node }) => {
5453
const tutorialPath = getTutorialSlug(node.fileAbsolutePath);
5554
const overviewPageSlug = getTutorialOverviewSlug(node.fileAbsolutePath);
5655
const overviewTemplate = require.resolve(
5756
'./src/components/templates/TutorialOverview.tsx',
5857
);
58+
5959
//TODO: find a better way to ID posts & overviews Also a better way to query for them
6060
if (node.frontmatter.tutorialTitle) {
61+
//counts the number of chapters in each tutorial by counting how many files
62+
//there are that contain the overviewpage slug. Subtract one for the overview page.
63+
console.log(data.allMdx.edges.length);
64+
65+
const numberofChapters = data.allMdx.edges.filter(chapterNode => {
66+
// console.log(chapterNode.node.fileAbsolutePath);
67+
// console.log(overviewPageSlug);
68+
return chapterNode.node.fileAbsolutePath.includes(overviewPageSlug);
69+
});
70+
71+
const variables = {
72+
gatsbyID: node.frontmatter.id,
73+
name: node.frontmatter.tutorialTitle,
74+
numberofChapters: numberofChapters.length - 1,
75+
};
76+
77+
createPrismaNodes(variables);
6178
return createPage({
6279
path: overviewPageSlug,
6380
component: overviewTemplate,

packages/gatsby-theme/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
"@types/react-copy-to-clipboard": "^4.2.6",
4747
"apollo-cache-inmemory": "^1.5.1",
4848
"apollo-client": "^2.5.1",
49+
"apollo-fetch": "^0.7.0",
4950
"apollo-link-context": "^1.0.17",
5051
"apollo-link-http": "^1.5.14",
5152
"babel-plugin-styled-components": "^1.10.0",

yarn.lock

Lines changed: 91 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2077,6 +2077,13 @@ [email protected]:
20772077
node-fetch "^2.2.0"
20782078
sha.js "^2.4.11"
20792079

2080+
apollo-fetch@^0.7.0:
2081+
version "0.7.0"
2082+
resolved "https://registry.yarnpkg.com/apollo-fetch/-/apollo-fetch-0.7.0.tgz#63c255a0ccb1b4c473524d8f9b536d72438bd3e7"
2083+
integrity sha512-0oHsDW3Zxx+Of1wuqcOXruNj4Kv55WN69tkIjwkCQDEIrgCpgA2scjChFsgflSVMy/1mkTKCY1Mc0TYJhNRzmw==
2084+
dependencies:
2085+
cross-fetch "^1.0.0"
2086+
20802087
20812088
version "0.2.0"
20822089
resolved "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.2.0.tgz#74d3a84b84fa745716363a38e4ff1022f90ab5e1"
@@ -3715,6 +3722,15 @@ cliui@^4.0.0:
37153722
strip-ansi "^4.0.0"
37163723
wrap-ansi "^2.0.0"
37173724

3725+
cliui@^5.0.0:
3726+
version "5.0.0"
3727+
resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
3728+
integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
3729+
dependencies:
3730+
string-width "^3.1.0"
3731+
strip-ansi "^5.2.0"
3732+
wrap-ansi "^5.1.0"
3733+
37183734
37193735
version "1.0.2"
37203736
resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b"
@@ -4170,6 +4186,14 @@ [email protected]:
41704186
node-fetch "2.1.2"
41714187
whatwg-fetch "2.0.4"
41724188

4189+
cross-fetch@^1.0.0:
4190+
version "1.1.1"
4191+
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-1.1.1.tgz#dede6865ae30f37eae62ac90ebb7bdac002b05a0"
4192+
integrity sha512-+VJE04+UfxxmBfcnmAu/lKor53RUCx/1ilOti4p+JgrnLQ4AZZIRoe2OEd76VaHyWQmQxqKnV+TaqjHC4r0HWw==
4193+
dependencies:
4194+
node-fetch "1.7.3"
4195+
whatwg-fetch "2.0.3"
4196+
41734197
[email protected], cross-spawn@^5.0.1, cross-spawn@^5.1.0:
41744198
version "5.1.0"
41754199
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
@@ -6408,6 +6432,11 @@ get-caller-file@^1.0.1:
64086432
version "1.0.3"
64096433
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
64106434

6435+
get-caller-file@^2.0.1:
6436+
version "2.0.5"
6437+
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
6438+
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
6439+
64116440
get-own-enumerable-property-symbols@^3.0.0:
64126441
version "3.0.0"
64136442
resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203"
@@ -9789,13 +9818,22 @@ next-tick@^1.0.0:
97899818
version "1.0.0"
97909819
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
97919820

9792-
9793-
version "0.3.5"
9794-
resolved "https://registry.yarnpkg.com/nexus-prisma/-/nexus-prisma-0.3.5.tgz#b4e662d368ede3d1a8e04ed2400d0b576af06e06"
9821+
9822+
version "0.3.7"
9823+
resolved "https://registry.yarnpkg.com/nexus-prisma/-/nexus-prisma-0.3.7.tgz#d2a556616bb6d100c1a0b9daff89fd4394666a29"
9824+
integrity sha512-jkqO0ApnctX8pIzhspsUqaoBEuviWNkCBuz/S9fakC/MqDNKZkLKog519L6BAALmm5YrHts1x2+6tJvCE8MiGQ==
9825+
9826+
9827+
version "0.11.6"
9828+
resolved "https://registry.yarnpkg.com/nexus/-/nexus-0.11.6.tgz#2d2b7c30a0c6816ecbf671ba3f826a67b1488f4e"
9829+
integrity sha512-H9cSPGpPZejniI77O429fUVKUqEzFr/n6Q5poCbixpPsisQwADAI8C6GrTLe7ojFCfVcUHhhpEaDHyWg2+bSYA==
9830+
dependencies:
9831+
tslib "^1.9.3"
97959832

9796-
9797-
version "0.11.3"
9798-
resolved "https://registry.yarnpkg.com/nexus/-/nexus-0.11.3.tgz#3d2c0a14418ad8b51eb104e95714fb0f8e5e7222"
9833+
nexus@^0.11.7:
9834+
version "0.11.7"
9835+
resolved "https://registry.yarnpkg.com/nexus/-/nexus-0.11.7.tgz#db580f1d6feb5e590fe395d9cd218c969c46b9ed"
9836+
integrity sha512-d5iD9jKn8n8tfFerisxYmKlrJmj5omPS49+s1xv2O2q5GiagDH4ySxajg0vsf0EMT2K+OvlCuSxT0xarS1gqKw==
97999837
dependencies:
98009838
tslib "^1.9.3"
98019839

@@ -9829,6 +9867,13 @@ node-eta@^0.9.0:
98299867
version "0.9.0"
98309868
resolved "https://registry.yarnpkg.com/node-eta/-/node-eta-0.9.0.tgz#9fb0b099bcd2a021940e603c64254dc003d9a7a8"
98319869

9870+
[email protected], node-fetch@^1.0.1:
9871+
version "1.7.3"
9872+
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
9873+
dependencies:
9874+
encoding "^0.1.11"
9875+
is-stream "^1.0.1"
9876+
98329877
98339878
version "2.1.2"
98349879
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5"
@@ -9837,13 +9882,6 @@ [email protected]:
98379882
version "2.3.0"
98389883
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5"
98399884

9840-
node-fetch@^1.0.1:
9841-
version "1.7.3"
9842-
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
9843-
dependencies:
9844-
encoding "^0.1.11"
9845-
is-stream "^1.0.1"
9846-
98479885
node-fetch@^2.1.2, node-fetch@^2.2.0:
98489886
version "2.4.1"
98499887
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.4.1.tgz#b2e38f1117b8acbedbe0524f041fb3177188255d"
@@ -10279,7 +10317,7 @@ os-locale@^2.0.0:
1027910317
lcid "^1.0.0"
1028010318
mem "^1.1.0"
1028110319

10282-
os-locale@^3.0.0:
10320+
os-locale@^3.0.0, os-locale@^3.1.0:
1028310321
version "3.1.0"
1028410322
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
1028510323
dependencies:
@@ -14600,6 +14638,11 @@ whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
1460014638
dependencies:
1460114639
iconv-lite "0.4.24"
1460214640

14641+
14642+
version "2.0.3"
14643+
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
14644+
integrity sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=
14645+
1460314646
1460414647
version "2.0.4"
1460514648
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f"
@@ -14803,7 +14846,7 @@ wrap-ansi@^4.0.0:
1480314846
string-width "^2.1.1"
1480414847
strip-ansi "^4.0.0"
1480514848

14806-
wrap-ansi@^5.0.0:
14849+
wrap-ansi@^5.0.0, wrap-ansi@^5.1.0:
1480714850
version "5.1.0"
1480814851
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
1480914852
dependencies:
@@ -14946,6 +14989,14 @@ yargs-parser@^11.1.1:
1494614989
camelcase "^5.0.0"
1494714990
decamelize "^1.2.0"
1494814991

14992+
yargs-parser@^13.1.0:
14993+
version "13.1.0"
14994+
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.0.tgz#7016b6dd03e28e1418a510e258be4bff5a31138f"
14995+
integrity sha512-Yq+32PrijHRri0vVKQEm+ys8mbqWjLiwQkMFNXEENutzLPP0bE4Lcd4iA3OQY5HF+GD3xXxf0MEHb8E4/SA3AA==
14996+
dependencies:
14997+
camelcase "^5.0.0"
14998+
decamelize "^1.2.0"
14999+
1494915000
yargs-parser@^7.0.0:
1495015001
version "7.0.0"
1495115002
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
@@ -14969,6 +15020,23 @@ [email protected], yargs@^12.0.2, yargs@^12.0.5:
1496915020
y18n "^3.2.1 || ^4.0.0"
1497015021
yargs-parser "^11.1.1"
1497115022

15023+
yargs@^13.0.0:
15024+
version "13.2.4"
15025+
resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83"
15026+
integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==
15027+
dependencies:
15028+
cliui "^5.0.0"
15029+
find-up "^3.0.0"
15030+
get-caller-file "^2.0.1"
15031+
os-locale "^3.1.0"
15032+
require-directory "^2.1.1"
15033+
require-main-filename "^2.0.0"
15034+
set-blocking "^2.0.0"
15035+
string-width "^3.0.0"
15036+
which-module "^2.0.0"
15037+
y18n "^4.0.0"
15038+
yargs-parser "^13.1.0"
15039+
1497215040
yargs@^9.0.0:
1497315041
version "9.0.1"
1497415042
resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c"
@@ -15012,11 +15080,13 @@ yn@^3.0.0:
1501215080
version "3.1.0"
1501315081
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.0.tgz#fcbe2db63610361afcc5eb9e0ac91e976d046114"
1501415082

15015-
15016-
version "0.0.18"
15017-
resolved "https://registry.yarnpkg.com/yoga/-/yoga-0.0.18.tgz#e6a64191552a5330370c844266b90bc08abbd99a"
15083+
yoga@^0.0.20:
15084+
version "0.0.20"
15085+
resolved "https://registry.yarnpkg.com/yoga/-/yoga-0.0.20.tgz#9f617196a34b80c9a1c40034dd68ad2e4bede027"
15086+
integrity sha512-0PguNA2i3yznCeM0Iwzu1V0BIoxlI5pCFkDTLEEZSo3XcNsUUOPCOVlm1iC2qeHrDdFrXtCCHbwb6nM+0WPBaQ==
1501815087
dependencies:
1501915088
apollo-server-express "^2.4.8"
15089+
callsite "^1.0.0"
1502015090
chalk "^2.4.2"
1502115091
chokidar "^2.1.1"
1502215092
create-yoga "0.0.2"
@@ -15025,14 +15095,14 @@ [email protected]:
1502515095
graphql "^0.12.0 || ^0.13.0 || ^14.0.0"
1502615096
inquirer "^6.2.1"
1502715097
js-yaml "^3.12.1"
15028-
nexus "0.11.3"
15029-
nexus-prisma "0.3.5"
15098+
nexus "0.11.6"
15099+
nexus-prisma "0.3.7"
1503015100
pluralize "^7.0.0"
1503115101
prettier "^1.16.4"
1503215102
pretty-error "2.2.0-rc.1"
1503315103
ts-node "^8.0.2"
1503415104
typescript "^3.3.3333"
15035-
yargs "^12.0.5"
15105+
yargs "^13.0.0"
1503615106

1503715107
yurnalist@^1.0.2:
1503815108
version "1.0.5"

0 commit comments

Comments
 (0)