diff --git a/client/src/components/App.js b/client/src/components/App.js index f95cccc..d82e4a0 100644 --- a/client/src/components/App.js +++ b/client/src/components/App.js @@ -1,12 +1,10 @@ import React from 'react'; import Header from './layout/Header'; -import Login from './Login'; import AppointmentList from './appointment/AppointmentList'; import CreateAppointment from './appointment/CreateAppointment'; import UpdateAppointemnt from './appointment/UpdateAppointment'; import Calendar from './Calendar'; import { Switch, Route } from 'react-router-dom'; -// import ProductList from './ProductList'; const App = () => { return ( @@ -14,11 +12,9 @@ const App = () => {
- {/* */} -
@@ -27,42 +23,3 @@ const App = () => { }; export default App; - - -// // import logo from './../logo.svg'; -// // import './../styles/App.css'; - -// import React, { Component } from 'react'; -// import AppointmentList from './AppointmentList'; -// import CreateAppointment from './CreateAppointment' -// // import Header from './Header'; -// import Login from './Login' -// import Search from './Search'; -// import { Redirect, Route, Switch } from 'react-router-dom'; - -// const App = () => { -// return ( -//
-//
-//
-// -// -// -// -// -// -// -//
-//
-// ); -// }; - -// export default App; diff --git a/client/src/components/Search.js b/client/src/components/Search.js index de7269c..afd5600 100644 --- a/client/src/components/Search.js +++ b/client/src/components/Search.js @@ -1,9 +1,6 @@ import React, { useState } from 'react'; -import { useMutation } from '@apollo/client'; import { useLazyQuery } from '@apollo/client'; import gql from 'graphql-tag'; -import Appointment from './Appointment'; -import { Link } from 'react-router-dom'; const FEED_SEARCH_QUERY = gql` query FeedSearchQuery($filter: String!) { @@ -18,12 +15,6 @@ const FEED_SEARCH_QUERY = gql` id username } - # follows { - # id - # user { - # id - # } - # } } } } @@ -52,10 +43,6 @@ const Search = () => { OK - {/* {data && - data.feed.appointments.map((appointment, index) => ( - - ))} */} ); }; diff --git a/client/src/components/appointment/Appointment.js b/client/src/components/appointment/Appointment.js index e243701..947ca5b 100644 --- a/client/src/components/appointment/Appointment.js +++ b/client/src/components/appointment/Appointment.js @@ -36,100 +36,3 @@ const Appointment = (props) => { }; export default Appointment; - -// import { AUTH_TOKEN, APPOINTMENTS_PER_PAGE } from '../constants'; -// import { timeDifferenceForDate } from '../utils' -// import { FEED_QUERY } from './AppointmentList' - -// const FOLLOW_MUTATION = gql` -// mutation FollowMutation($appointmentId: ID!) { -// follow(followId: $followId) { -// id -// appointment { -// id -// follows { -// id -// user { -// id -// } -// } -// } -// user { -// id -// } -// } -// } -// `; - -// const take = APPOINTMENTS_PER_PAGE; -// const skip = 0; -// const orderBy = { createdAt: 'desc' }; - -// const Appointment = (props) => { -// const { appointment } = props; -// const authToken = localStorage.getItem(AUTH_TOKEN); -// const take = APPOINTMENTS_PER_PAGE; -// const skip = 0; -// const orderBy = { createdAt: 'desc' }; - -// const [follow] = useMutation(FOLLOW_MUTATION, { -// variables: { -// appointmentId: appointment.id -// }, -// update(cache, { data: { follow } }) { -// const { feed } = cache.readQuery({ -// query: FEED_QUERY -// }); - -// const updatedAppointments = feed.follows.map((feedFollow) => { -// if (feedFollow.id === appointment.id) { -// return { -// ...feedFollow, -// follows: [...feedFollow.follows, follow] -// }; -// } -// return feedFollow; -// }); - -// cache.writeQuery({ -// query: FEED_QUERY, -// data: { -// feed: { -// appointments: updatedAppointments -// } -// } -// }); -// } -// }); - -// return ( -//
-//
-// {props.index + 1}. -// {authToken && ( -//
-// ▲ -//
-// )} -//
-//
-//
-// {appointment.title} ({appointment.description}) -//
-// {authToken && ( -//
-// {appointment.follows.length} follows | by{' '} -// {follow.createdBy ? follow.createdBy.name : 'Unknown'}{' '} -// {timeDifferenceForDate(appointment.createdAt)} -//
-// )} -//
-//
-// ); -// }; - -// export default Appointment; \ No newline at end of file diff --git a/client/src/components/appointment/AppointmentList.js b/client/src/components/appointment/AppointmentList.js index 3bdc3a1..084a6d7 100644 --- a/client/src/components/appointment/AppointmentList.js +++ b/client/src/components/appointment/AppointmentList.js @@ -39,175 +39,3 @@ const AppointmentList = () => { }; export default AppointmentList; - -// import { useHistory } from 'react-router'; -// import { APPOINTMENTS_PER_PAGE } from '../constants'; -// import { Link } from 'react-router-dom'; - -// export const FEED_QUERY = gql` -// query AppointmentManyQuery( -// $take: Int -// $skip: Int -// $orderBy: AppointmentOrderByInput -// ) { -// appointmentMany(take: $take, skip: $skip, orderBy: $orderBy) { -// id -// appointments { -// id -// createdAt -// title -// # start -// # end -// description -// # createdBy { -// # id -// # name -// # } -// # follows { -// # id -// # user { -// # id -// # } -// # } -// } -// count -// } -// } -// `; - -// // const NEW_APPOINTMENTS_SUBSCRIPTION = gql` -// // subscription { -// // newAppointment { -// // id -// // url -// // description -// // createdAt -// // createdBy { -// // id -// // name -// // } -// // follows { -// // id -// // user { -// // id -// // } -// // } -// // } -// // } -// // `; - -// const getQueryVariables = (isNewPage, page) => { -// const skip = isNewPage ? (page - 1) * APPOINTMENTS_PER_PAGE : 0; -// const take = isNewPage ? APPOINTMENTS_PER_PAGE : 100; -// const orderBy = { createdAt: 'desc' }; - -// return { take, skip, orderBy }; -// }; - -// const AppointmentList = () => { -// const history = useHistory(); -// const isNewPage = history.location.pathname.includes( -// 'new' -// ); -// const pageIndexParams = history.location.pathname.split( -// '/' -// ); - -// const page = parseInt( -// pageIndexParams[pageIndexParams.length - 1] -// ); - -// const pageIndex = page ? (page - 1) * APPOINTMENTS_PER_PAGE : 0; - -// const { -// data, -// loading, -// error, -// subscribeToMore -// } = useQuery(FEED_QUERY, { -// variables: getQueryVariables(isNewPage, page) -// }); - -// // const { data } = useQuery(FEED_QUERY); - -// const getAppointmentsToRender = (isNewPage, data) => { -// if (isNewPage) { -// return data.feed.appointments; -// } -// const rankedAppointments = data.feed.appointments.slice(); -// rankedAppointments.sort( -// (l1, l2) => l2.follows.length - l1.follows.length -// ); -// return rankedAppointments; -// }; - -// // subscribeToMore({ -// // document: NEW_APPOINTMENTS_SUBSCRIPTION, -// // updateQuery: (prev, { subscriptionData }) => { -// // if (!subscriptionData.data) return prev; -// // const newAppointment = subscriptionData.data.newAppointment; -// // const exists = prev.feed.appointments.find( -// // ({ id }) => id === newAppointment.id -// // ); -// // if (exists) return prev; - -// // return Object.assign({}, prev, { -// // feed: { -// // appointments: [newAppointment, ...prev.feed.appointments], -// // count: prev.feed.appointments.length + 1, -// // __typename: prev.feed.__typename -// // } -// // }); -// // } -// // }); - -// return ( -// <> -// {loading &&

