From 5721930803530aeb4150498cec5e23fda35a3b64 Mon Sep 17 00:00:00 2001 From: _aandres Date: Sun, 3 Apr 2022 01:20:54 +0200 Subject: [PATCH] feat [api]: complete facebook response --- server/myapi/services/com_service.py | 11 +++++++++-- server/myapi/views/std_views.py | 9 +++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/server/myapi/services/com_service.py b/server/myapi/services/com_service.py index d33667a..0df8724 100644 --- a/server/myapi/services/com_service.py +++ b/server/myapi/services/com_service.py @@ -1,3 +1,4 @@ +from django.template import Template, Context from django.template.loader import render_to_string from myapi.models import Film @@ -6,16 +7,22 @@ prices = {"one_cof": 4, "one_exte": 5, "card_cof": 30, "card_exte": 35} def render_com(template_name, film: Film) -> str: - return render_to_string(template_name, {"film": film, "prices": prices}) + return render_to_string(template_name, {"film": film, "prices": prices}).strip() def bocal(film: Film) -> str: return render_com("bocal.tex", film) -def facebook(film: Film) -> str: +def facebook_text(film: Film) -> str: return render_com("facebook.txt", film) +def facebook_title(film: Film) -> str: + template = Template("{{ film.title }} - {{ film.director }}") + ctx = Context({"film": film, "prices": prices}) + return template.render(ctx) + + def mail(film: Film) -> str: return render_com("mail.html", film) diff --git a/server/myapi/views/std_views.py b/server/myapi/views/std_views.py index cb5edb2..34ea074 100644 --- a/server/myapi/views/std_views.py +++ b/server/myapi/views/std_views.py @@ -26,9 +26,14 @@ class FilmViewSet(viewsets.ModelViewSet): def bocal(self, request, pk=None): return self.general_com_view(com.bocal) - @action(detail=True, renderer_classes=[PlainTextRenderer], methods=["GET"]) + @action(detail=True, methods=["GET"]) def facebook(self, request, pk=None): - return self.general_com_view(com.facebook) + film: Film = self.get_object() + fb_text = com.facebook_text(film) + fb_title = com.facebook_title(film) + return Response( + {"title": fb_title, "body": fb_text, "banner_link": film.banner_link} + ) @action(detail=True, renderer_classes=[StaticHTMLRenderer], methods=["GET"]) def newsletter(self, request, pk=None):