diff --git a/client/package-lock.json b/client/package-lock.json
index 894128a..cf38f6c 100644
--- a/client/package-lock.json
+++ b/client/package-lock.json
@@ -24,6 +24,36 @@
"zen-observable": "^0.8.14"
}
},
+ "@apollo/react-hooks": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@apollo/react-hooks/-/react-hooks-4.0.0.tgz",
+ "integrity": "sha512-fCu0cbne3gbUl0QbA8X4L33iuuFVQbC5Jo2MIKRK8CyawR6PoxDpFdFA1kc6033ODZuZZ9Eo4RdeJFlFIIYcLA==",
+ "requires": {
+ "@apollo/client": "^3.3.6"
+ },
+ "dependencies": {
+ "@apollo/client": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.6.tgz",
+ "integrity": "sha512-XSm/STyNS8aHdDigLLACKNMHwI0qaQmEHWHtTP+jHe/E1wZRnn66VZMMgwKLy2V4uHISHfmiZ4KpUKDPeJAKqg==",
+ "requires": {
+ "@graphql-typed-document-node/core": "^3.0.0",
+ "@types/zen-observable": "^0.8.0",
+ "@wry/context": "^0.5.2",
+ "@wry/equality": "^0.3.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graphql-tag": "^2.11.0",
+ "hoist-non-react-statics": "^3.3.2",
+ "optimism": "^0.13.1",
+ "prop-types": "^15.7.2",
+ "symbol-observable": "^2.0.0",
+ "ts-invariant": "^0.6.0",
+ "tslib": "^1.10.0",
+ "zen-observable": "^0.8.14"
+ }
+ }
+ }
+ },
"@babel/code-frame": {
"version": "7.12.11",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
@@ -1246,6 +1276,104 @@
}
}
},
+ "@fullcalendar/common": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/@fullcalendar/common/-/common-5.5.0.tgz",
+ "integrity": "sha512-xHsHRI2xnC4vDPdRaOkt03SGIEsmlcSTI6RVInI2PQKi3n4otgM4ej3WL4B010uT4IzrBlUvNm8HHEo/o3g8Ug==",
+ "requires": {
+ "ical.js": "^1.4.0",
+ "tslib": "^2.0.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
+ }
+ }
+ },
+ "@fullcalendar/core": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-5.5.0.tgz",
+ "integrity": "sha512-NHyrH6AP1zRRCWsK0NuY/bZFQes1UaGB2pukMv86A0Yq1BI7Y7m9u/yH7D0/ZCaNkCLVxrSlIwAOtMQxPPITdg==",
+ "requires": {
+ "@fullcalendar/common": "~5.5.0",
+ "preact": "^10.0.5",
+ "tslib": "^2.0.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
+ }
+ }
+ },
+ "@fullcalendar/daygrid": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-5.5.0.tgz",
+ "integrity": "sha512-O/59C3ihElLsPnkjlD1xUgAf3v7WEARXVO+wZfASKtK14Ccux2MA9mWUA1+80m9q8on7SYL36ORhrea7GKy/qQ==",
+ "requires": {
+ "@fullcalendar/common": "~5.5.0",
+ "tslib": "^2.0.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
+ }
+ }
+ },
+ "@fullcalendar/interaction": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-5.5.0.tgz",
+ "integrity": "sha512-LKc4VeESBkBkrI/sAtV++f4qUleYyt7STBrnuc5Mpojv7jg5x5XZ1rfOarLwRbEYSvbo6CwccDrsaLTbC1Qk2A==",
+ "requires": {
+ "@fullcalendar/common": "~5.5.0",
+ "tslib": "^2.0.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
+ }
+ }
+ },
+ "@fullcalendar/react": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-5.5.0.tgz",
+ "integrity": "sha512-ss109y/kYIb9mwmE9dZc5c2o5I4CoqREDqLNAur83CGC5NvCH8gRzZXEilZz1E6ORuziBEYkPPtREn7Mp+6lYg==",
+ "requires": {
+ "@fullcalendar/common": "~5.5.0",
+ "tslib": "^2.0.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
+ }
+ }
+ },
+ "@fullcalendar/timegrid": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/@fullcalendar/timegrid/-/timegrid-5.5.0.tgz",
+ "integrity": "sha512-Y4k3/ux031pL7WQWJnvJbGcOua+zg1BGn08xeycgBICNqVMIhKm++uCnLzCvHGDV4Gp7oRjNAw/nJw4M1kMoXg==",
+ "requires": {
+ "@fullcalendar/common": "~5.5.0",
+ "@fullcalendar/daygrid": "~5.5.0",
+ "tslib": "^2.0.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
+ }
+ }
+ },
"@graphql-typed-document-node/core": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.0.tgz",
@@ -7210,6 +7338,11 @@
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
"integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw=="
},
+ "ical.js": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ical.js/-/ical.js-1.4.0.tgz",
+ "integrity": "sha512-ltHZuOFNNjcyEYbzDgjemS7LWIFh2vydJeznxQHUh3dnarbxqOYsWONYteBVAq1MEOHnwXFGN2eskZReHclnrA=="
+ },
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -11271,6 +11404,11 @@
"uniq": "^1.0.1"
}
},
+ "preact": {
+ "version": "10.5.9",
+ "resolved": "https://registry.npmjs.org/preact/-/preact-10.5.9.tgz",
+ "integrity": "sha512-X4m+4VMVINl/JFQKALOCwa3p8vhMAhBvle0hJ/W44w/WWfNb2TA7RNicDV3K2dNVs57f61GviEnVLiwN+fxiIg=="
+ },
"prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -11313,6 +11451,11 @@
}
}
},
+ "primereact": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/primereact/-/primereact-5.0.2.tgz",
+ "integrity": "sha512-CaseS/951XkHYuQ5flQg9gZn4TFJSlSMriLdbpub4wzMjHZPbVK0P5I4g/1d24KKT3ptCOwxrsvwus5B+UdhqA=="
+ },
"process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
diff --git a/client/package.json b/client/package.json
index cdeb842..1f96e3d 100644
--- a/client/package.json
+++ b/client/package.json
@@ -4,12 +4,22 @@
"private": true,
"dependencies": {
"@apollo/client": "^3.3.6",
+ "@apollo/react-hooks": "^4.0.0",
+ "@fullcalendar/core": "^5.5.0",
+ "@fullcalendar/daygrid": "^5.5.0",
+ "@fullcalendar/interaction": "^5.5.0",
+ "@fullcalendar/react": "^5.5.0",
+ "@fullcalendar/timegrid": "^5.5.0",
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"graphql": "^15.4.0",
+ "graphql-tag": "^2.11.0",
+ "jquery": "^3.5.1",
"moment": "^2.29.1",
+ "primereact": "^5.0.2",
"react": "^17.0.1",
+ "react-datepicker": "^3.3.0",
"react-datetime": "^3.0.4",
"react-dom": "^17.0.1",
"react-router": "^5.2.0",
diff --git a/client/src/components/App.js b/client/src/components/App.js
index 23c8857..cc56aee 100644
--- a/client/src/components/App.js
+++ b/client/src/components/App.js
@@ -5,6 +5,7 @@ import { Switch, Route } from 'react-router-dom';
// import ProductList from './ProductList';
import AppointmentList from './AppointmentList';
import Login from './Login';
+import Calendar from './Calendar';
const App = () => {
return (
@@ -16,6 +17,7 @@ const App = () => {
+
diff --git a/client/src/components/AppointmentList.js b/client/src/components/AppointmentList.js
index 9b53694..9b210f6 100644
--- a/client/src/components/AppointmentList.js
+++ b/client/src/components/AppointmentList.js
@@ -7,8 +7,6 @@ export const APPOINTMENTS_QUERY = gql`
allAppointments{
title
description
- # dateStart
- # dateEnd
timeStart
timeEnd
}
diff --git a/client/src/components/Calendar.js b/client/src/components/Calendar.js
new file mode 100644
index 0000000..3b61581
--- /dev/null
+++ b/client/src/components/Calendar.js
@@ -0,0 +1,45 @@
+import React from 'react'
+import FullCalendar from '@fullcalendar/react'
+import dayGridPlugin from '@fullcalendar/daygrid'
+import interactionPlugin from "@fullcalendar/interaction";
+import { useQuery, gql } from '@apollo/client';
+import { APPOINTMENTS_QUERY } from './AppointmentList';
+
+// function renderEventContent() {
+// const { loading, error, data } = useQuery(APPOINTMENTS_QUERY, {
+// variables: { language: 'english' },
+// });
+// if (loading) return
Loading ...
;
+
+// return (
+// <>
+// {eventInfo.timeText}
+// {eventInfo.event.title}
+// >
+// )
+// // return Hello {data.greeting.message}!
;
+// }
+
+export default class Calendar extends React.Component {
+
+ handleDateClick = (arg) => { // bind with an arrow function
+ alert(arg.dateStr)
+ }
+
+ render() {
+
+ return (
+
+ )
+ }
+}
diff --git a/client/src/index.js b/client/src/index.js
index 4061cad..4ace4d7 100644
--- a/client/src/index.js
+++ b/client/src/index.js
@@ -15,7 +15,7 @@ import {
} from '@apollo/client';
const httpLink = createHttpLink({
- uri: 'http://localhost:4000/graphql'
+ uri: 'http://localhost:4000/djhb58fytkh476dk45yh49'
});
const authLink = setContext((_, { headers }) => {
diff --git a/client/yarn.lock b/client/yarn.lock
index 040cf64..be1d92c 100644
--- a/client/yarn.lock
+++ b/client/yarn.lock
@@ -2,7 +2,7 @@
# yarn lockfile v1
-"@apollo/client@^3.3.6":
+"@apollo/client@^3.3.6", "@apollo/client@latest":
version "3.3.6"
resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.3.6.tgz#f359646308167f38d5bc498dfc2344c888400093"
integrity sha512-XSm/STyNS8aHdDigLLACKNMHwI0qaQmEHWHtTP+jHe/E1wZRnn66VZMMgwKLy2V4uHISHfmiZ4KpUKDPeJAKqg==
@@ -21,6 +21,13 @@
tslib "^1.10.0"
zen-observable "^0.8.14"
+"@apollo/react-hooks@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@apollo/react-hooks/-/react-hooks-4.0.0.tgz#7bf7b320c90d276f637d9a84b503e17b840dd4e6"
+ integrity sha512-fCu0cbne3gbUl0QbA8X4L33iuuFVQbC5Jo2MIKRK8CyawR6PoxDpFdFA1kc6033ODZuZZ9Eo4RdeJFlFIIYcLA==
+ dependencies:
+ "@apollo/client" latest
+
"@babel/code-frame@7.10.4", "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.5.5":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
@@ -1183,6 +1190,56 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
+"@fullcalendar/common@~5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@fullcalendar/common/-/common-5.5.0.tgz#02509c8d96bb0bb7fcf397ccf564ed271a6cee00"
+ integrity sha512-xHsHRI2xnC4vDPdRaOkt03SGIEsmlcSTI6RVInI2PQKi3n4otgM4ej3WL4B010uT4IzrBlUvNm8HHEo/o3g8Ug==
+ dependencies:
+ ical.js "^1.4.0"
+ tslib "^2.0.3"
+
+"@fullcalendar/core@^5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@fullcalendar/core/-/core-5.5.0.tgz#08373ce9b68a88ea3d48caf7a682a8261d90a3c7"
+ integrity sha512-NHyrH6AP1zRRCWsK0NuY/bZFQes1UaGB2pukMv86A0Yq1BI7Y7m9u/yH7D0/ZCaNkCLVxrSlIwAOtMQxPPITdg==
+ dependencies:
+ "@fullcalendar/common" "~5.5.0"
+ preact "^10.0.5"
+ tslib "^2.0.3"
+
+"@fullcalendar/daygrid@^5.5.0", "@fullcalendar/daygrid@~5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@fullcalendar/daygrid/-/daygrid-5.5.0.tgz#48f943d070a07f88cd6f8170fb757d3038239bd6"
+ integrity sha512-O/59C3ihElLsPnkjlD1xUgAf3v7WEARXVO+wZfASKtK14Ccux2MA9mWUA1+80m9q8on7SYL36ORhrea7GKy/qQ==
+ dependencies:
+ "@fullcalendar/common" "~5.5.0"
+ tslib "^2.0.3"
+
+"@fullcalendar/interaction@^5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@fullcalendar/interaction/-/interaction-5.5.0.tgz#8fe3f2b89c55fad5835a9c74f7a95a7d97419afe"
+ integrity sha512-LKc4VeESBkBkrI/sAtV++f4qUleYyt7STBrnuc5Mpojv7jg5x5XZ1rfOarLwRbEYSvbo6CwccDrsaLTbC1Qk2A==
+ dependencies:
+ "@fullcalendar/common" "~5.5.0"
+ tslib "^2.0.3"
+
+"@fullcalendar/react@^5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@fullcalendar/react/-/react-5.5.0.tgz#4a74e816ee67c4de59ca6bae1a658e6e72c7970a"
+ integrity sha512-ss109y/kYIb9mwmE9dZc5c2o5I4CoqREDqLNAur83CGC5NvCH8gRzZXEilZz1E6ORuziBEYkPPtREn7Mp+6lYg==
+ dependencies:
+ "@fullcalendar/common" "~5.5.0"
+ tslib "^2.0.3"
+
+"@fullcalendar/timegrid@^5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@fullcalendar/timegrid/-/timegrid-5.5.0.tgz#081dd3fc636e9291ab62b35786e2f0be7cc80a20"
+ integrity sha512-Y4k3/ux031pL7WQWJnvJbGcOua+zg1BGn08xeycgBICNqVMIhKm++uCnLzCvHGDV4Gp7oRjNAw/nJw4M1kMoXg==
+ dependencies:
+ "@fullcalendar/common" "~5.5.0"
+ "@fullcalendar/daygrid" "~5.5.0"
+ tslib "^2.0.3"
+
"@graphql-typed-document-node/core@^3.0.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.0.tgz#0eee6373e11418bfe0b5638f654df7a4ca6a3950"
@@ -3238,6 +3295,11 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"
+classnames@^2.2.6:
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce"
+ integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==
+
clean-css@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
@@ -3590,6 +3652,14 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
+create-react-context@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c"
+ integrity sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==
+ dependencies:
+ gud "^1.0.0"
+ warning "^4.0.3"
+
cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
@@ -3901,6 +3971,11 @@ data-urls@^2.0.0:
whatwg-mimetype "^2.3.0"
whatwg-url "^8.0.0"
+date-fns@^2.0.1:
+ version "2.16.1"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.16.1.tgz#05775792c3f3331da812af253e1a935851d3834b"
+ integrity sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ==
+
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@@ -3942,7 +4017,7 @@ dedent@^0.7.0:
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
-deep-equal@^1.0.1:
+deep-equal@^1.0.1, deep-equal@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
@@ -5353,6 +5428,11 @@ growly@^1.3.0:
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
+gud@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0"
+ integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==
+
gzip-size@5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274"
@@ -5664,6 +5744,11 @@ human-signals@^1.1.1:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+ical.js@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/ical.js/-/ical.js-1.4.0.tgz#fc5619dc55fe03d909bf04362aa0677f4541b9d7"
+ integrity sha512-ltHZuOFNNjcyEYbzDgjemS7LWIFh2vydJeznxQHUh3dnarbxqOYsWONYteBVAq1MEOHnwXFGN2eskZReHclnrA==
+
iconv-lite@0.4.24:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -6672,6 +6757,11 @@ jest@26.6.0:
import-local "^3.0.2"
jest-cli "^26.6.0"
+jquery@^3.5.1:
+ version "3.5.1"
+ resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5"
+ integrity sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==
+
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -7005,7 +7095,7 @@ loglevel@^1.6.8:
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0"
integrity sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==
-loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
+loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
@@ -8092,6 +8182,11 @@ pnp-webpack-plugin@1.6.4:
dependencies:
ts-pnp "^1.1.6"
+popper.js@^1.14.4:
+ version "1.16.1"
+ resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b"
+ integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==
+
portfinder@^1.0.26:
version "1.0.28"
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
@@ -8778,6 +8873,11 @@ postcss@^8.1.0:
source-map "^0.6.1"
vfile-location "^3.2.0"
+preact@^10.0.5:
+ version "10.5.9"
+ resolved "https://registry.yarnpkg.com/preact/-/preact-10.5.9.tgz#8caba9288b4db1d593be2317467f8735e43cda0b"
+ integrity sha512-X4m+4VMVINl/JFQKALOCwa3p8vhMAhBvle0hJ/W44w/WWfNb2TA7RNicDV3K2dNVs57f61GviEnVLiwN+fxiIg==
+
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -8816,6 +8916,11 @@ pretty-format@^26.0.0, pretty-format@^26.6.0, pretty-format@^26.6.2:
ansi-styles "^4.0.0"
react-is "^17.0.1"
+primereact@^5.0.2:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/primereact/-/primereact-5.0.2.tgz#4c3ed5ec55ab423c330952c4181ed34bccabebe1"
+ integrity sha512-CaseS/951XkHYuQ5flQg9gZn4TFJSlSMriLdbpub4wzMjHZPbVK0P5I4g/1d24KKT3ptCOwxrsvwus5B+UdhqA==
+
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -8851,7 +8956,7 @@ prompts@2.4.0, prompts@^2.0.1:
kleur "^3.0.3"
sisteransi "^1.0.5"
-prop-types@^15.5.7, prop-types@^15.6.2, prop-types@^15.7.2:
+prop-types@^15.5.7, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
@@ -9017,6 +9122,17 @@ react-app-polyfill@^2.0.0:
regenerator-runtime "^0.13.7"
whatwg-fetch "^3.4.1"
+react-datepicker@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-3.3.0.tgz#38dec531fd7c8e0de6860a55dfbc3a8ff803d43c"
+ integrity sha512-QnIlBxDSWEGBi2X5P1BqWzvfnPFRKhtrsgAcujUVwyWeID/VatFaAOEjEjfD1bXR9FuSYVLlLR3j/vbG19hWOA==
+ dependencies:
+ classnames "^2.2.6"
+ date-fns "^2.0.1"
+ prop-types "^15.7.2"
+ react-onclickoutside "^6.9.0"
+ react-popper "^1.3.4"
+
react-datetime@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-3.0.4.tgz#176159d08d35c9e750f0be2f0b974e4f9532ffa5"
@@ -9078,6 +9194,24 @@ react-is@^17.0.1:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339"
integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==
+react-onclickoutside@^6.9.0:
+ version "6.9.0"
+ resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.9.0.tgz#a54bc317ae8cf6131a5d78acea55a11067f37a1f"
+ integrity sha512-8ltIY3bC7oGhj2nPAvWOGi+xGFybPNhJM0V1H8hY/whNcXgmDeaeoCMPPd8VatrpTsUWjb/vGzrmu6SrXVty3A==
+
+react-popper@^1.3.4:
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.7.tgz#f6a3471362ef1f0d10a4963673789de1baca2324"
+ integrity sha512-nmqYTx7QVjCm3WUZLeuOomna138R1luC4EqkW3hxJUrAe+3eNz3oFCLYdnPwILfn0mX1Ew2c3wctrjlUMYYUww==
+ dependencies:
+ "@babel/runtime" "^7.1.2"
+ create-react-context "^0.3.0"
+ deep-equal "^1.1.1"
+ popper.js "^1.14.4"
+ prop-types "^15.6.1"
+ typed-styles "^0.0.7"
+ warning "^4.0.2"
+
react-refresh@^0.8.3:
version "0.8.3"
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f"
@@ -10716,6 +10850,11 @@ tslib@^1.10.0, tslib@^1.14.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
+tslib@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c"
+ integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==
+
tsutils@^3.17.1:
version "3.17.1"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
@@ -10797,6 +10936,11 @@ type@^2.0.0:
resolved "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f"
integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==
+typed-styles@^0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9"
+ integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==
+
typedarray-to-buffer@^3.1.5:
version "3.1.5"
resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
@@ -11087,6 +11231,13 @@ walker@^1.0.7, walker@~1.0.5:
dependencies:
makeerror "1.0.x"
+warning@^4.0.2, warning@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
+ integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
+ dependencies:
+ loose-envify "^1.0.0"
+
watchpack-chokidar2@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957"
diff --git a/server/src/index.js b/server/src/index.js
index dfa7666..0b90e19 100644
--- a/server/src/index.js
+++ b/server/src/index.js
@@ -18,13 +18,13 @@ dotenv.config();
app.use(cors());
-app.get('/', (req, res) => {
- res.json({
- msg: 'GraphQL home!'
- })
-});
+// app.get('/', (req, res) => {
+// res.json({
+// msg: 'GraphQL home!'
+// })
+// });
-app.use('/graphql', graphqlHTTP({
+app.use('/djhb58fytkh476dk45yh49', graphqlHTTP({
schema: schema,
graphiql: true
}));
diff --git a/server/src/resolvers.js b/server/src/resolvers.js
index 381ef62..27c66da 100644
--- a/server/src/resolvers.js
+++ b/server/src/resolvers.js
@@ -20,39 +20,38 @@ export const resolvers = {
},
},
Mutation: {
- async signup(root, {
- input
- }) {
- console.log(input.password);
- input.password = await bcrypt.hash(input.password, 10);
+ async signup(root, args, context, info) {
+ console.log(args, args.password);
- const user = await User.create(input);
+ args.password = await bcrypt.hash(args.password, 10);
+
+ console.log("pre ", args.password)
+
+ const user = await User.create(args);
const token = jwt.sign({ userId: user.id }, process.env.APP_SECRET);
+ console.log("post", user.password);
+
return {
token,
user
};
},
- async login(root, {
- email, password
- }) {
+ async login(parent, args, context, info) {
+ console.log(args);
const user = await User.findOne({
- email: email
+ email: args.email
});
-
if (!user) {
throw new Error('No such user found');
}
- const pwd = await bcrypt.hash(password, 10);
- console.log(pwd);
console.log(user.password);
const valid = await bcrypt.compare(
- password,
+ args.password,
user.password
);
if (!valid) {
@@ -67,6 +66,37 @@ export const resolvers = {
};
},
+ // async login(parent, args, context, info) {
+ // console.log(args);
+ // const user = await User.findOne({
+ // email: args.email
+ // });
+
+ // if (!user) {
+ // throw new Error('No such user found');
+ // }
+
+ // const pwd = await bcrypt.hash(args.password, 10);
+ // console.log(pwd);
+ // console.log(args.password)
+ // console.log(user.password);
+
+ // const valid = await bcrypt.compare(
+ // args.password,
+ // user.password
+ // );
+ // if (!valid) {
+ // throw new Error('Invalid password');
+ // }
+
+ // const token = jwt.sign({ userId: user.id }, process.env.APP_SECRET);
+
+ // return {
+ // token,
+ // user
+ // };
+ // },
+
async createAppointment(root, {
input
}) {
diff --git a/server/src/schema.graphql b/server/src/schema.graphql
index 8b309ee..9aa12da 100644
--- a/server/src/schema.graphql
+++ b/server/src/schema.graphql
@@ -40,12 +40,14 @@ type Mutation {
_id: ID!
) : Product
signup(
- input: UserInput
+ email: String!
+ password: String!
+ username: String!
): AuthPayload
login(
email: String!,
password: String!
- ): AuthPayload
+ ): AuthPayload
follow(
appointmentId: ID!
): Follow
@@ -80,8 +82,6 @@ type Appointment {
_id: ID!
title: String!
description: String!
- # dateStart: Date!
- # dateEnd: Date!
timeStart: Time!
timeEnd: Time!
deleted: Boolean
@@ -92,8 +92,6 @@ type Appointment {
input AppointmentInput {
title: String!
description: String!
- # dateStart: Date!
- # dateEnd: Date!
timeStart: Time!
timeEnd: Time!
}