|
1 | 1 | """Netops.io core api views.""" |
2 | 2 |
|
| 3 | +from core import models, tasks |
| 4 | +from core.api import serializers |
3 | 5 | from django_celery_results.models import TaskResult |
4 | 6 | from drf_yasg import openapi |
5 | 7 | from drf_yasg.utils import swagger_auto_schema |
6 | 8 | from rest_framework import viewsets |
7 | 9 | from rest_framework.response import Response |
8 | 10 |
|
9 | | -from core import models, tasks |
10 | | -from core.api import serializers |
11 | 11 | from netopsio.utilities import get_ip_address |
12 | 12 |
|
13 | 13 |
|
@@ -90,3 +90,24 @@ def create(self, request, host=None): |
90 | 90 | data = models.TaskModel(task_id=task.task_id) |
91 | 91 | serializer = serializers.TaskSerializer(data, context={"request": request}) |
92 | 92 | return Response(serializer.data) |
| 93 | + |
| 94 | + |
| 95 | +class WhoisViewSet(viewsets.ViewSet): |
| 96 | + """Whois Viewset.""" |
| 97 | + |
| 98 | + @swagger_auto_schema( |
| 99 | + request_body=openapi.Schema( |
| 100 | + type=openapi.TYPE_OBJECT, |
| 101 | + properties={ |
| 102 | + "host": openapi.Schema( |
| 103 | + type=openapi.TYPE_STRING, description="Whois a domain or host." |
| 104 | + ), |
| 105 | + }, |
| 106 | + ) |
| 107 | + ) # pylint: disable=no-self-use |
| 108 | + def create(self, request, host): |
| 109 | + """whois a host.""" |
| 110 | + task = tasks.whois.delay(host=host) |
| 111 | + data = models.TaskModel(task_id=task.task_id) |
| 112 | + serializer = serializers.TaskSerializer(data, context={"request": request}) |
| 113 | + return Response(serializer.data) |
0 commit comments