Source code for reports.views

from rest_framework import views
from reports.host_info import PDFHostInfo
from reports.hardware_info import PDFHardwareInfo

from json.decoder import JSONDecodeError
from urllib.error import HTTPError
from django.http import HttpResponse
from django.http import FileResponse


[docs]class GeneratePdfHostInfo(views.APIView):
[docs] def get(self, request, ip_address): pdf = PDFHostInfo() pdf.alias_nb_pages() pdf.add_page() link="http://127.0.0.1:8000/api/censys/" pdf.headerOnlyFirstSide(ip_address) try: pdf.chapter(ip_address,link) except (JSONDecodeError ,HTTPError) as e : return HttpResponse("Something went wrong. Check the ip address and your api key." ) else: pdf.set_font('Times', '', 12) pdf.output('reports/report_host_info.pdf', 'F') return FileResponse(open('reports/report_host_info.pdf', 'rb'))
[docs]class GeneratePdfHardware(views.APIView): """ Klasa generująca raport w formacie pdf o fizycznym sprzęcie na któym została uruchomiona aplikacja. """
[docs] def get(self, request): """ Metoda zwracająca raport w postacie pdf zawięrającym informacje o fizycznym sprzęcie na którym :param request: obiket dla widoków Django, przechowujacy informacje o żądania HTTP użytkownika. :return: plik pdf """ pdf = PDFHardwareInfo() pdf.alias_nb_pages() pdf.add_page() link="http://127.0.0.1:8000/api/local/hardware" pdf.headerOnlyFirstSide() try: pdf.chapter(link) except (JSONDecodeError ,HTTPError) as e : return HttpResponse("Something went wrong." ) else: pdf.set_font('Times', '', 12) pdf.output('reports/report_hardware_info.pdf', 'F') return FileResponse(open('reports/report_hardware_info.pdf', 'rb'))