Skip to content

media_views

django_spire.notification.sms.views.media_views

external_temporary_media_view

Source code in django_spire/notification/sms/views/media_views.py
@csrf_exempt
def external_temporary_media_view(request, external_access_key: uuid.UUID) -> HttpResponse:
    try:
        temporary_media = SmsTemporaryMedia.objects.get(external_access_key=external_access_key)
    except SmsTemporaryMedia.DoesNotExist:
        temporary_media = None

    if temporary_media is None or temporary_media.content == '':
        raise SmsTemporaryMediaException("Content for Temporary Media cannot be empty")

    image = Image.open(
        BytesIO(base64.b64decode(temporary_media.content))
    )
    image = image.convert('P', palette=Image.ADAPTIVE, colors=32)

    buffer = BytesIO()
    image.save(buffer, 'PNG')

    return HttpResponse(
        content=buffer.getvalue(),
        content_type=temporary_media.content_type,
    )