Uploading the Repo

This commit is contained in:
Andrean
2022-03-09 22:16:51 +02:00
parent 53a8d56f1e
commit 2726127708
9 changed files with 2269 additions and 0 deletions
+185
View File
@@ -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,
};
+26
View File
@@ -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}`);
});
+1937
View File
File diff suppressed because it is too large Load Diff
+17
View File
@@ -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"
}
}
+5
View File
@@ -0,0 +1,5 @@
const Animal = {
category: (parent, args, { categories }) =>
categories.find((category) => category.id === parent.category),
};
module.exports = { Animal };
+6
View File
@@ -0,0 +1,6 @@
const Category = {
animals: (parent, args, { animals }) =>
animals.filter((animal) => animal.category === parent.id),
};
module.exports = { Category };
+33
View File
@@ -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 };
+10
View File
@@ -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 };
+50
View File
@@ -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 };