From c4617e0f659603adaf727a518e96e44e766feb9b Mon Sep 17 00:00:00 2001 From: Justin Toombs Date: Tue, 14 May 2024 18:51:08 -0400 Subject: [PATCH] Completed lab with help of peers. There are still issues with the BadRequest but it is not necessary for basic functionality. --- poem_server/app/views.py | 42 +++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/poem_server/app/views.py b/poem_server/app/views.py index 6300fba..0fb606e 100644 --- a/poem_server/app/views.py +++ b/poem_server/app/views.py @@ -11,28 +11,29 @@ def get_random_line(params): def get_about_line(params): try: line = Line.objects.filter(clean_text__contains=params['topic']).random() - return line.to_dict() + return {'line': line.text, 'topic': params['topic']} except Line.DoesNotExist: - raise NotFound("Line not found") - + raise BadRequest("Line not found with that topic") + @route_get('lines/rhyme', args={'word': str}) -def get_line_rhyme(params): +def get_rhyme_line(params): try: rhyme = Rhyme.get_rhyme_for_word(params['word']).lines.exclude(clean_text__endswith=" "+params['word']).first() + return {'line': rhyme.text, 'word': params['word']} return rhyme.to_dict() - except: - raise NotFound("Rhyme not found") - -@route_get('couplets/random', args={'topic': str}) + except Rhyme.DoesNotExist: + raise BadRequest("Rhyme not found") + +@route_get('couplets/random', args={}) def get_random_couplet(params): try: line = Line.objects.random() for rl in line.rhyming_lines().sample(1): rhyme = rl #print(rhyme.text) - return{'lines': [line.text, rhyme.text]} - except Rhyme.DoesNotExist: - raise NotFound("Rhyme not found") + return {'lines': [line.text, rhyme.text]} + except Line.DoesNotExist: + raise BadRequest("Rhyme not found") @route_get('couplets/about', args={'topic': str}) def get_about_couplet(params): @@ -40,16 +41,17 @@ def get_about_couplet(params): line = Line.objects.filter(clean_text__contains=params['topic']).random() for rl in line.rhyming_lines().sample(1): rhyme = rl - return {'lines': [line.text, rhyme.text]} - except: - pass + return {'lines': [line.text, rhyme.text], 'topic': params['topic']} + except Line.DoesNotExist: + raise BadRequest("Couplet not found with given topic") -@route_get('couplets/rhyme', args={'topic': str}) +@route_get('couplets/rhyme', args={'word': str}) def get_rhyme_couplet(params): try: - toRhyme = Rhyme.get_rhyme_for_word - for rl in line.rhyming_lines().sample(1): + toRhyme = Rhyme.get_rhyme_for_word(params['word']).lines.exclude(clean_text__endswith=" " + params['word']).first() + #line = Line. + for rl in toRhyme.rhyming_lines().sample(1): rhyme = rl - return {'lines': [line.text, rhyme.text]} - except: - pass + return {'lines': [rhyme.text, toRhyme.text], 'word': params['word']} + except Rhyme.DoesNotExist: + raise BadRequest("Did not find a couplet that rhymes with given word")