-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgatsby-node.js
50 lines (44 loc) · 1.15 KB
/
gatsby-node.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
const axios = require("gatsby-unsplash/node_modules/axios");
exports.sourceNodes = async ({ actions }, pluginOptions) => {
// const { createTypes } = actions;
// const typeDefs = `
// type CommentServer implements Node {
// _id: String
// author: String
// string: String
// website: String
// content: String
// slug: String
// createdAt: Date
// updatedAt: Date
// }
// `;
// createTypes(typeDefs);
const { createNode } = actions;
const { username, client_id } = pluginOptions;
try {
const result = await axios({
url: `https://api.unsplash.com/users/${username}/photos?client_id=${client_id}`,
headers: {
"Content-Type": "application/json",
},
});
const response = await result.data;
response.map((photo) => {
convertNode({ photo, createNode });
});
} catch (error) {
console.log("There is a something: ", error);
}
};
function convertNode({ photo, createNode }) {
const digest = JSON.stringify(photo)
createNode({
...photo,
id: photo.id,
internal: {
type: "UnsplashImage",
contentDigest: digest,
},
});
}