Uploading the Repo
This commit is contained in:
@@ -0,0 +1,185 @@
|
||||
const mainCards = [
|
||||
{
|
||||
title: "Recently Viewed",
|
||||
image: "lion",
|
||||
},
|
||||
{
|
||||
title: "Looking for a Gift?",
|
||||
image: "penguin",
|
||||
},
|
||||
{
|
||||
title: "Best Behaved",
|
||||
image: "cat",
|
||||
},
|
||||
];
|
||||
|
||||
const animals = [
|
||||
{
|
||||
id: "1",
|
||||
image: "lion",
|
||||
title:
|
||||
"7-year Male Lion with Large Well Kept Main with a Beautiful Yellow/Brownish Color",
|
||||
rating: 5.0,
|
||||
price: "23,322",
|
||||
description: [
|
||||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
|
||||
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.",
|
||||
"Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
|
||||
],
|
||||
stock: 14,
|
||||
onSale: false,
|
||||
slug: "lion",
|
||||
category: "1",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
image: "cham",
|
||||
title:
|
||||
"Beautiful Highly Specialized Clade Lizard with 202 Different Color Combinations",
|
||||
price: "1,522",
|
||||
description: [
|
||||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
|
||||
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.",
|
||||
"Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
|
||||
],
|
||||
stock: 14,
|
||||
onSale: false,
|
||||
slug: "chameleons",
|
||||
category: "2",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
image: "dolphin",
|
||||
title:
|
||||
"Fast and Swift Aquatic Dolphin with Great Accordatic Skills in the Air",
|
||||
price: "101,432",
|
||||
description: [
|
||||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
|
||||
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.",
|
||||
"Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
|
||||
],
|
||||
stock: 14,
|
||||
onSale: false,
|
||||
slug: "dolphin",
|
||||
category: "3",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
image: "gorilla",
|
||||
title:
|
||||
"Black Haired Gorilla with Broad Chest and Shoulder. Would be an Excellent Spot at the Gym",
|
||||
price: "47,775",
|
||||
description: [
|
||||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
|
||||
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.",
|
||||
"Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
|
||||
],
|
||||
stock: 14,
|
||||
onSale: false,
|
||||
slug: "gorilla",
|
||||
category: "4",
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
image: "horse",
|
||||
title:
|
||||
"17-year Female Horse with a Luxury Brown Exterior and a Beautiful Red Interior",
|
||||
price: "13,432",
|
||||
description: [
|
||||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
|
||||
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.",
|
||||
"Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
|
||||
],
|
||||
stock: 14,
|
||||
onSale: false,
|
||||
slug: "horse",
|
||||
category: "4",
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
image: "kang",
|
||||
title:
|
||||
"Large Kangaroo with Muscular Leg and Tail and Pointly Teeth and Ears",
|
||||
price: "42,453",
|
||||
description: [
|
||||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
|
||||
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.",
|
||||
"Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
|
||||
],
|
||||
stock: 14,
|
||||
onSale: false,
|
||||
slug: "kangaroo",
|
||||
category: "4",
|
||||
},
|
||||
{
|
||||
id: "7",
|
||||
image: "ele",
|
||||
title: "Grey Male 17 year Elephant with 12 Meter Truck and 5 Meter Tusk",
|
||||
price: "101,432",
|
||||
description: [
|
||||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
|
||||
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.",
|
||||
"Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
|
||||
],
|
||||
stock: 14,
|
||||
onSale: false,
|
||||
slug: "elephant",
|
||||
category: "4",
|
||||
},
|
||||
{
|
||||
id: "8",
|
||||
image: "donkey",
|
||||
title: "This is the Voice Actor from the Dockey for Shrek.",
|
||||
price: "179,731",
|
||||
description: [
|
||||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
|
||||
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.",
|
||||
"Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
|
||||
],
|
||||
stock: 14,
|
||||
onSale: false,
|
||||
slug: "donkey",
|
||||
category: "4",
|
||||
},
|
||||
];
|
||||
|
||||
const categories = [
|
||||
{
|
||||
id: "1",
|
||||
image: "tiger",
|
||||
category: "cats",
|
||||
slug: "cats",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
image: "snake",
|
||||
category: "reptiles",
|
||||
slug: "reptiles",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
image: "stingray",
|
||||
category: "ocean creatures",
|
||||
slug: "ocean-creatures",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
image: "donkey",
|
||||
category: "mammals",
|
||||
slug: "mammals",
|
||||
},
|
||||
];
|
||||
|
||||
module.exports = {
|
||||
mainCards,
|
||||
animals,
|
||||
categories,
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
const { ApolloServer } = require("apollo-server");
|
||||
const { animals, mainCards, categories } = require("./db");
|
||||
const { typeDefs } = require("./schema");
|
||||
const { Animal } = require("./resolvers/Animal");
|
||||
const { Category } = require("./resolvers/Category");
|
||||
const { Query } = require("./resolvers/Query");
|
||||
const { Mutation } = require("./resolvers/Mutation");
|
||||
|
||||
const server = new ApolloServer({
|
||||
typeDefs,
|
||||
resolvers: {
|
||||
Query,
|
||||
Animal,
|
||||
Category,
|
||||
Mutation
|
||||
},
|
||||
context: {
|
||||
animals,
|
||||
mainCards,
|
||||
categories,
|
||||
},
|
||||
});
|
||||
|
||||
server.listen().then(({ url }) => {
|
||||
console.log(`🚀 Server ready at ${url}`);
|
||||
});
|
||||
Generated
+1937
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "server",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"start": "nodemon index.js"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"apollo-server": "^3.6.3",
|
||||
"graphql": "^16.3.0",
|
||||
"uuid": "^8.3.2"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
const Animal = {
|
||||
category: (parent, args, { categories }) =>
|
||||
categories.find((category) => category.id === parent.category),
|
||||
};
|
||||
module.exports = { Animal };
|
||||
@@ -0,0 +1,6 @@
|
||||
const Category = {
|
||||
animals: (parent, args, { animals }) =>
|
||||
animals.filter((animal) => animal.category === parent.id),
|
||||
};
|
||||
|
||||
module.exports = { Category };
|
||||
@@ -0,0 +1,33 @@
|
||||
const { v4 } = require("uuid");
|
||||
const { animals } = require("../db");
|
||||
const Mutation = {
|
||||
addAnimal: (
|
||||
parent,
|
||||
{ image, title, rating, price, description, slug, stock, onSale, category },
|
||||
{ animals }
|
||||
) => {
|
||||
let newAnimal = {
|
||||
id: v4(),
|
||||
image,
|
||||
title,
|
||||
rating,
|
||||
price,
|
||||
description,
|
||||
slug,
|
||||
stock,
|
||||
onSale,
|
||||
category,
|
||||
};
|
||||
animals.push(newAnimal);
|
||||
return newAnimal;
|
||||
},
|
||||
removeAnimal: (parent, { id }, { animals }) => {
|
||||
let index = animals.findIndex((animal) => {
|
||||
return animal.id === id;
|
||||
});
|
||||
animals.splice(index, 1);
|
||||
return true;
|
||||
},
|
||||
};
|
||||
|
||||
module.exports = { Mutation };
|
||||
@@ -0,0 +1,10 @@
|
||||
const Query = {
|
||||
mainCards: (parent, args, { mainCards }) => mainCards,
|
||||
animals: (parent, args, { animals }) => animals,
|
||||
animal: (parent, args, { animals }) =>
|
||||
animals.find((animal) => animal.slug === args.slug),
|
||||
categories: () => categories,
|
||||
category: (parent, args, { categories }) =>
|
||||
categories.find((category) => category.slug === args.slug),
|
||||
};
|
||||
module.exports = { Query };
|
||||
@@ -0,0 +1,50 @@
|
||||
const { gql } = require("apollo-server");
|
||||
|
||||
const typeDefs = gql`
|
||||
type MainCard {
|
||||
title: String!
|
||||
image: String!
|
||||
}
|
||||
type Animal {
|
||||
id: ID!
|
||||
image: String!
|
||||
title: String!
|
||||
rating: Float
|
||||
price: String!
|
||||
description: [String]!
|
||||
slug: String!
|
||||
stock: Int!
|
||||
onSale: Boolean
|
||||
category: Category
|
||||
}
|
||||
type Category {
|
||||
id: ID!
|
||||
image: String!
|
||||
category: String!
|
||||
slug: String!
|
||||
animals: [Animal!]!
|
||||
}
|
||||
type Query {
|
||||
mainCards: [MainCard]
|
||||
animals: [Animal!]!
|
||||
animal(slug: String!): Animal
|
||||
categories: [Category!]!
|
||||
category(slug: String!): Category
|
||||
}
|
||||
type Mutation {
|
||||
addAnimal(
|
||||
image: String!
|
||||
title: String!
|
||||
rating: Float
|
||||
price: String!
|
||||
description: [String]!
|
||||
slug: String!
|
||||
stock: Int!
|
||||
onSale: Boolean
|
||||
category: String
|
||||
): Animal
|
||||
removeAnimal(id: ID!): Boolean
|
||||
}
|
||||
`;
|
||||
|
||||
module.exports = { typeDefs };
|
||||
Reference in New Issue
Block a user