diff --git a/api.py b/api.py index 35759bf..7d1d36b 100644 --- a/api.py +++ b/api.py @@ -36,16 +36,32 @@ class RiddleAPI: def get_riddle(self, riddle_id): "Fetches a single riddle from the server" route = "/show" - raise NotImplementedError("The API doesn't support `get_riddle` yet. Can you add it?") + response =requests.get(self.server_url + route, params = {"id": riddle_id}) + if response.ok: + return response.json() + else: + raise APIError(response.json()['errors']) + def get_random_riddle(self): "Fetches all riddles from the server and then randomly returns one" - raise NotImplementedError("The API doesn't support `get_random_riddle` yet. Can you add it?") + riddles = self.get_all_riddles() + if len(riddles) == 0: + raise APIError(["Sorry, there are no riddles on the server!"]) + return choice(riddles) def add_riddle(self, question, answer): "Adds a new riddle to the server" route = "/new" - raise NotImplementedError("The API doesn't support `add_riddle` yet. Can you add it?") + response = request.post( + self.server_url + route, + json={"question": question, "answer": answer} + ) + if response.ok: + return response.json() + else: + raise APIError(response.json()['errors']) +