This api can be made into a Docker Image!
Install dependencies with npm install
.
Use the psql -U development
command to login to the PostgreSQL server with the username development
and the password development
. This command MUST be run in a vagrant terminal, we are using the PostgreSQL installation provided in the vagrant environment.
Create a database with the command CREATE DATABASE scheduler_development;
.
Copy the .env.example
file to .env.development
and fill in the necessary PostgreSQL configuration. The node-postgres
library uses these environment variables by default.
PGHOST=localhost
PGUSER=development
PGDATABASE=scheduler_development
PGPASSWORD=development
PGPORT=5432
Run a the development server with npm start
in the Host environment. We are only using vagrant for psql
this week.
Both of these achieve the same result.
- Make a
GET
request to/api/debug/reset
withcurl http://localhost:8001/api/debug/reset
. - Use the browser to navigate to
http://localhost:8001/api/debug/reset
.
The development
data is random. Each time we seed we expect to see different appointments.
Running the server normally
npm start
Running the server so it returns an error when saving/deleting for testing the client's error handling capabilities
npm run error
GET /api/days
Response
[
{
"id": 1,
"name": "Monday",
"appointments": [1, 2],
"interviewers": [1, 2],
"spots": 0
}
]
GET /api/appointments
Response:
{
"1": {
"id": 1,
"time": "12pm",
"interview": {
"student": "Lydia Miller-Jones",
"interviewer": 1
}
},
"2": {
"id": 2,
"time": "1pm",
"interview": {
"student": "Archie Cohen",
"interviewer": 2
}
}
}
PUT /api/appointments/:id
Body:
{
"interview": {
"student": String,
"interviewer": Number
}
}
DELETE /api/appointments/:id
GET /api/interviewers
Response:
{
"1": {
"id": 1,
"name": "Sylvia Palmer",
"avatar": "https://i.imgur.com/LpaY82x.png"
},
"2": {
"id": 2,
"name": "Tori Malcolm",
"avatar": "https://i.imgur.com/Nmx0Qxo.png"
}
}