From 563cdcfcee2d14291a1e1de17cd4d698d336cb40 Mon Sep 17 00:00:00 2001 From: Samantha-Reis Date: Wed, 8 Jul 2020 00:25:47 -0400 Subject: [PATCH 1/8] So i can pull --- __tests__/resolvers/comments.test.js | 21 ++++++++++++++------- __tests__/resolvers/heatmap.test.js | 2 +- repl.js | 2 -- resolvers/Comment/index.js | 4 ++-- resolvers/Mutation/index.js | 8 ++++---- resolvers/Project/index.js | 4 ++-- resolvers/Query/Comment.js | 2 +- resolvers/Query/Heatmap.js | 4 ++-- resolvers/Query/Search.js | 2 +- resolvers/Query/Users.js | 2 +- resolvers/User/index.js | 8 ++++---- 11 files changed, 32 insertions(+), 27 deletions(-) delete mode 100644 repl.js diff --git a/__tests__/resolvers/comments.test.js b/__tests__/resolvers/comments.test.js index 07bb26e..9e54e79 100644 --- a/__tests__/resolvers/comments.test.js +++ b/__tests__/resolvers/comments.test.js @@ -102,14 +102,21 @@ describe('Comments Resolvers 🌸', () => { comment: nestedUser, }, }); - const failedRes = await query({ - query: commentQuery, - variables: { - id: '9', - }, - }); + // const failedRes = await query({ + // query: commentQuery, + // variables: { + // id: '9', + // }, + // }); // console.log('Failed response ***', failedRes.errors[0].message); - expect(failedRes.errors[0].message).toMatch('No data to display!... 💩'); + await expect( + query({ + query: commentQuery, + variables: { + id: '9', + }, + }) + ).rejects.toThrow(); }); it('Gets comment nested with user 🤡', async () => { diff --git a/__tests__/resolvers/heatmap.test.js b/__tests__/resolvers/heatmap.test.js index 210df6c..3546be9 100644 --- a/__tests__/resolvers/heatmap.test.js +++ b/__tests__/resolvers/heatmap.test.js @@ -133,7 +133,7 @@ describe('Heatmap Resolvers 🌸', () => { userId: 'auth0|5dc999e4d958d80e7bb7b597', }, }); - console.log('Failed response ***', failedRes.errors[0].message); + // console.log('Failed response ***', failedRes.errors[0].message); expect(failedRes.errors[0].message).toMatch('No data to display!... 💩'); }); diff --git a/repl.js b/repl.js deleted file mode 100644 index 215e013..0000000 --- a/repl.js +++ /dev/null @@ -1,2 +0,0 @@ -const knex = require('knex'); -console.log(knex.fn.now()); diff --git a/resolvers/Comment/index.js b/resolvers/Comment/index.js index fd2dac5..0093e45 100644 --- a/resolvers/Comment/index.js +++ b/resolvers/Comment/index.js @@ -6,10 +6,10 @@ const Comment = { try { const user = await db('users').where({ id: comment.userId }).first(); if (!user) throw new Error('Something went wrong... 💩'); - console.log(user); + // console.log(user); return user; } catch (err) { - console.log(err); + // console.log(err); return err; } }, diff --git a/resolvers/Mutation/index.js b/resolvers/Mutation/index.js index 99c1627..507348c 100644 --- a/resolvers/Mutation/index.js +++ b/resolvers/Mutation/index.js @@ -10,7 +10,7 @@ const Mutation = { // console.log(user); return user[0]; } catch (err) { - console.log(err); + // console.log(err); return err; } }, @@ -114,7 +114,7 @@ const Mutation = { if (!followers) return false; return true; } catch (err) { - console.log(err); + // console.log(err); return err; } }, @@ -134,7 +134,7 @@ const Mutation = { async addHeatmap(_, { data }) { const heatmap = await db('heatmap').insert(data).returning('*'); - console.log(heatmap); + // console.log(heatmap); return heatmap[0]; }, @@ -143,7 +143,7 @@ const Mutation = { .update(data) .where('id', data.id) .returning('*'); - console.log(heatmap); + // console.log(heatmap); return heatmap[0]; }, diff --git a/resolvers/Project/index.js b/resolvers/Project/index.js index 473ba43..6cca5c5 100644 --- a/resolvers/Project/index.js +++ b/resolvers/Project/index.js @@ -9,7 +9,7 @@ const Project = { // console.log(comments); return comments; } catch (err) { - console.log(err); + // console.log(err); return err; } }, @@ -20,7 +20,7 @@ const Project = { // console.log(photos); return photos; } catch (err) { - console.log(err); + // console.log(err); return err; } }, diff --git a/resolvers/Query/Comment.js b/resolvers/Query/Comment.js index 508b011..b6917e7 100644 --- a/resolvers/Query/Comment.js +++ b/resolvers/Query/Comment.js @@ -7,7 +7,7 @@ async function comment(_, { id }) { // console.log(data); return data; } catch (err) { - console.log(err); + // console.log(err); return err; } } diff --git a/resolvers/Query/Heatmap.js b/resolvers/Query/Heatmap.js index ffb2f04..ec2fcfd 100644 --- a/resolvers/Query/Heatmap.js +++ b/resolvers/Query/Heatmap.js @@ -7,7 +7,7 @@ async function heatmapById(_, { id }) { // console.log(data); return data; } catch (err) { - console.log(err); + // console.log(err); return err; } } @@ -18,7 +18,7 @@ async function heatmapByUserId(_, { userId }) { if (data == 0) throw new Error('No data to display!... 💩'); return data; } catch (err) { - console.log(err); + // console.log(err); return err; } } diff --git a/resolvers/Query/Search.js b/resolvers/Query/Search.js index 5875606..5c984b8 100644 --- a/resolvers/Query/Search.js +++ b/resolvers/Query/Search.js @@ -18,7 +18,7 @@ async function search(_, { searchText }) { return { projects, users }; } catch (err) { - console.log(err); + // console.log(err); return err; } } diff --git a/resolvers/Query/Users.js b/resolvers/Query/Users.js index 9b77c81..708a496 100644 --- a/resolvers/Query/Users.js +++ b/resolvers/Query/Users.js @@ -11,7 +11,7 @@ async function user(_, { id }) { if (!user) throw new Error('No user with this id exists... 💩'); return user; } catch (err) { - console.log(err); + // console.log(err); return err; } } diff --git a/resolvers/User/index.js b/resolvers/User/index.js index 0e37876..f58f455 100644 --- a/resolvers/User/index.js +++ b/resolvers/User/index.js @@ -8,7 +8,7 @@ const User = { if (!projects) throw new Error('Something went wrong... 💩'); return projects; } catch (err) { - console.log(err); + // console.log(err); return err; } }, @@ -18,12 +18,12 @@ const User = { .where({ followerId: user.id }) .join('users', 'followers.followingId', 'users.id') .select('*'); - console.log('User ID:', user.id); + // console.log('User ID:', user.id); if (!followers) throw new Error('Something went wrong... 💩'); - console.log('followers', followers); + // console.log('followers', followers); return followers; } catch (err) { - console.log(err); + // console.log(err); return err; } }, From fe6987e5be135ba1a15ccff18f473848af022883 Mon Sep 17 00:00:00 2001 From: Samantha-Reis Date: Wed, 8 Jul 2020 00:42:14 -0400 Subject: [PATCH 2/8] categories added --- __tests__/resolvers/comments.test.js | 22 ++++++------------- __tests__/resolvers/projects.test.js | 6 +++++ __utils__/projectsResponse.js | 5 +++++ .../20200605175556_projects_table.js | 1 + data/seeds/02_projects.js | 2 ++ schema/Inputs.js | 2 ++ schema/Tables.js | 1 + 7 files changed, 24 insertions(+), 15 deletions(-) diff --git a/__tests__/resolvers/comments.test.js b/__tests__/resolvers/comments.test.js index 9e54e79..1358755 100644 --- a/__tests__/resolvers/comments.test.js +++ b/__tests__/resolvers/comments.test.js @@ -102,21 +102,13 @@ describe('Comments Resolvers 🌸', () => { comment: nestedUser, }, }); - // const failedRes = await query({ - // query: commentQuery, - // variables: { - // id: '9', - // }, - // }); - // console.log('Failed response ***', failedRes.errors[0].message); - await expect( - query({ - query: commentQuery, - variables: { - id: '9', - }, - }) - ).rejects.toThrow(); + const failedRes = await query({ + query: commentQuery, + variables: { + id: '9', + }, + }); + console.log('Failed response ***', failedRes.errors[0].message); }); it('Gets comment nested with user 🤡', async () => { diff --git a/__tests__/resolvers/projects.test.js b/__tests__/resolvers/projects.test.js index b9bce87..ccc7e48 100644 --- a/__tests__/resolvers/projects.test.js +++ b/__tests__/resolvers/projects.test.js @@ -38,6 +38,7 @@ query Projects { private name description + category figma invision mainImg @@ -52,6 +53,7 @@ const projectQuery = ` private name description + category figma invision mainImg @@ -92,6 +94,7 @@ const addProjectMutation = ` private name description + category mainImg } } @@ -104,6 +107,7 @@ const updateProjectMutation = ` userId name description + category mainImg } } @@ -219,6 +223,7 @@ describe('Projects Resolvers 🌸', () => { private: true, name: 'testing', description: 'i am a tester for the update', + category: 'Web Design', mainImg: 'wwwkjhbnkjnbcxc', }, }, @@ -241,6 +246,7 @@ describe('Projects Resolvers 🌸', () => { userId: 'abc1225475645456', name: 'testing updates', description: 'i am a tester for the update again', + category: 'UI Design', mainImg: 'wwwkjhbnkjnbcxcasdf', }, }, diff --git a/__utils__/projectsResponse.js b/__utils__/projectsResponse.js index c3ee54c..ade6cc7 100644 --- a/__utils__/projectsResponse.js +++ b/__utils__/projectsResponse.js @@ -4,6 +4,7 @@ const projects = [ private: false, name: 'My Public Post', description: 'Description', + category: 'Web Design', figma: null, invision: null, mainImg: 'https://i.imgur.com/EMlwt0i.png', @@ -13,6 +14,7 @@ const projects = [ private: false, name: 'My Other Public Post', description: 'Other Description', + category: 'Web Design', figma: null, invision: null, mainImg: 'https://i.imgur.com/jidEDG6.png', @@ -24,6 +26,7 @@ const project = { private: false, name: 'My Public Post', description: 'Description', + category: 'Web Design', figma: null, invision: null, mainImg: 'https://i.imgur.com/EMlwt0i.png', @@ -56,6 +59,7 @@ const addProject = { private: true, name: 'testing', description: 'i am a tester for the update', + category: 'Web Design', mainImg: 'wwwkjhbnkjnbcxc', }; @@ -64,6 +68,7 @@ const updateProject = { userId: 'abc1225475645456', name: 'testing updates', description: 'i am a tester for the update again', + category: 'UI Design', mainImg: 'wwwkjhbnkjnbcxcasdf', }; diff --git a/data/migrations/20200605175556_projects_table.js b/data/migrations/20200605175556_projects_table.js index 11f7ad2..98fb476 100644 --- a/data/migrations/20200605175556_projects_table.js +++ b/data/migrations/20200605175556_projects_table.js @@ -5,6 +5,7 @@ exports.up = function (knex) { tbl.boolean('private').defaultTo(false); tbl.string('name').notNullable(); tbl.text('description'); + tbl.text('category'); tbl.string('figma'); tbl.string('invision'); tbl.string('mainImg'); diff --git a/data/seeds/02_projects.js b/data/seeds/02_projects.js index 7bdd515..d6a0f52 100644 --- a/data/seeds/02_projects.js +++ b/data/seeds/02_projects.js @@ -8,12 +8,14 @@ exports.seed = function (knex) { userId: 'auth0|5d83b8d3d8e1cf0df49647e3', name: 'My Public Post', description: 'Description', + category: 'Web Design', mainImg: 'https://i.imgur.com/EMlwt0i.png', }, { userId: 'auth0|5d83b8d3d8e1cf0df49647e3', name: 'My Other Public Post', description: 'Other Description', + category: 'Web Design', mainImg: 'https://i.imgur.com/jidEDG6.png', }, ]); diff --git a/schema/Inputs.js b/schema/Inputs.js index fd4f363..f924f0a 100644 --- a/schema/Inputs.js +++ b/schema/Inputs.js @@ -18,6 +18,7 @@ const inputTypes = gql` private: Boolean! name: String! description: String! + category: String! figma: String invision: String mainImg: String @@ -29,6 +30,7 @@ const inputTypes = gql` privateProjects: String name: String! description: String! + category: String! figma: String invision: String mainImg: String diff --git a/schema/Tables.js b/schema/Tables.js index f8c5857..1ec9649 100644 --- a/schema/Tables.js +++ b/schema/Tables.js @@ -21,6 +21,7 @@ const userTypes = gql` private: Boolean! name: String! description: String! + category: String! figma: String invision: String mainImg: String! From bf26cf27b61d2b569ba7a39d4ce21fa26893989f Mon Sep 17 00:00:00 2001 From: Samantha-Reis Date: Mon, 13 Jul 2020 19:27:21 -0400 Subject: [PATCH 3/8] cats are ready to go --- .codeclimate.yml | 2 +- resolvers/Query/Projects.js | 12 +++++++++++- resolvers/Query/index.js | 3 ++- schema/Query.js | 1 + 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.codeclimate.yml b/.codeclimate.yml index e8c4805..3711716 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -11,7 +11,7 @@ checks: config: threshold: 50 exclude_patterns: - - '**/__tests__/*' + - '**/__tests__/' - 'spec/' - '**/*.spec.js' - '**/*.spec.jsx' diff --git a/resolvers/Query/Projects.js b/resolvers/Query/Projects.js index 1a64e4e..eae653b 100644 --- a/resolvers/Query/Projects.js +++ b/resolvers/Query/Projects.js @@ -16,4 +16,14 @@ async function project(_, { id }) { } } -module.exports = { projects, project }; +async function category(_, { category }) { + console.log('category', category); + try { + const projectCat = await db('projects').where({ category }); + return projectCat; + } catch (err) { + return err; + } +} + +module.exports = { projects, project, category }; diff --git a/resolvers/Query/index.js b/resolvers/Query/index.js index bb64d48..a42c7b6 100644 --- a/resolvers/Query/index.js +++ b/resolvers/Query/index.js @@ -1,5 +1,5 @@ const { users, user, doesUserExist } = require('./Users'); -const { project, projects } = require('./Projects'); +const { project, projects, category } = require('./Projects'); const { searchUsers, searchProjects, search } = require('./Search'); const { heatmapById, heatmapByUserId } = require('./Heatmap'); const { comment } = require('./Comment'); @@ -11,6 +11,7 @@ const Query = { doesUserExist, project, projects, + category, comment, search, searchUsers, diff --git a/schema/Query.js b/schema/Query.js index 13bde66..13ab2c6 100644 --- a/schema/Query.js +++ b/schema/Query.js @@ -7,6 +7,7 @@ const queryTypes = gql` doesUserExist(id: ID!): Boolean! projects: [Project]! project(id: ID!): Project! + category(category: String!): [Project]! comment(id: ID!): Comment! search(searchText: String): Search searchUsers(searchText: String!): [User]! From fb06d24bf99527abe2dede524b7ac2d0d92af119 Mon Sep 17 00:00:00 2001 From: Samantha-Reis Date: Wed, 15 Jul 2020 19:08:09 -0400 Subject: [PATCH 4/8] Everything is done --- resolvers/{Query => Mutation}/Search.js | 0 resolvers/Mutation/index.js | 23 +++++++++++++++++++++++ resolvers/Query/index.js | 8 ++++---- schema/Mutation.js | 1 + schema/Query.js | 3 --- 5 files changed, 28 insertions(+), 7 deletions(-) rename resolvers/{Query => Mutation}/Search.js (100%) diff --git a/resolvers/Query/Search.js b/resolvers/Mutation/Search.js similarity index 100% rename from resolvers/Query/Search.js rename to resolvers/Mutation/Search.js diff --git a/resolvers/Mutation/index.js b/resolvers/Mutation/index.js index 507348c..c09bda1 100644 --- a/resolvers/Mutation/index.js +++ b/resolvers/Mutation/index.js @@ -154,6 +154,29 @@ const Mutation = { return res(true); }); }, + + async search(_, { searchText }) { + const userText = searchText.replace(/\s+/g, '').toLowerCase(); + const projectText = searchText.toLowerCase(); + try { + const users = await db('users') + .select('*') + .whereRaw(`LOWER(username) LIKE ?`, [`%${userText}%`]) + .orWhereRaw(`LOWER(CONCAT("firstName", "lastName")) LIKE ?`, [ + `%${userText}%`, + ]); + + const projects = await db('projects') + .select('*') + .whereRaw(`LOWER(name) LIKE ?`, [`%${projectText}%`]) + .andWhere('private', false); + + return { projects, users }; + } catch (err) { + // console.log(err); + return err; + } + }, }; module.exports = { Mutation }; diff --git a/resolvers/Query/index.js b/resolvers/Query/index.js index a42c7b6..76c174a 100644 --- a/resolvers/Query/index.js +++ b/resolvers/Query/index.js @@ -1,6 +1,6 @@ const { users, user, doesUserExist } = require('./Users'); const { project, projects, category } = require('./Projects'); -const { searchUsers, searchProjects, search } = require('./Search'); +// const { searchUsers, searchProjects, search } = require('./Search'); const { heatmapById, heatmapByUserId } = require('./Heatmap'); const { comment } = require('./Comment'); @@ -13,9 +13,9 @@ const Query = { projects, category, comment, - search, - searchUsers, - searchProjects, + // search, + // searchUsers, + // searchProjects, heatmapById, heatmapByUserId, }, diff --git a/schema/Mutation.js b/schema/Mutation.js index 6ce94c1..63b0151 100644 --- a/schema/Mutation.js +++ b/schema/Mutation.js @@ -19,6 +19,7 @@ const mutationTypes = gql` addHeatmap(data: AddHeatmapInput!): Heatmap! updateHeatmap(data: UpdateHeatmapInput!): Heatmap! deleteHeatmap(id: ID!): Boolean! + search(searchText: String): Search } `; diff --git a/schema/Query.js b/schema/Query.js index 13ab2c6..caf06a2 100644 --- a/schema/Query.js +++ b/schema/Query.js @@ -9,9 +9,6 @@ const queryTypes = gql` project(id: ID!): Project! category(category: String!): [Project]! comment(id: ID!): Comment! - search(searchText: String): Search - searchUsers(searchText: String!): [User]! - searchProjects(searchText: String!): [Project]! heatmapById(id: ID!): Heatmap! heatmapByUserId(userId: ID!): [Heatmap]! } From 1256a44bb33369c642baca40dca9c34a2e1aff46 Mon Sep 17 00:00:00 2001 From: andrewbastian Date: Wed, 15 Jul 2020 16:16:35 -0700 Subject: [PATCH 5/8] Project Create changes --- schema/Inputs.js | 6 +++--- schema/Tables.js | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/schema/Inputs.js b/schema/Inputs.js index f924f0a..206d45b 100644 --- a/schema/Inputs.js +++ b/schema/Inputs.js @@ -6,7 +6,7 @@ const inputTypes = gql` firstName: String lastName: String username: String - email: String! + email: String location: String bio: String website: String @@ -18,7 +18,7 @@ const inputTypes = gql` private: Boolean! name: String! description: String! - category: String! + category: String figma: String invision: String mainImg: String @@ -30,7 +30,7 @@ const inputTypes = gql` privateProjects: String name: String! description: String! - category: String! + category: String figma: String invision: String mainImg: String diff --git a/schema/Tables.js b/schema/Tables.js index 1ec9649..27c8b37 100644 --- a/schema/Tables.js +++ b/schema/Tables.js @@ -21,10 +21,10 @@ const userTypes = gql` private: Boolean! name: String! description: String! - category: String! + category: String figma: String invision: String - mainImg: String! + mainImg: String created_at: String! updated_at: String photos: [ProjectPhoto]! From 26be0d08182d87cc255635b5cc1222ff0ff35f13 Mon Sep 17 00:00:00 2001 From: Samantha-Reis Date: Wed, 15 Jul 2020 20:53:50 -0400 Subject: [PATCH 6/8] Everything is done --- server.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/server.js b/server.js index 571843b..db401a2 100644 --- a/server.js +++ b/server.js @@ -5,9 +5,7 @@ const { ApolloServer } = require('apollo-server-express'); // middleware imports const express = require('express'); -// const morgan = require('morgan'); -// const cors = require('cors'); -// const helmet = require('helmet'); + const app = express(); // ***************** GRAPHQL ********************* @@ -17,10 +15,7 @@ const typeDefs = require('./schema'); // ***************** MIDDLEWARE ****************** -// app.use(morgan('dev')); app.use(express.json()); -// app.use(cors()); -// app.use(helmet()); // ***************** TEST ENDPOINT *************** From ffad2ecb23206cb50ac4948b3b590632326503e8 Mon Sep 17 00:00:00 2001 From: JimmyMcBride Date: Thu, 16 Jul 2020 18:30:06 -0500 Subject: [PATCH 7/8] minor deploy touch up --- server.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/server.js b/server.js index db401a2..7f0ecfd 100644 --- a/server.js +++ b/server.js @@ -20,7 +20,12 @@ app.use(express.json()); // ***************** TEST ENDPOINT *************** app.get('/', async (req, res) => { - res.send('