Loading...

} -// {error &&
{JSON.stringify(error, null, 2)}
} -// {data && ( -// <> -// {getAppointmentsToRender(isNewPage, data).map( -// (appointment, index) => ( -// -// ) -// )} -// {isNewPage && ( -//
-//
{ -// if (page > 1) { -// history.push(`/new/${page - 1}`); -// } -// }} -// > -// Previous -//
-//
{ -// if ( -// page <= -// data.feed.count / APPOINTMENTS_PER_PAGE -// ) { -// const nextPage = page + 1; -// history.push(`/new/${nextPage}`); -// } -// }} -// > -// Next -//
-//
-// )} -// -// )} -// -// ); -// }; - -// export default AppointmentList; \ No newline at end of file diff --git a/client/src/components/appointment/CreateAppointment.js b/client/src/components/appointment/CreateAppointment.js index 2a348a6..acacb53 100644 --- a/client/src/components/appointment/CreateAppointment.js +++ b/client/src/components/appointment/CreateAppointment.js @@ -1,8 +1,6 @@ import React, { useState } from 'react'; import { useHistory } from 'react-router'; import { useMutation, gql } from '@apollo/client'; -import { APPOINTMENTS_PER_PAGE } from '../../constants'; -import { APPOINTMENTS_QUERY } from './AppointmentList'; import Datetime from 'react-datetime'; import "react-datetime/css/react-datetime.css"; @@ -43,34 +41,6 @@ const CreateAppointment = () => { start: formState.start, end: formState.end }, - // update: (cache, { data: { createAppointment } }) => { - // const take = APPOINTMENTS_PER_PAGE; - // const skip = 0; - // const orderBy = { createdAt: 'desc' }; - - // const data = cache.readQuery({ - // query: APPOINTMENTS_QUERY, - // variables: { - // take, - // skip, - // orderBy - // } - // }); - - // cache.writeQuery({ - // query: APPOINTMENTS_QUERY, - // data: { - // allAppointments: { - // appointments: [createAppointment, ...data.allAppointments] - // } - // }, - // variables: { - // take, - // skip, - // orderBy - // } - // }); - // }, onCompleted: () => history.push('/') }); diff --git a/client/src/components/appointment/UpdateAppointment.js b/client/src/components/appointment/UpdateAppointment.js index 32b1e10..67d4b86 100644 --- a/client/src/components/appointment/UpdateAppointment.js +++ b/client/src/components/appointment/UpdateAppointment.js @@ -1,8 +1,6 @@ import React, { useState } from 'react'; import { useHistory } from 'react-router'; import { useMutation, gql, useQuery } from '@apollo/client'; -import { APPOINTMENTS_PER_PAGE } from '../../constants'; -import { APPOINTMENTS_QUERY } from './AppointmentList'; import Datetime from 'react-datetime'; import "react-datetime/css/react-datetime.css"; @@ -74,10 +72,6 @@ const UpdateAppointment = ({ match: { params: { _id } } }) => { if (data === undefined) { return
Loading...
} else { - // setFormState({ - // formState.title= data.oneAppointment.title - // }) - return (
{ type="text" /> - setFormState({ - ...formState, - title: e.target.value - }) - } + value={data.oneAppointment.title} type="text" - placeholder="Input title" /> {
New
-
- {authToken ? ( -
{ - localStorage.removeItem(AUTH_TOKEN); - history.push(`/`); - }} - >Logout
- ) : ( - Login - )} -
); }; diff --git a/client/src/index.js b/client/src/index.js index bd45a97..8900e42 100644 --- a/client/src/index.js +++ b/client/src/index.js @@ -5,8 +5,6 @@ import { AUTH_TOKEN } from './constants'; import App from './components/App'; import { BrowserRouter } from 'react-router-dom'; import { setContext } from '@apollo/client/link/context'; -// import * as serviceWorker from './serviceWorker'; - import { ApolloProvider, ApolloClient, @@ -41,37 +39,3 @@ ReactDOM.render( , document.getElementById('root') ); -// serviceWorker.unregister(); - - - -// import { split } from '@apollo/client'; -// import { WebSocketLink } from '@apollo/client/link/ws'; -// import { getMainDefinition } from '@apollo/client/utilities'; -// // import AppointmentList from './components/AppointmentList'; - -// // export default App; - -// const wsLink = new WebSocketLink({ -// uri: `ws://localhost:4000/graphql`, -// options: { -// reconnect: true, -// connectionParams: { -// authToken: localStorage.getItem(AUTH_TOKEN) -// } -// } -// }); - -// const link = split( -// ({ query }) => { -// const { kind, operation } = getMainDefinition(query); -// return ( -// kind === 'OperationDefinition' && -// operation === 'subscription' -// ); -// }, -// wsLink, -// authLink.concat(httpLink) -// ); - -// // reportWebVitals(); diff --git a/server/src/index.js b/server/src/index.js index bcb8a8e..efdc0cb 100644 --- a/server/src/index.js +++ b/server/src/index.js @@ -9,10 +9,8 @@ import './utils/db.js'; import fs from 'fs'; import path from 'path'; import cors from 'cors'; -// import getUserId from './utils'; - - import jwt from 'jsonwebtoken'; + const APP_SECRET = 'GraphQL-is-aw3some'; function getTokenPayload(token) { @@ -60,19 +58,9 @@ const server = new ApolloServer({ path.join(__dirname, 'schema.graphql'), 'utf8' ), - // schema, cors: true, playground: process.env.NODE_ENV === 'development' ? true : false, context: ({ req }) => { - // if (!db) { - // try { - // if (!dbClient.isConnected()) await dbClient.connect() - // mongo = dbClient.db('Calendar') // database name - // console.log(db); - // } catch (e) { - // console.log('--->error while connecting with graphql context (db)', e) - // } - return { ...req, mongoose, @@ -83,23 +71,6 @@ const server = new ApolloServer({ : null } }, - // subscriptions: { - // onConnect: (connectionParams) => { - // if (connectionParams.authToken) { - // return { - // mongoose, - // userId: getUserId( - // null, - // connectionParams.authToken - // ) - // }; - // } else { - // return { - // mongoose - // }; - // } - // } - // }, introspection: true, tracing: true, path: '/', @@ -110,7 +81,6 @@ server.applyMiddleware({ path: '/', cors: true, onHealthCheck: () => - // eslint-disable-next-line no-undef new Promise((resolve, reject) => { if (mongoose.connection.readyState > 0) { resolve(); @@ -124,36 +94,3 @@ app.listen({ port: process.env.PORT }, () => { console.log(`🚀 Server listening on port ${process.env.PORT}`); console.log(`😷 Health checks available at ${process.env.HEALTH_ENDPOINT}`); }); - - -// const { graphqlHTTP } = require('express-graphql'); -// const mongoose = require("mongoose"); -// const graphqlSchema = require("./graphql/schema/schema") -// const appointmentResolvers = require("./graphql/resolvers/appointment") -// const userResolvers = require("./graphql/resolvers/user") - -// var MongoClient = require('mongodb', { useUnifiedTopology: true }).MongoClient; -// // import { MongoClient } from 'mongodb' -// const Query = require('./resolvers/Query'); -// const Mutation = require('./resolvers/Mutation'); -// const Subscription = require('./resolvers/Subscription'); -// const User = require('./resolvers/User'); -// const Appointment = require('./resolvers/Appointment'); -// const Follow = require('./resolvers/Follow'); -// const fs = require('fs'); -// const path = require('path'); -// const { getUserId } = require('./utils'); - -// const graphqlResolvers = { -// appointmentResolvers, -// userResolvers -// }; - -// // const resolvers = { -// // Query, -// // Mutation, -// // Subscription, -// // User, -// // Appointment, -// // Follow -// // }; diff --git a/server/src/resolvers.js b/server/src/resolvers.js index 2b860cc..462c452 100644 --- a/server/src/resolvers.js +++ b/server/src/resolvers.js @@ -1,17 +1,12 @@ -// import Appointment from '../../client/src/components/Appointment.js'; import Product from './models/product.js'; import Appointment from './models/appointment.js'; import User from './models/user.js' -// import { createAppointment } from './resolvers/Mutation.js'; -import bcrypt from 'bcrypt'; import jwt from 'jsonwebtoken'; -import dotenv from 'dotenv'; export const resolvers = { Query: { async allAppointments() { return await Appointment.find({ deleted: false }) - // return await Appointment.find(); }, async oneAppointment(root, args, context, info) { return await Appointment.findOne({ @@ -81,7 +76,6 @@ export const resolvers = { }, async deleteAppointment(parent, args, context, info) { return await Appointment.findOneAndUpdate({ _id: args._id }, { deleted: true }) - // return await Appointment.deleteOne({ _id: args._id }); }, async createProduct(root, { input diff --git a/server/src/utils/db.js b/server/src/utils/db.js index 01bee8d..4a83144 100644 --- a/server/src/utils/db.js +++ b/server/src/utils/db.js @@ -1,7 +1,4 @@ -// const mongoose = require("mongoose"); import mongoose from 'mongoose'; - -// const dotenv = require("../../.env"); import dotenv from 'dotenv'; dotenv.config();