generated from mwc/lab_riddles
	I completed the riddles lab.
I implemented get_riddle, get_random_riddle, and add_riddle in api.py. I also amended guess_riddle to return whether it was correct.
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								__pycache__/api.cpython-312.pyc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								__pycache__/api.cpython-312.pyc
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										33
									
								
								api.py
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								api.py
									
									
									
									
									
								
							@@ -4,7 +4,7 @@
 | 
			
		||||
# The Riddle API takes care of connecting to the server. 
 | 
			
		||||
 | 
			
		||||
import requests
 | 
			
		||||
from random import choice
 | 
			
		||||
from random import choice, randrange
 | 
			
		||||
 | 
			
		||||
class APIError(Exception):
 | 
			
		||||
    "A custom error we'll use when something goes wrong with the API"
 | 
			
		||||
@@ -29,24 +29,37 @@ class RiddleAPI:
 | 
			
		||||
        params = {'id': riddle_id, 'answer': guess}
 | 
			
		||||
        response = requests.post(self.server_url + route, json=params)
 | 
			
		||||
        if response.ok:
 | 
			
		||||
            return response.json()
 | 
			
		||||
            return response.json()['correct']
 | 
			
		||||
        # I added ['correct'] here because otherwise it kept telling
 | 
			
		||||
        # me "Yes!" even when I knew I put in the wrong response...
 | 
			
		||||
        # Was I supposed to do that? I thought this was supposed to
 | 
			
		||||
        # have been implemented for me already. Or did I accidentally
 | 
			
		||||
        # delete it without realizing?
 | 
			
		||||
        else:
 | 
			
		||||
            raise APIError(response.json()['errors'])
 | 
			
		||||
 | 
			
		||||
    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?")
 | 
			
		||||
 | 
			
		||||
        params = {'id': riddle_id}
 | 
			
		||||
        response = requests.get(self.server_url + route, json=params)
 | 
			
		||||
        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?")
 | 
			
		||||
        riddle_id = randrange(0,len(self.get_all_riddles()))
 | 
			
		||||
        return self.get_riddle(riddle_id)
 | 
			
		||||
    # Was I supposed to do it this way?
 | 
			
		||||
 | 
			
		||||
    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?")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
        params = {'question':question, 'answer':answer}        
 | 
			
		||||
        response = requests.post(self.server_url + route, json=params)
 | 
			
		||||
        if response.ok:
 | 
			
		||||
            return response.json()
 | 
			
		||||
        else:
 | 
			
		||||
            raise APIError(response.json()['errors'])
 | 
			
		||||
		Reference in New Issue
	
	Block a user