Usernames/Passwords
[
{
"user_id": 1,
"username": "tom",
"password": "password",
"role_type": "instructor"
},
{
"user_id": 2,
"username": "jerry",
"password": "password",
"role_type": "instructor"
},
{
"user_id": 3,
"username": "garfield",
"password": "password",
"role_type": "client"
},
{
"user_id": 4,
"username": "odie",
"password": "password",
"role_type": "client"
}
]- Register a new user
- username required (must be between 3 and 30 characters)
- password required (must be between 5 and 200 characters)
- role required (must be between 'client' or 'instructor', insructor requires auth code)
What you send:
{
"username": "SampleUser",
"password": "abc123",
"role_type": "client"
}{
"username": "SampleUser",
"password": "abc123",
"role_type": "instructor",
"auth_code": "auth_instructor_123"
}What you receive:
{
"message": "Account successfully created. Please login.",
"newUser": {
"user_id": 15,
"username": "SampleUser",
"role_type": "instructor"
}
}- Login
- username and password required
- provides a newly created token
What you send:
{
"username": "SampleUser",
"password": "abc123"
}What you receive:
{
"message": "welcome, SampleUser",
"role": "instructor",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWJqZWN0Ijo1LCJ1c2VybmFtZSI6Ik5ld1VzZXIiLCJpYXQiOjE2MjcyNjY4MDYsImV4cCI6MTYyNzM1MzIwNn0.J1dFd3ghUPYVTodsaAU3Bg2RRcmYM_1oOe-96nvLLUg"
}RESTRICTED ENDPOINT
- Get an array of users
- requires valid token in authorization header to access
What you receive:
[
{
"user_id": 1,
"username": "tom",
"role_type": "instructor"
},
{
"user_id": 2,
"username": "jerry",
"role_type": "instructor"
},
{
"user_id": 3,
"username": "garfield",
"role_type": "client"
},
{
"user_id": 4,
"username": "odie",
"role_type": "client"
}
]RESTRICTED ENDPOINT
- Get information on a specific user
- requires valid token in authorization header to access
What you receive:
{
"user_id": 3,
"username": "garfield",
"role_type": "client"
}RESTRICTED ENDPOINT
- Get an array of all classes you can sing up for
- requires valid token in authorization header to access
What you receive:
[
{
"class_id": 1,
"class_name": "Morning Zen",
"class_duration": "1 hour",
"max_class_size": 15,
"class_date": "2021-11-17T05:00:00.000Z",
"start_time": "08:00:00",
"class_location": "Central Park",
"instructor": "tom",
"intensity_level": "beginner",
"type_description": "yoga",
"number_registered": 2
},
{
"class_id": 2,
"class_name": "Boxing Basics",
"class_duration": "45 min",
"max_class_size": 12,
"class_date": "2021-12-22T05:00:00.000Z",
"start_time": "10:30:00",
"class_location": "YMCA",
"instructor": "jerry",
"intensity_level": "beginner",
"type_description": "boxing",
"number_registered": 1
},
{
"class_id": 3,
"class_name": "Sunday Spinning",
"class_duration": "1.5 hours",
"max_class_size": 25,
"class_date": "2021-11-19T05:00:00.000Z",
"start_time": "19:00:00",
"class_location": "Gym Z",
"instructor": "tom",
"intensity_level": "advanced",
"type_description": "cycling",
"number_registered": 2
},
{
"class_id": 4,
"class_name": "Water Aerobics",
"class_duration": "2 hours",
"max_class_size": 10,
"class_date": "2022-01-07T05:00:00.000Z",
"start_time": "16:45:00",
"class_location": "Community Pool",
"instructor": "jerry",
"intensity_level": "intermediate",
"type_description": "swimming",
"number_registered": 1
},
{
"class_id": 5,
"class_name": "Bikram Yoga",
"class_duration": "30 min",
"max_class_size": 20,
"class_date": "2022-02-08T05:00:00.000Z",
"start_time": "18:30:00",
"class_location": "Gym X",
"instructor": "jerry",
"intensity_level": "advanced",
"type_description": "yoga",
"number_registered": 0
}
]RESTRICTED ENDPOINT
- Add information for a new class
- requires valid token in authorization header to access
What you send:
{
"class_name": "Weights",
"class_duration": "1 Hour",
"max_class_size": 20,
"class_date": "2021-11-17",
"start_time": "08:00:00",
"class_location": "Weights Gym",
"class_instructor": 1,
"intensity_id": 1,
"type_id": 1
}RESTRICTED ENDPOINT
- Get information for a specific class
- requires valid token in authorization header to access
- (example uses "1" for :class_id in URL)
What you receive:
{
"class_id": 1,
"class_name": "Morning Zen",
"class_duration": "1 hour",
"max_class_size": 15,
"class_date": "2021-11-17T05:00:00.000Z",
"start_time": "08:00:00",
"class_location": "Central Park",
"instructor": "tom",
"intensity_level": "beginner",
"type_description": "yoga",
"number_registered": 2
}RESTRICTED ENDPOINT
- Get an array of classes a specific user is registered for
- requires valid token in authorization header to access
- (example uses "4" for :user_id in URL) What you receive:
[
{
"class_id": 1,
"class_name": "Morning Zen",
"class_duration": "1 hour",
"max_class_size": 15,
"class_date": "2021-11-17T05:00:00.000Z",
"start_time": "08:00:00",
"class_location": "Central Park",
"instructor": "tom",
"intensity_level": "beginner",
"type_description": "yoga"
},
{
"class_id": 2,
"class_name": "Boxing Basics",
"class_duration": "45 min",
"max_class_size": 12,
"class_date": "2021-12-22T05:00:00.000Z",
"start_time": "10:30:00",
"class_location": "YMCA",
"instructor": "jerry",
"intensity_level": "beginner",
"type_description": "boxing"
}
]RESTRICTED ENDPOINT
- Get an array of classes a specific instructor is teaching
- requires valid token in authorization header to access
- (example uses "2" for :user_id in URL) What you receive:
[
{
"class_id": 2,
"class_name": "Boxing Basics",
"class_duration": "45 min",
"max_class_size": 12,
"class_date": "2021-12-22T05:00:00.000Z",
"start_time": "10:30:00",
"class_location": "YMCA",
"intensity_level": "beginner",
"type_description": "boxing",
"number_registered": 1
},
{
"class_id": 4,
"class_name": "Water Aerobics",
"class_duration": "2 hours",
"max_class_size": 10,
"class_date": "2022-01-07T05:00:00.000Z",
"start_time": "16:45:00",
"class_location": "Community Pool",
"intensity_level": "intermediate",
"type_description": "swimming",
"number_registered": 1
},
{
"class_id": 5,
"class_name": "Bikram Yoga",
"class_duration": "30 min",
"max_class_size": 20,
"class_date": "2022-02-08T05:00:00.000Z",
"start_time": "18:30:00",
"class_location": "Gym X",
"intensity_level": "advanced",
"type_description": "yoga",
"number_registered": 0
}
]RESTRICTED ENDPOINT
- User can register for a specific class
- requires valid token in authorization header to access
What you send:
{
"user_id": 3,
"class_id": 4
}What you receive:
{
"class_id": 4,
"class_name": "Water Aerobics",
"class_duration": "2 hours",
"max_class_size": 10,
"class_date": "2022-01-07T05:00:00.000Z",
"start_time": "16:45:00",
"class_location": "Community Pool",
"instructor": "jerry",
"intensity_level": "intermediate",
"type_description": "swimming",
"number_registered": 6
}
RESTRICTED ENDPOINT
-
where :id is class_id (example uses "2" for :id in URL)
-
Edits given values of a specific class
- requires valid token in authorization header to access
What you send:
{
"location": "Gym Z"
}What you receive:
{
"class_id": 2,
"class_name": "Boxing Basics",
"class_duration": "45 min",
"max_class_size": 12,
"class_date": "2021-12-22T05:00:00.000Z",
"start_time": "10:30:00",
"class_location": "Gym Z",
"instructor": "jerry",
"intensity_level": "beginner",
"type_description": "boxing",
"number_registered": 1
}RESTRICTED ENDPOINT
-
where :class_id is class_id (example uses "2" for :id in URL)
-
Deletes specific class
- requires valid token in authorization header to access
What you receive:
{
"message": "Boxing Basics has been deleted successfully"
}