GET /courses returns the json representation of all courses
PUT /courses/:id returns status 200
PUT /courses/:id updates the entry in the database
PUT /courses/:id returns 400 if no course with specified id
PUT /courses/:id returns 400 if no course data in params
PUT /courses/:id returns 401 if course becomes invalidated
PUT /courses/:id remains unupdated if update would invalidate the entry
DELETE /courses/:id returns status code 200
DELETE /courses/:id removes the course from the database
DELETE /courses/:id returns 400 if the course doesn't exist