Нема описа

api.py 5.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. from rest_framework import viewsets, status
  2. from rest_framework import routers
  3. from .models import (
  4. Role, Permission, RolePermission, User, Customer, Material, MaterialDetail,
  5. Operation, Regulation, ComplianceCheck, Report, AuditLog, Authority,
  6. SustainabilityTracking, SupportTicket
  7. )
  8. from .serializers import (
  9. RoleSerializer, PermissionSerializer, RolePermissionSerializer, UserSerializer,
  10. CustomerSerializer, MaterialSerializer, MaterialDetailSerializer, OperationSerializer,
  11. RegulationSerializer, ComplianceCheckSerializer, ReportSerializer, AuditLogSerializer,
  12. AuthoritySerializer, SustainabilityTrackingSerializer, SupportTicketSerializer
  13. )
  14. from tracking.models import Vehicle, Trip, MaintenanceLog, Appointment, GPSData, FuelTransaction
  15. from .serializers import VehicleSerializer, TripSerializer, MaintenanceLogSerializer, AppointmentSerializer,\
  16. GPSDataSerializer, FuelTransactionSerializer, UserProfileSerializer
  17. from rest_framework.permissions import IsAuthenticated
  18. from rest_framework.decorators import action
  19. from rest_framework.response import Response
  20. from userprofile.models import UserProfile
  21. # ViewSets define the view behavior.
  22. class RoleViewSet(viewsets.ModelViewSet):
  23. queryset = Role.objects.all()
  24. serializer_class = RoleSerializer
  25. class PermissionViewSet(viewsets.ModelViewSet):
  26. queryset = Permission.objects.all()
  27. serializer_class = PermissionSerializer
  28. class RolePermissionViewSet(viewsets.ModelViewSet):
  29. queryset = RolePermission.objects.all()
  30. serializer_class = RolePermissionSerializer
  31. class UserViewSet(viewsets.ModelViewSet):
  32. queryset = User.objects.all()
  33. serializer_class = UserSerializer
  34. class CustomerViewSet(viewsets.ModelViewSet):
  35. queryset = Customer.objects.all()
  36. serializer_class = CustomerSerializer
  37. class MaterialViewSet(viewsets.ModelViewSet):
  38. queryset = Material.objects.all()
  39. serializer_class = MaterialSerializer
  40. class MaterialDetailViewSet(viewsets.ModelViewSet):
  41. queryset = MaterialDetail.objects.all()
  42. serializer_class = MaterialDetailSerializer
  43. class OperationViewSet(viewsets.ModelViewSet):
  44. queryset = Operation.objects.all()
  45. serializer_class = OperationSerializer
  46. class RegulationViewSet(viewsets.ModelViewSet):
  47. queryset = Regulation.objects.all()
  48. serializer_class = RegulationSerializer
  49. class ComplianceCheckViewSet(viewsets.ModelViewSet):
  50. queryset = ComplianceCheck.objects.all()
  51. serializer_class = ComplianceCheckSerializer
  52. class ReportViewSet(viewsets.ModelViewSet):
  53. queryset = Report.objects.all()
  54. serializer_class = ReportSerializer
  55. class AuditLogViewSet(viewsets.ModelViewSet):
  56. queryset = AuditLog.objects.all()
  57. serializer_class = AuditLogSerializer
  58. class AuthorityViewSet(viewsets.ModelViewSet):
  59. queryset = Authority.objects.all()
  60. serializer_class = AuthoritySerializer
  61. class SustainabilityTrackingViewSet(viewsets.ModelViewSet):
  62. queryset = SustainabilityTracking.objects.all()
  63. serializer_class = SustainabilityTrackingSerializer
  64. class SupportTicketViewSet(viewsets.ModelViewSet):
  65. queryset = SupportTicket.objects.all()
  66. serializer_class = SupportTicketSerializer
  67. class VehicleViewSet(viewsets.ModelViewSet):
  68. queryset = Vehicle.objects.all()
  69. serializer_class = VehicleSerializer
  70. class TripViewSet(viewsets.ModelViewSet):
  71. queryset = Trip.objects.all()
  72. serializer_class = TripSerializer
  73. class MaintenanceLogViewSet(viewsets.ModelViewSet):
  74. queryset = MaintenanceLog.objects.all()
  75. serializer_class = MaintenanceLogSerializer
  76. class AppointmentViewSet(viewsets.ModelViewSet):
  77. queryset = Appointment.objects.all()
  78. serializer_class = AppointmentSerializer
  79. class GPSDataViewSet(viewsets.ModelViewSet):
  80. queryset = GPSData.objects.all()
  81. serializer_class = GPSDataSerializer
  82. class FuelTransactionViewSet(viewsets.ModelViewSet):
  83. queryset = FuelTransaction.objects.all()
  84. serializer_class = FuelTransactionSerializer
  85. class UserProfileViewSet(viewsets.ModelViewSet):
  86. queryset = UserProfile.objects.all()
  87. serializer_class = UserProfileSerializer
  88. permission_classes = [IsAuthenticated]
  89. @action(detail=False, methods=['get'], permission_classes=[IsAuthenticated])
  90. def myprofile(self, request):
  91. try:
  92. profile = UserProfile.objects.get(user=request.user)
  93. serializer = self.get_serializer(profile)
  94. return Response(serializer.data, status=status.HTTP_200_OK)
  95. except UserProfile.DoesNotExist:
  96. return Response({"detail": "Profile not found."}, status=status.HTTP_404_NOT_FOUND)
  97. # Routers provide an easy way of automatically determining the URL conf.
  98. router = routers.DefaultRouter()
  99. router.register(r'roles', RoleViewSet)
  100. router.register(r'permissions', PermissionViewSet)
  101. router.register(r'role_permissions', RolePermissionViewSet)
  102. router.register(r'users', UserViewSet)
  103. router.register(r'customers', CustomerViewSet)
  104. router.register(r'materials', MaterialViewSet)
  105. router.register(r'material_details', MaterialDetailViewSet)
  106. router.register(r'operations', OperationViewSet)
  107. router.register(r'regulations', RegulationViewSet)
  108. router.register(r'compliance_checks', ComplianceCheckViewSet)
  109. router.register(r'reports', ReportViewSet)
  110. router.register(r'audit_logs', AuditLogViewSet)
  111. router.register(r'authorities', AuthorityViewSet)
  112. router.register(r'sustainability_trackings', SustainabilityTrackingViewSet)
  113. router.register(r'support_tickets', SupportTicketViewSet)
  114. router.register(r'vehicles', VehicleViewSet)
  115. router.register(r'trips', TripViewSet)
  116. router.register(r'maintenance-logs', MaintenanceLogViewSet)
  117. router.register(r'appointments', AppointmentViewSet)
  118. router.register(r'gps-data', GPSDataViewSet)
  119. router.register(r'fuel-transactions', FuelTransactionViewSet)
  120. router.register(r'user-profiles', UserProfileViewSet)