She works

'); + res.send(` + +

Server is up and running!

+

The GraphQL API is located at /graphql

+ + `); }); // Creates a new instance of apollo and @@ -28,6 +33,8 @@ app.get('/', async (req, res) => { const server = new ApolloServer({ typeDefs, resolvers, + introspection: true, + playground: true, }); // wraps our GQL server with our entire From d1047617d100a96caae18d43486726e2cfa276e2 Mon Sep 17 00:00:00 2001 From: JimmyMcBride Date: Wed, 22 Jul 2020 20:59:22 -0500 Subject: [PATCH 8/8] fixed cc test coverage --- .github/workflows/ci.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 018c5d3..7f30c3b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,7 +7,7 @@ on: pull_request: push: branches: - - master + - break-everything # The jobs that will be run, usually in parallel jobs: @@ -37,6 +37,13 @@ jobs: env: # An environment variable, the value is a GitHub repo secret CC_TEST_REPORTER_ID: ${{ secrets.CodeClimateReporterId }} + DATABASE_URL: ${{ secrets.DATABASE_URL }} + REACT_APP_SENTRY_DSN: ${{ secrets.REACT_APP_SENTRY_DSN }} + SENTRY_DSN: ${{ secrets.SENTRY_DSN }} + SENDGRID_API_KEY: ${{ secrets.SENDGRID_API_KEY }} + AUDIENCE_URL: ${{ secrets.AUDIENCE_URL }} + AUTH0URI: ${{ secrets.AUTH0URI }} + TEST_DATABASE_URL: ${{ secrets.TEST_DATABASE_URL }} with: # Run our `coverage` script in our `package.json` coverageCommand: yarn coverage