All endpoints that require a current user to be logged in.
-
Request: endpoints that require authentication
-
Error Response: Require authentication
-
Status Code: 401
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Authentication required", "statusCode": 401 }
-
All endpoints that require authentication and the current user does not have the correct role(s) or permission(s).
-
Request: endpoints that require proper authorization
-
Error Response: Require proper authorization
-
Status Code: 403
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Forbidden", "statusCode": 403 }
-
Returns the information about the current user that is logged in.
-
Require Authentication: true
-
Request
- Method: GET
- URL: /session
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "firstName": "John", "lastName": "Smith", "email": "john.smith@gmail.com" }
-
Logs in a current user with valid credentials and returns the current user's information.
-
Require Authentication: false
-
Request
-
Method: POST
-
URL: /session
-
Headers:
- Content-Type: application/json
-
Body:
{ "email": "john.smith@gmail.com", "password": "secret password" }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "firstName": "John", "lastName": "Smith", "email": "john.smith@gmail.com", "token": "" }
-
-
Error Response: Invalid credentials
-
Status Code: 401
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Invalid credentials", "statusCode": 401 }
-
-
Error response: Body validation errors
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation error", "statusCode": 400, "errors": { "email": "Email is required", "password": "Password is required" } }
-
Creates a new user, logs them in as the current user, and returns the current user's information.
-
Require Authentication: false
-
Request
-
Method: POST
-
URL: /users
-
Headers:
- Content-Type: application/json
-
Body:
{ "firstName": "John", "lastName": "Smith", "email": "john.smith@gmail.com", "password": "secret password" }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "firstName": "John", "lastName": "Smith", "email": "john.smith@gmail.com", "token": "" }
-
-
Error response: User already exists with the specified email
-
Status Code: 403
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "User already exists", "statusCode": 403, "errors": { "email": "User with that email already exists" } }
-
-
Error response: Body validation errors
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation error", "statusCode": 400, "errors": { "email": "Invalid email", "firstName": "First Name is required", "lastName": "Last Name is required" } }
-
Returns all the groups.
-
Require Authentication: false
-
Request
- Method: GET
- URL: /groups
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Groups": [ { "id": 1, "organizerId": 1, "name": "Evening Tennis on the Water", "about": "Enjoy rounds of tennis with a tight-nit group of people on the water facing the Brooklyn Bridge. Singles or doubles.", "type": "In person", "private": true, "city": "New York", "state": "NY", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "numMembers": 10, "previewImage": "image url" } ] }
-
Returns all the groups.
-
Require Authentication: true
-
Request
- Method: GET
- URL: /user/groups
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Groups": [ { "id": 1, "organizerId": 1, "name": "Evening Tennis on the Water", "about": "Enjoy rounds of tennis with a tight-nit group of people on the water facing the Brooklyn Bridge. Singles or doubles.", "type": "In person", "private": true, "city": "New York", "state": "NY", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "numMembers": 10, "previewImage": "image url" } ] }
-
Returns the details of a group specified by its id.
-
Require Authentication: false
-
Request
- Method: GET
- URL: /groups/:groupId
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "organizerId": 1, "name": "Evening Tennis on the Water", "about": "Enjoy rounds of tennis with a tight-nit group of people on the water facing the Brooklyn Bridge. Singles or doubles.", "type": "In person", "private": true, "city": "New York", "state": "NY", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "numMembers": 10, "images": ["image url"], "previewImage": "/images/my_image.png", "Organizer": { "id": 1, "firstName": "John", "lastName": "Smith" } }
-
-
Error response: Couldn't find a Group with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Group couldn't be found", "statusCode": 404 }
-
Creates and returns a new group.
-
Require Authentication: true
-
Request
-
Method: /POST
-
URL: /groups
-
Headers:
- Content-Type: application/json
-
Body:
{ "name": "Evening Tennis on the Water", "about": "Enjoy rounds of tennis with a tight-nit group of people on the water facing the Brooklyn Bridge. Singles or doubles.", "type": "In person", "private": true, "city": "New York", "state": "NY" }
-
-
Successful Response
-
Status Code: 201
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "organizerId": 1, "name": "Evening Tennis on the Water", "about": "Enjoy rounds of tennis with a tight-nit group of people on the water facing the Brooklyn Bridge. Singles or doubles.", "type": "In person", "private": true, "city": "New York", "state": "NY", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36" }
-
-
Error Response: Body validation error
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation Error", "statusCode": 400, "errors": { "name": "Name must be 60 characters or less", "about": "About must be 50 characters or more", "type": "Type must be Online or In person", "private": "Private must be a boolean", "city": "City is required", "state": "State is required" } }
-
Updates and returns an existing group.
-
Require Authentication: true
-
Require proper authorization: Group must belong to the current user
-
Request
-
Method: PATCH
-
URL: /groups/:groupId
-
Headers:
- Content-Type: application/json
-
Body:
{ "name": "Evening Tennis on the Water", "about": "Enjoy rounds of tennis with a tight-nit group of people on the water facing the Brooklyn Bridge. Singles or doubles.", "type": "In person", "private": true, "city": "New York", "state": "NY" }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "organizerId": 1, "name": "Evening Tennis on the Water", "about": "Enjoy rounds of tennis with a tight-nit group of people on the water facing the Brooklyn Bridge. Singles or doubles.", "type": "In person", "private": true, "city": "New York", "state": "NY", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-20 10:06:40" }
-
-
Error Response: Body validation error
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation Error", "statusCode": 400, "errors": { "name": "Name must be 60 characters or less", "about": "About must be 50 characters or more", "type": "Type must be Online or In person", "private": "Private must be a boolean", "city": "City is required", "state": "State is required" } }
-
-
Error response: Couldn't find a Group with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Group couldn't be found", "statusCode": 404 }
-
Deletes an existing group.
-
Require Authentication: true
-
Require proper authorization: Group must belong to the current user
-
Request
- Method: DELETE
- URL: /groups/:groupId
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Successfully deleted", "statusCode": 200 }
-
-
Error response: Couldn't find a Group with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Group couldn't be found", "statusCode": 404 }
-
Returns the members of a group specified by its id.
-
Require Authentication: false
-
Request
- Method: GET
- URL: /groups/:groupId/members
- Body: none
-
Successful Response: If you ARE the organizer of the group. Shows all members, regardless of their status, and their status.
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Members": [ { "id": 2, "firstName": "Clark", "lastName": "Adams", "Membership": { "status": "co-host" } }, { "id": 3, "firstName": "John", "lastName": "Smith", "Membership": { "status": "member" } }, { "id": 4, "firstName": "Jane", "lastName": "Doe", "Membership": { "status": "pending" } } ] }
-
-
Successful Response: If you ARE NOT the organizer of the group. Shows all members that don't have a status of "pending".
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Members": [ { "id": 2, "firstName": "Clark", "lastName": "Adams", "Membership": { "status": "co-host" } }, { "id": 3, "firstName": "John", "lastName": "Smith", "Membership": { "status": "member" } } ] }
-
-
Error response: Couldn't find a Group with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Group couldn't be found", "statusCode": 404 }
-
Request a new membership for a group specified by id.
-
Require Authentication: true
-
Request
- Method: POST
- URL: /groups/:groupId/join
- Headers:
- Content-Type: application/json
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "groupId": 1, "memberId": 2, "status": "pending" }
-
-
Error response: Couldn't find a Group with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Group couldn't be found", "statusCode": 404 }
-
-
Error response: Current User already has a pending membership for the group
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Membership has already been requested", "statusCode": 400 }
-
-
Error response: Current User is already an accepted member of the group
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "User is already a member of the group", "statusCode": 400 }
-
Change the status of a membership for a group specified by id.
-
Require Authentication: true
-
Require proper authorization: Current User must already be the organizer or have a membership to the group with the status of "co-host"
-
Request
-
Method: PATCH
-
URL: /groups/:groupId/members
-
Headers:
- Content-Type: application/json
-
Body:
{ "memberId": 2, "status": "member" }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "groupId": 1, "memberId": 2, "status": "member" }
-
-
Error response: Couldn't find a Group with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Group couldn't be found", "statusCode": 404 }
-
-
Error response: If changing the status to "co-host" and Current User is not the organizer.
-
Status Code: 403
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Current User must be the organizer to add a co-host", "statusCode": 403 }
-
-
Error response: If changing the status to "member" and Current User is not the organizer of the group or a member of the group with a status of "co-host".
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Current User must be the organizer or a co-host to make someone a member", "statusCode": 400 }
-
-
Error response: If changing the membership status to "pending".
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Cannot change a membership status to pending", "statusCode": 400 }
-
-
Error response: If membership does not exist
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Membership between the user and the group does not exits", "statusCode": 404 }
-
Delete a membership to a group specified by id.
-
Require Authentication: true
-
Require proper authorization: Current User must be the host of the group, or the user whose membership is being deleted
-
Request
- Method: DELETE
- URL: /groups/:groupId/members/:memberId
- Headers:
- Content-Type: application/json
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Successfully deleted membership from group" }
-
-
Error response: Couldn't find a Group with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Group couldn't be found", "statusCode": 404 }
-
Returns all the events.
-
Require Authentication: false
-
Request
- Method: GET
- URL: /events
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Events": [ { "id": 1, "groupId": 1, "venueId": null, "name": "Tennis Group First Meet and Greet", "type": "Online", "startDate": "2021-11-19 20:00:00", "numAttending": 8, "previewImage": "image url", "Group": { "id": 1, "name": "Evening Tennis on the Water", "city": "New York", "state": "NY" }, "Venue": null }, { "id": 1, "groupId": 1, "venueId": 1, "name": "Tennis Singles", "type": "In Person", "startDate": "2021-11-20 20:00:00", "numAttending": 4, "previewImage": "image url", "Group": { "id": 1, "name": "Evening Tennis on the Water", "city": "New York", "state": "NY" }, "Venue": { "id": 1, "city": "New York", "state": "NY" } } ] }
-
Returns all the events of a group specified by its id
-
Require Authentication: false
-
Request
- Method: GET
- URL: /groups/:groupId/events
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Events": [ { "id": 1, "groupId": 1, "venueId": null, "name": "Tennis Group First Meet and Greet", "type": "Online", "startDate": "2021-11-19 20:00:00", "numAttending": 8, "previewImage": "image url", "Group": { "id": 1, "name": "Evening Tennis on the Water", "city": "New York", "state": "NY" }, "Venue": null }, { "id": 1, "groupId": 1, "venueId": 1, "name": "Tennis Singles", "type": "In Person", "startDate": "2021-11-20 20:00:00", "numAttending": 4, "previewImage": "image url", "Group": { "id": 1, "name": "Evening Tennis on the Water", "city": "New York", "state": "NY" }, "Venue": { "id": 1, "city": "New York", "state": "NY" } } ] }
-
-
Error response: Couldn't find a Group with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Group couldn't be found", "statusCode": 404 }
-
Returns the details of an event specified by its id.
-
Require Authentication: false
-
Request
- Method: GET
- URL: /events/:eventId
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "groupId": 1, "venueId": 1, "name": "Tennis Group First Meet and Greet", "description": "First meet and greet event for the evening tennis on the water group! Join us online for happy times!", "type": "Online", "capacity": 10, "price": 18.5, "startDate": "2021-11-19 20:00:00", "endDate": "2021-11-19 21:00:00", "numAttending": 8, "Group": { "id": 1, "name": "Evening Tennis on the Water", "private": true, "city": "New York", "state": "NY" }, "Venue": { "id": 1, "address": "123 Disney Lane", "city": "New York", "state": "NY", "lat": 37.7645358, "lng": -122.4730327 }, "images": ["image url"] }
-
-
Error response: Couldn't find a Event with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Event couldn't be found", "statusCode": 404 }
-
Creates and returns a new venue for a group specified by its id
-
Require Authentication: true
-
Require Authentication: Current User must be the organizer of the group or a member of the group with a status of "co-host"
-
Request
- Method: POST
- URL: /groups/:groupId/venues
- Headers:
- Content-Type: application/json
- Body:
{ "address": "123 Disney Lane", "city": "New York", "state": "NY", "lat": 37.7645358, "lng": -122.4730327 }
-
Successful Response
- Status Code: 200
- Headers:
- Content-Type: application/json
- Body:
{ "id": 1, "groupId": 1, "address": "123 Disney Lane", "city": "New York", "state": "NY", "lat": 37.7645358, "lng": -122.4730327 }
-
Error response: Couldn't find a Group with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Group couldn't be found", "statusCode": 404 }
-
-
Error Response: Body validation errors
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation error", "statusCode": 400, "errors": { "address": "Street address is required", "city": "City is required", "state": "State is required", "lat": "Latitude is not valid", "lng": "Longitude is not valid" } }
-
Edit a new venue specified by its id
-
Require Authentication: true
-
Require Authentication: Current User must be the organizer of the group or a member of the group with a status of "co-host"
-
Request
- Method: PATCH
- URL: /venues/:venueId
- Headers:
- Content-Type: application/json
- Body:
{ "address": "123 Disney Lane", "city": "New York", "state": "NY", "lat": 37.7645358, "lng": -122.4730327 }
-
Successful Response
- Status Code: 200
- Headers:
- Content-Type: application/json
- Body:
{ "id": 1, "groupId": 1, "address": "123 Disney Lane", "city": "New York", "state": "NY", "lat": 37.7645358, "lng": -122.4730327 }
-
Error response: Couldn't find a Venue with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Venue couldn't be found", "statusCode": 404 }
-
-
Error Response: Body validation errors
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation error", "statusCode": 400, "errors": { "address": "Street address is required", "city": "City is required", "state": "State is required", "lat": "Latitude is not valid", "lng": "Longitude is not valid" } }
-
Creates and returns a new event for a group specified by its id
-
Require Authentication: true
-
Require Authorization: Current User must be the organizer of the group or a member of the group with a status of "co-host"
-
Request
-
Method: POST
-
URL: /groups/:groupId/events
-
Headers:
- Content-Type: application/json
-
Body:
{ "venueId": 1, "name": "Tennis Group First Meet and Greet", "description": "Our first meet and greet for tennis group", "type": "Online", "capacity": 10, "price": 18.5, "startDate": "2021-11-19 20:00:00", "endDate": "2021-11-19 21:00:00" }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "groupId": 1, "venueId": 1, "name": "Tennis Group First Meet and Greet", "description": "Our first meet and greet for tennis group", "type": "Online", "capacity": 10, "price": 18.5, "startDate": "2021-11-19 20:00:00", "endDate": "2021-11-19 21:00:00" }
-
-
Error Response: Body validation errors
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation error", "statusCode": 400, "errors": { "venueId": "Venue does not exist", "name": "Name must be at least 5 characters", "type": "Type must be Online or In person", "capacity": "Capacity must be an integer", "price": "Price is invalid", "description": "Description is required", "endDate": "End date is less than start date" } }
-
Edit and returns an event specified by its id
-
Require Authentication: true
-
Require Authorization: Current User must be the organizer of the group or a member of the group with a status of "co-host"
-
Request
-
Method: PATCH
-
URL: /events/:eventId
-
Headers:
- Content-Type: application/json
-
Body:
{ "venueId": 1, "name": "Tennis Group First Meet and Greet", "description": "Our first meet and greet for tennis group", "type": "Online", "capacity": 10, "price": 18.5, "startDate": "2021-11-19 20:00:00", "endDate": "2021-11-19 21:00:00" }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "groupId": 1, "venueId": 1, "name": "Tennis Group First Meet and Greet", "description": "Our first meet and greet for tennis group", "type": "Online", "capacity": 10, "price": 18.5, "startDate": "2021-11-19 20:00:00", "endDate": "2021-11-19 21:00:00" }
-
-
Error Response: Body validation errors
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation error", "statusCode": 400, "errors": { "venueId": "Venue does not exist", "name": "Name must be at least 5 characters", "type": "Type must be Online or In person", "capacity": "Capacity must be an integer", "price": "Price is invalid", "description": "Description is required", "endDate": "End date is less than start date" } }
-
Delete an event specified by its id
-
Require Authentication: true
-
Require Authorization: Current User must be the organizer of the group or a member of the group with a status of "co-host"
-
Request
- Method: DELETE
- URL: /events/:eventId
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Successfully deleted" }
-
Returns the attendees of an event specified by its id.
-
Require Authentication: false
-
Request
- Method: GET
- URL: /events/:eventId/attendees
- Body: none
-
Successful Response: If you ARE the organizer of the group or a member of the group with a status of "co-host". Shows all attendees, regardless of their status, and their status.
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Attendees": [ { "id": 2, "firstName": "Clark", "lastName": "Adams", "Attendance": { "status": "member" } }, { "id": 3, "firstName": "John", "lastName": "Smith", "Attendance": { "status": "waitlist" } }, { "id": 4, "firstName": "Jane", "lastName": "Doe", "Attendance": { "status": "pending" } } ] }
-
-
Successful Response: If you ARE the organizer of the group or a member of the group with a status of "co-host". Shows all members that don't have a status of "pending".
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Attendees": [ { "id": 2, "firstName": "Clark", "lastName": "Adams", "Attendance": { "status": "member" } }, { "id": 3, "firstName": "John", "lastName": "Smith", "Attendance": { "status": "waitlist" } } ] }
-
-
Error response: Couldn't find an Event with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Event couldn't be found", "statusCode": 404 }
-
Request attendance for an event specified by id.
-
Require Authentication: true
-
Require Authorization: Current User must be a member of the group
-
Request
- Method: POST
- URL: /events/:eventId/attendees
- Headers:
- Content-Type: application/json
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "eventId": 1, "userId": 2, "status": "pending" }
-
-
Error response: Couldn't find an Event with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Event couldn't be found", "statusCode": 404 }
-
-
Error response: Current User already has a pending attendance for the event
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Attendance has already been requested", "statusCode": 400 }
-
-
Error response: Current User is already an accepted attendee of the event
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "User is already an attendee of the event", "statusCode": 400 }
-
Change the status of an attendance for an event specified by id.
-
Require Authentication: true
-
Require proper authorization: Current User must already be the organizer or have a membership to the group with the status of "co-host"
-
Request
-
Method: PATCH
-
URL: /events/:eventId/attendees
-
Headers:
- Content-Type: application/json
-
Body:
{ "userId": 2, "status": "member" }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "eventId": 1, "userId": 2, "status": "member" }
-
-
Error response: Couldn't find an Event with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Event couldn't be found", "statusCode": 404 }
-
-
Error response: If changing the attendance status to "pending".
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Cannot change an attendance status to pending", "statusCode": 400 }
-
-
Error response: If attendance does not exist
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Attendance between the user and the event does not exist", "statusCode": 404 }
-
Delete a attendance to a event specified by id.
-
Require Authentication: true
-
Require proper authorization: Current User must be the host of the group, or the user whose attendance is being deleted
-
Request
- Method: DELETE
- URL: /events/:eventId/attendees/:attendeeId
- Headers:
- Content-Type: application/json
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Successfully deleted attendance from event" }
-
-
Error response: Couldn't find an Event with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Event couldn't be found", "statusCode": 404 }
-
Create and return a new image for a group specified by id.
-
Require Authentication: true
-
Require proper authorization: Current User must be the organizer for the group
-
Request
-
Method: POST
-
URL: /groups/:groupId/images
-
Headers:
- Content-Type: application/json
-
Body:
{ "url": "image url" }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "itemId": 1, "itemType": "Group", "url": "image url" }
-
-
Error response: Couldn't find a Group with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Group couldn't be found", "statusCode": 404 }
-
Create and return a new image for an event specified by id.
-
Require Authentication: true
-
Require proper authorization: Current User must be an attendee of the event
-
Request
-
Method: POST
-
URL: /events/:eventId/images
-
Headers:
- Content-Type: application/json
-
Body:
{ "url": "image url" }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "itemId": 1, "itemType": "Event", "url": "image url" }
-
-
Error response: Couldn't find an Event with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Event couldn't be found", "statusCode": 404 }
-
Delete an existing image.
-
Require Authentication: true
-
Require proper authorization: Image must belong to the current user through the image's item
-
Request
- Method: DELETE
- URL: /images/:imageId
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Successfully deleted", "statusCode": 200 }
-
-
Error response: Couldn't find an Image with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Image couldn't be found", "statusCode": 404 }
-
Return events filtered by query parameters.
-
Require Authentication: false
-
Request
- Method: GET
- URL: /events
- Query Parameters
- page: integer, minimum: 0, maximum: 10, default: 0
- size: integer, minimum: 0, maximum: 20, default: 20
- name: string, optional
- type: string, optional
- startDate: string, optional
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Events": [ { "id": 1, "groupId": 1, "venueId": null, "name": "Tennis Group First Meet and Greet", "type": "Online", "startDate": "2021-11-19 20:00:00", "numAttending": 8, "previewImage": "image url", "Group": { "id": 1, "name": "Evening Tennis on the Water", "city": "New York", "state": "NY" }, "Venue": null }, { "id": 1, "groupId": 1, "venueId": 1, "name": "Tennis Singles", "type": "In Person", "startDate": "2021-11-20 20:00:00", "numAttending": 4, "previewImage": "image url", "Group": { "id": 1, "name": "Evening Tennis on the Water", "city": "New York", "state": "NY" }, "Venue": { "id": 1, "city": "New York", "state": "NY" } } ] }
-
-
Error Response: Query parameter validation errors
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation Error", "statusCode": 400, "errors": { "page": "Page must be greater than or equal to 0", "size": "Size must be greater than or equal to 0", "name": "Name must be a string", "type": "Type must be 'Online' or 'In Person'", "startDate": "Start date must be a valid datetime" } }
-