@ -12,10 +12,12 @@ API redesign in preparation for moving the UI out of centurion to it's [own proj
|
||||
|
||||
We are make the above possible by ensuring a more stringent test policy.
|
||||
|
||||
- New API will be at path `api/v2` and will remain until v2.0.0 release of Centurion on which the `api/v2` path will be moved to `api`
|
||||
- New API will be at path `api/v2`.
|
||||
|
||||
- API v1 is now **Feature frozen** with only bug fixes being completed. It's recommended that you move to and start using API v2 as this has feature parity with API v1.
|
||||
|
||||
- API v1 is **depreciated**
|
||||
|
||||
- Depreciation of **ALL** API urls. API v1 Will be [removed in v2.0.0](https://github.com/nofusscomputing/centurion_erp/issues/343) release of Centurion.
|
||||
|
||||
|
||||
|
@ -17,7 +17,7 @@ class OrganizationBaseSerializer(serializers.ModelSerializer):
|
||||
return str( item )
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_v2_organization-detail", format="html"
|
||||
view_name="v2:_api_v2_organization-detail", format="html"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@ -47,8 +47,8 @@ class OrganizationModelSerializer(OrganizationBaseSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return {
|
||||
'_self': reverse("API:_api_v2_organization-detail", request=self._context['view'].request, kwargs={'pk': item.pk}),
|
||||
'teams': reverse("API:_api_v2_organization_team-list", request=self._context['view'].request, kwargs={'organization_id': item.pk}),
|
||||
'_self': reverse("v2:_api_v2_organization-detail", request=self._context['view'].request, kwargs={'pk': item.pk}),
|
||||
'teams': reverse("v2:_api_v2_organization_team-list", request=self._context['view'].request, kwargs={'organization_id': item.pk}),
|
||||
}
|
||||
|
||||
|
||||
|
@ -22,7 +22,7 @@ class TeamUserBaseSerializer(serializers.ModelSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return reverse(
|
||||
"API:_api_v2_organization_team_user-detail",
|
||||
"v2:_api_v2_organization_team_user-detail",
|
||||
request=self.context['view'].request,
|
||||
kwargs={
|
||||
'organization_id': item.team.organization.id,
|
||||
@ -58,7 +58,7 @@ class TeamUserModelSerializer(TeamUserBaseSerializer):
|
||||
|
||||
return {
|
||||
'_self': reverse(
|
||||
'API:_api_v2_organization_team_user-detail',
|
||||
'v2:_api_v2_organization_team_user-detail',
|
||||
request=self.context['view'].request,
|
||||
kwargs={
|
||||
'organization_id': item.team.organization.id,
|
||||
|
@ -23,7 +23,7 @@ class TeamBaseSerializer(serializers.ModelSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return reverse(
|
||||
"API:_api_v2_organization_team-detail",
|
||||
"v2:_api_v2_organization_team-detail",
|
||||
request=self.context['view'].request,
|
||||
kwargs={
|
||||
'organization_id': item.organization.id,
|
||||
@ -61,7 +61,7 @@ class TeamModelSerializer(TeamBaseSerializer):
|
||||
|
||||
return {
|
||||
'_self': reverse(
|
||||
'API:_api_v2_organization_team-detail',
|
||||
'v2:_api_v2_organization_team-detail',
|
||||
request=self.context['view'].request,
|
||||
kwargs={
|
||||
'organization_id': item.organization.id,
|
||||
@ -69,7 +69,7 @@ class TeamModelSerializer(TeamBaseSerializer):
|
||||
}
|
||||
),
|
||||
'users': reverse(
|
||||
'API:_api_v2_organization_team_user-list',
|
||||
'v2:_api_v2_organization_team_user-list',
|
||||
request=self.context['view'].request,
|
||||
kwargs={
|
||||
'organization_id': item.organization.id,
|
||||
|
@ -17,7 +17,7 @@ class OrganizationAPI(TestCase):
|
||||
|
||||
model = Organization
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = '_api_organization'
|
||||
|
||||
|
@ -21,7 +21,7 @@ class OrganizationAPI(
|
||||
|
||||
model = Organization
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_organization'
|
||||
|
||||
|
@ -20,7 +20,7 @@ class OrganizationPermissionsAPI(TestCase, APIPermissionChange, APIPermissionVie
|
||||
model_name = 'organization'
|
||||
app_label = 'access'
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = '_api_organization'
|
||||
|
||||
|
@ -21,7 +21,7 @@ class TeamAPI(TestCase):
|
||||
|
||||
model = Team
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = '_api_team'
|
||||
|
||||
|
@ -20,7 +20,7 @@ class TeamAPI(
|
||||
|
||||
model = Team
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_organization_team'
|
||||
|
||||
|
@ -18,7 +18,7 @@ class TeamPermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = Team
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = '_api_team'
|
||||
|
||||
|
@ -20,7 +20,7 @@ class TeamUserAPI(
|
||||
|
||||
model = TeamUsers
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_organization_team_user'
|
||||
|
||||
|
@ -25,6 +25,6 @@ class Index(CommonViewSet):
|
||||
|
||||
return Response(
|
||||
{
|
||||
"organization": reverse('API:_api_v2_organization-list', request=request)
|
||||
"organization": reverse('v2:_api_v2_organization-list', request=request)
|
||||
}
|
||||
)
|
||||
|
@ -25,7 +25,7 @@ class TeamSerializerBase(serializers.ModelSerializer):
|
||||
|
||||
request = self.context.get('request')
|
||||
|
||||
return request.build_absolute_uri(reverse("API:_api_team", args=[obj.organization.id,obj.pk]))
|
||||
return request.build_absolute_uri(reverse("v1:_api_team", args=[obj.organization.id,obj.pk]))
|
||||
|
||||
|
||||
|
||||
@ -48,7 +48,7 @@ class TeamSerializer(TeamSerializerBase):
|
||||
|
||||
team = Team.objects.get(pk=obj.id)
|
||||
|
||||
return request.build_absolute_uri(reverse('API:_api_team_permission', args=[team.organization_id,team.id]))
|
||||
return request.build_absolute_uri(reverse('v1:_api_team_permission', args=[team.organization_id,team.id]))
|
||||
|
||||
|
||||
def validate(self, data):
|
||||
@ -67,7 +67,7 @@ class TeamSerializer(TeamSerializerBase):
|
||||
|
||||
request = self.context.get('request')
|
||||
|
||||
return request.build_absolute_uri(reverse('API:_api_team', args=[obj.organization_id,obj.id]))
|
||||
return request.build_absolute_uri(reverse('v1:_api_team', args=[obj.organization_id,obj.id]))
|
||||
|
||||
|
||||
class Meta:
|
||||
@ -93,7 +93,7 @@ class TeamSerializer(TeamSerializerBase):
|
||||
class OrganizationListSerializer(serializers.ModelSerializer):
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_organization", format="html"
|
||||
view_name="v1:_api_organization", format="html"
|
||||
)
|
||||
|
||||
|
||||
@ -110,7 +110,7 @@ class OrganizationListSerializer(serializers.ModelSerializer):
|
||||
class OrganizationSerializer(serializers.ModelSerializer):
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_organization", format="html"
|
||||
view_name="v1:_api_organization", format="html"
|
||||
)
|
||||
|
||||
team_url = serializers.SerializerMethodField('get_url')
|
||||
@ -121,11 +121,11 @@ class OrganizationSerializer(serializers.ModelSerializer):
|
||||
|
||||
team = Team.objects.filter(pk=obj.id)
|
||||
|
||||
return request.build_absolute_uri(reverse('API:_api_organization_teams', args=[obj.id]))
|
||||
return request.build_absolute_uri(reverse('v1:_api_organization_teams', args=[obj.id]))
|
||||
|
||||
teams = TeamSerializer(source='team_set', many=True, read_only=False)
|
||||
|
||||
view_name="API:_api_organization"
|
||||
view_name="v1:_api_organization"
|
||||
|
||||
|
||||
class Meta:
|
||||
|
@ -28,7 +28,7 @@ class ParentGroupSerializer(serializers.ModelSerializer):
|
||||
|
||||
request = self.context.get('request')
|
||||
|
||||
return request.build_absolute_uri(reverse("API:_api_config_group", args=[obj.pk]))
|
||||
return request.build_absolute_uri(reverse("v1:_api_config_group", args=[obj.pk]))
|
||||
|
||||
|
||||
|
||||
@ -59,7 +59,7 @@ class ConfigGroupsSerializerBase(serializers.ModelSerializer):
|
||||
|
||||
request = self.context.get('request')
|
||||
|
||||
return request.build_absolute_uri(reverse("API:_api_config_group", args=[obj.pk]))
|
||||
return request.build_absolute_uri(reverse("v1:_api_config_group", args=[obj.pk]))
|
||||
|
||||
|
||||
|
||||
|
@ -54,7 +54,7 @@ class TicketSerializer(
|
||||
|
||||
return request.build_absolute_uri(
|
||||
reverse(
|
||||
'API:' + view_name + '-detail',
|
||||
'v1:' + view_name + '-detail',
|
||||
kwargs = kwargs
|
||||
)
|
||||
)
|
||||
@ -100,7 +100,7 @@ class TicketSerializer(
|
||||
|
||||
return request.build_absolute_uri(
|
||||
reverse(
|
||||
'API:' + view_name + '-list',
|
||||
'v1:' + view_name + '-list',
|
||||
kwargs = kwargs
|
||||
)
|
||||
)
|
||||
|
@ -15,7 +15,7 @@ class TicketCategorySerializer(
|
||||
):
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_ticket_category-detail", format="html"
|
||||
view_name="v1:_api_ticket_category-detail", format="html"
|
||||
)
|
||||
|
||||
|
||||
|
@ -38,7 +38,7 @@ class TicketCommentSerializer(serializers.ModelSerializer):
|
||||
|
||||
|
||||
return request.build_absolute_uri(
|
||||
reverse('API:' + view_name + '-detail',
|
||||
reverse('v1:' + view_name + '-detail',
|
||||
kwargs={
|
||||
'ticket_id': item.ticket.id,
|
||||
'pk': item.id
|
||||
|
@ -13,7 +13,7 @@ class TicketCommentCategorySerializer(
|
||||
):
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_ticket_comment_category-detail", format="html"
|
||||
view_name="v1:_api_ticket_comment_category-detail", format="html"
|
||||
)
|
||||
|
||||
|
||||
|
@ -13,7 +13,7 @@ from itam.models.device import Device
|
||||
class DeviceConfigGroupsSerializer(serializers.ModelSerializer):
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_config_group", format="html"
|
||||
view_name="v1:_api_config_group", format="html"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@ -36,7 +36,7 @@ class DeviceConfigGroupsSerializer(serializers.ModelSerializer):
|
||||
class DeviceSerializer(serializers.ModelSerializer):
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:device-detail", format="html"
|
||||
view_name="v1:device-detail", format="html"
|
||||
)
|
||||
|
||||
config = serializers.SerializerMethodField('get_device_config')
|
||||
@ -46,7 +46,7 @@ class DeviceSerializer(serializers.ModelSerializer):
|
||||
def get_device_config(self, device):
|
||||
|
||||
request = self.context.get('request')
|
||||
return request.build_absolute_uri(reverse('API:_api_device_config', args=[device.slug]))
|
||||
return request.build_absolute_uri(reverse('v1:_api_device_config', args=[device.slug]))
|
||||
|
||||
|
||||
class Meta:
|
||||
|
@ -7,7 +7,7 @@ from itam.models.device import Software
|
||||
class SoftwareSerializer(serializers.ModelSerializer):
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:software-detail", format="html"
|
||||
view_name="v1:software-detail", format="html"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
|
@ -19,7 +19,7 @@ class ProjectMilestoneSerializer(
|
||||
request = self.context.get('request')
|
||||
|
||||
return request.build_absolute_uri(
|
||||
reverse('API:_api_project_milestone-detail',
|
||||
reverse('v1:_api_project_milestone-detail',
|
||||
kwargs={
|
||||
'project_id': item.project.id,
|
||||
'pk': item.id
|
||||
|
@ -12,7 +12,7 @@ class ProjectStateSerializer(
|
||||
):
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_project_state-detail", format="html"
|
||||
view_name="v1:_api_project_state-detail", format="html"
|
||||
)
|
||||
|
||||
|
||||
|
@ -12,7 +12,7 @@ class ProjectTypeSerializer(
|
||||
):
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_project_state-detail", format="html"
|
||||
view_name="v1:_api_project_state-detail", format="html"
|
||||
)
|
||||
|
||||
|
||||
|
@ -22,7 +22,7 @@ class ProjectSerializer(
|
||||
|
||||
request = self.context.get('request')
|
||||
|
||||
return request.build_absolute_uri(reverse("API:_api_projects-detail", args=[item.pk]))
|
||||
return request.build_absolute_uri(reverse("v1:_api_projects-detail", args=[item.pk]))
|
||||
|
||||
|
||||
project_tasks_url = serializers.SerializerMethodField('get_url_project_tasks')
|
||||
@ -34,7 +34,7 @@ class ProjectSerializer(
|
||||
|
||||
return request.build_absolute_uri(
|
||||
reverse(
|
||||
'API:_api_project_tasks-list',
|
||||
'v1:_api_project_tasks-list',
|
||||
kwargs={
|
||||
'project_id': item.id
|
||||
}
|
||||
@ -50,7 +50,7 @@ class ProjectSerializer(
|
||||
|
||||
return request.build_absolute_uri(
|
||||
reverse(
|
||||
'API:_api_project_milestone-list',
|
||||
'v1:_api_project_milestone-list',
|
||||
kwargs={
|
||||
'project_id': item.id
|
||||
}
|
||||
|
@ -160,7 +160,7 @@ class InventoryAPI(TestCase):
|
||||
"""
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_device_inventory')
|
||||
url = reverse('v1:_api_device_inventory')
|
||||
|
||||
client.force_login(self.add_user)
|
||||
response = client.post(url, data=self.inventory, content_type='application/json')
|
||||
@ -182,7 +182,7 @@ class InventoryAPI(TestCase):
|
||||
"""
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_device_inventory')
|
||||
url = reverse('v1:_api_device_inventory')
|
||||
|
||||
client.force_login(self.add_user)
|
||||
response = client.post(url, data=self.inventory, content_type='application/json')
|
||||
@ -201,7 +201,7 @@ class InventoryAPI(TestCase):
|
||||
"""
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_device_inventory')
|
||||
url = reverse('v1:_api_device_inventory')
|
||||
|
||||
client.force_login(self.add_user)
|
||||
response = client.post(url, data=self.inventory, content_type='application/json')
|
||||
@ -220,7 +220,7 @@ class InventoryAPI(TestCase):
|
||||
"""
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_device_inventory')
|
||||
url = reverse('v1:_api_device_inventory')
|
||||
|
||||
client.force_login(self.add_user)
|
||||
response = client.post(url, data=self.inventory, content_type='application/json')
|
||||
@ -239,7 +239,7 @@ class InventoryAPI(TestCase):
|
||||
"""
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_device_inventory')
|
||||
url = reverse('v1:_api_device_inventory')
|
||||
|
||||
client.force_login(self.add_user)
|
||||
response = client.post(url, data=self.inventory, content_type='application/json')
|
||||
@ -395,7 +395,7 @@ class InventoryAPI(TestCase):
|
||||
""" Successful inventory upload returns 200 for existing device"""
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_device_inventory')
|
||||
url = reverse('v1:_api_device_inventory')
|
||||
|
||||
client.force_login(self.add_user)
|
||||
response = client.post(url, data=self.inventory, content_type='application/json')
|
||||
@ -409,7 +409,7 @@ class InventoryAPI(TestCase):
|
||||
""" Incorrectly formated inventory upload returns 400 """
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_device_inventory')
|
||||
url = reverse('v1:_api_device_inventory')
|
||||
|
||||
mod_inventory = self.inventory.copy()
|
||||
|
||||
|
@ -201,7 +201,7 @@ class InventoryPermissionsAPI(TestCase):
|
||||
"""
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_device_inventory')
|
||||
url = reverse('v1:_api_device_inventory')
|
||||
|
||||
|
||||
response = client.put(url, data=self.inventory, content_type='application/json')
|
||||
@ -218,7 +218,7 @@ class InventoryPermissionsAPI(TestCase):
|
||||
"""
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_device_inventory')
|
||||
url = reverse('v1:_api_device_inventory')
|
||||
|
||||
|
||||
client.force_login(self.no_permissions_user)
|
||||
@ -236,7 +236,7 @@ class InventoryPermissionsAPI(TestCase):
|
||||
"""
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_device_inventory')
|
||||
url = reverse('v1:_api_device_inventory')
|
||||
|
||||
|
||||
client.force_login(self.different_organization_user)
|
||||
@ -254,7 +254,7 @@ class InventoryPermissionsAPI(TestCase):
|
||||
"""
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_device_inventory')
|
||||
url = reverse('v1:_api_device_inventory')
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
@ -272,7 +272,7 @@ class InventoryPermissionsAPI(TestCase):
|
||||
"""
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_device_inventory')
|
||||
url = reverse('v1:_api_device_inventory')
|
||||
|
||||
|
||||
client.force_login(self.add_user)
|
||||
|
146
app/api/urls.py
146
app/api/urls.py
@ -29,81 +29,6 @@ from .views.itam.device import DeviceViewSet
|
||||
from .views.itam import inventory
|
||||
|
||||
|
||||
from api.viewsets import (
|
||||
index as v2
|
||||
)
|
||||
|
||||
from app.viewsets.base import (
|
||||
index as base_index_v2,
|
||||
content_type as content_type_v2,
|
||||
permisson as permission_v2,
|
||||
user as user_v2
|
||||
)
|
||||
|
||||
from access.viewsets import (
|
||||
index as access_v2,
|
||||
organization as organization_v2,
|
||||
team as team_v2,
|
||||
team_user as team_user_v2
|
||||
)
|
||||
|
||||
from assistance.viewsets import (
|
||||
index as assistance_index_v2,
|
||||
knowledge_base as knowledge_base_v2,
|
||||
knowledge_base_category as knowledge_base_category_v2
|
||||
)
|
||||
|
||||
from config_management.viewsets import (
|
||||
index as config_management_v2,
|
||||
config_group as config_group_v2,
|
||||
config_group_software as config_group_software_v2
|
||||
)
|
||||
|
||||
from core.viewsets import (
|
||||
history as history_v2,
|
||||
notes as notes_v2,
|
||||
manufacturer as manufacturer_v2,
|
||||
celery_log as celery_log_v2
|
||||
)
|
||||
|
||||
from itam.viewsets import (
|
||||
index as itam_index_v2,
|
||||
device as device_v2,
|
||||
device_model as device_model_v2,
|
||||
device_type as device_type_v2,
|
||||
device_software as device_software_v2,
|
||||
operating_system as operating_system_v2,
|
||||
operating_system_version as operating_system_version_v2,
|
||||
software as software_v2,
|
||||
software_category as software_category_v2,
|
||||
software_version as software_version_v2,
|
||||
)
|
||||
|
||||
from itim.viewsets import (
|
||||
index as itim_v2,
|
||||
cluster as cluster_v2,
|
||||
cluster_type as cluster_type_v2,
|
||||
port as port_v2,
|
||||
service as service_v2,
|
||||
service_device as service_device_v2
|
||||
)
|
||||
|
||||
from project_management.viewsets import (
|
||||
index as project_management_v2,
|
||||
project as project_v2,
|
||||
project_milestone as project_milestone_v2,
|
||||
project_state as project_state_v2,
|
||||
project_type as project_type_v2,
|
||||
)
|
||||
|
||||
from settings.viewsets import (
|
||||
app_settings as app_settings_v2,
|
||||
external_link as external_link_v2,
|
||||
index as settings_index_v2,
|
||||
user_settings as user_settings_v2
|
||||
)
|
||||
|
||||
|
||||
app_name = "API"
|
||||
|
||||
|
||||
@ -139,81 +64,10 @@ router.register('settings/ticket_comment_categories', ticket_comment_categories.
|
||||
router.register('software', software.SoftwareViewSet, basename='software')
|
||||
|
||||
|
||||
# API V2
|
||||
router.register('v2', v2.Index, basename='_api_v2_home')
|
||||
|
||||
router.register('v2/access', access_v2.Index, basename='_api_v2_access_home')
|
||||
router.register('v2/access/organization', organization_v2.ViewSet, basename='_api_v2_organization')
|
||||
router.register('v2/access/organization/(?P<organization_id>[0-9]+)/team', team_v2.ViewSet, basename='_api_v2_organization_team')
|
||||
router.register('v2/access/organization/(?P<organization_id>[0-9]+)/team/(?P<team_id>[0-9]+)/user', team_user_v2.ViewSet, basename='_api_v2_organization_team_user')
|
||||
|
||||
router.register('v2/assistance', assistance_index_v2.Index, basename='_api_v2_assistance_home')
|
||||
router.register('v2/assistance/knowledge_base', knowledge_base_v2.ViewSet, basename='_api_v2_knowledge_base')
|
||||
|
||||
router.register('v2/base', base_index_v2.Index, basename='_api_v2_base_home')
|
||||
router.register('v2/base/content_type', content_type_v2.ViewSet, basename='_api_v2_content_type')
|
||||
router.register('v2/base/permission', permission_v2.ViewSet, basename='_api_v2_permission')
|
||||
router.register('v2/base/user', user_v2.ViewSet, basename='_api_v2_user')
|
||||
|
||||
router.register('v2/config_management', config_management_v2.Index, basename='_api_v2_config_management_home')
|
||||
router.register('v2/config_management/group', config_group_v2.ViewSet, basename='_api_v2_config_group')
|
||||
router.register('v2/config_management/group/(?P<parent_group>[0-9]+)/child_group', config_group_v2.ViewSet, basename='_api_v2_config_group_child')
|
||||
router.register('v2/config_management/group/(?P<group_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_config_group_notes')
|
||||
router.register('v2/config_management/group/(?P<group_id>[0-9]+)/software', config_group_software_v2.ViewSet, basename='_api_v2_config_group_software')
|
||||
|
||||
router.register('v2/core/(?P<model_class>.+)/(?P<model_id>[0-9]+)/history', history_v2.ViewSet, basename='_api_v2_model_history')
|
||||
|
||||
router.register('v2/itam', itam_index_v2.Index, basename='_api_v2_itam_home')
|
||||
router.register('v2/itam/device', device_v2.ViewSet, basename='_api_v2_device')
|
||||
router.register('v2/itam/device/(?P<device_id>[0-9]+)/software', device_software_v2.ViewSet, basename='_api_v2_device_software')
|
||||
router.register('v2/itam/device/(?P<device_id>[0-9]+)/service', service_device_v2.ViewSet, basename='_api_v2_service_device')
|
||||
router.register('v2/itam/device/(?P<device_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_device_notes')
|
||||
router.register('v2/itam/operating_system', operating_system_v2.ViewSet, basename='_api_v2_operating_system')
|
||||
router.register('v2/itam/operating_system/(?P<operating_system_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_operating_system_notes')
|
||||
router.register('v2/itam/operating_system/(?P<operating_system_id>[0-9]+)/version', operating_system_version_v2.ViewSet, basename='_api_v2_operating_system_version')
|
||||
router.register('v2/itam/software', software_v2.ViewSet, basename='_api_v2_software')
|
||||
router.register('v2/itam/software/(?P<software_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_software_notes')
|
||||
router.register('v2/itam/software/(?P<software_id>[0-9]+)/version', software_version_v2.ViewSet, basename='_api_v2_software_version')
|
||||
|
||||
router.register('v2/itim', itim_v2.Index, basename='_api_v2_itim_home')
|
||||
router.register('v2/itim/cluster', cluster_v2.ViewSet, basename='_api_v2_cluster')
|
||||
router.register('v2/itim/cluster/(?P<cluster_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_cluster_notes')
|
||||
router.register('v2/itim/service', service_v2.ViewSet, basename='_api_v2_service')
|
||||
router.register('v2/itim/service/(?P<service_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_service_notes')
|
||||
|
||||
router.register('v2/project_management', project_management_v2.Index, basename='_api_v2_project_management_home')
|
||||
router.register('v2/project_management/project', project_v2.ViewSet, basename='_api_v2_project')
|
||||
router.register('v2/project_management/project/(?P<project_id>[0-9]+)/milestone', project_milestone_v2.ViewSet, basename='_api_v2_project_milestone')
|
||||
router.register('v2/itim/project_management/project/(?P<project_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_project_notes')
|
||||
|
||||
router.register('v2/settings', settings_index_v2.Index, basename='_api_v2_settings_home')
|
||||
router.register('v2/settings/app_settings', app_settings_v2.ViewSet, basename='_api_v2_app_settings')
|
||||
router.register('v2/settings/cluster_type', cluster_type_v2.ViewSet, basename='_api_v2_cluster_type')
|
||||
router.register('v2/settings/cluster_type/(?P<cluster_type_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_cluster_type_notes')
|
||||
router.register('v2/settings/device_model', device_model_v2.ViewSet, basename='_api_v2_device_model')
|
||||
router.register('v2/settings/device_type', device_type_v2.ViewSet, basename='_api_v2_device_type')
|
||||
router.register('v2/settings/external_link', external_link_v2.ViewSet, basename='_api_v2_external_link')
|
||||
router.register('v2/settings/knowledge_base_category', knowledge_base_category_v2.ViewSet, basename='_api_v2_knowledge_base_category')
|
||||
router.register('v2/settings/manufacturer', manufacturer_v2.ViewSet, basename='_api_v2_manufacturer')
|
||||
router.register('v2/settings/manufacturer/(?P<manufacturer_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_manufacturer_notes')
|
||||
router.register('v2/settings/port', port_v2.ViewSet, basename='_api_v2_port')
|
||||
router.register('v2/settings/port/(?P<port_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_port_notes')
|
||||
router.register('v2/settings/project_state', project_state_v2.ViewSet, basename='_api_v2_project_state')
|
||||
router.register('v2/settings/project_type', project_type_v2.ViewSet, basename='_api_v2_project_type')
|
||||
router.register('v2/settings/software_category', software_category_v2.ViewSet, basename='_api_v2_software_category')
|
||||
router.register('v2/settings/user_settings', user_settings_v2.ViewSet, basename='_api_v2_user_settings')
|
||||
|
||||
|
||||
router.register('v2/settings/celery_log', celery_log_v2.ViewSet, basename='_api_v2_celery_log')
|
||||
|
||||
urlpatterns = [
|
||||
|
||||
path("assistance", assistance.index.Index.as_view(), name="_api_assistance"),
|
||||
|
||||
#
|
||||
# Sof Old Paths to be refactored
|
||||
#
|
||||
|
||||
path("config/<slug:slug>/", itam_config.View.as_view(), name="_api_device_config"),
|
||||
|
||||
path("configuration/", config.ConfigGroupsList.as_view(), name='_api_config_groups'),
|
||||
|
167
app/api/urls_v2.py
Normal file
167
app/api/urls_v2.py
Normal file
@ -0,0 +1,167 @@
|
||||
from django.urls import path
|
||||
|
||||
from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView
|
||||
|
||||
from rest_framework.routers import DefaultRouter
|
||||
|
||||
from api.viewsets import (
|
||||
index as v2
|
||||
)
|
||||
|
||||
from app.viewsets.base import (
|
||||
index as base_index_v2,
|
||||
content_type as content_type_v2,
|
||||
permisson as permission_v2,
|
||||
user as user_v2
|
||||
)
|
||||
|
||||
from access.viewsets import (
|
||||
index as access_v2,
|
||||
organization as organization_v2,
|
||||
team as team_v2,
|
||||
team_user as team_user_v2
|
||||
)
|
||||
|
||||
from assistance.viewsets import (
|
||||
index as assistance_index_v2,
|
||||
knowledge_base as knowledge_base_v2,
|
||||
knowledge_base_category as knowledge_base_category_v2,
|
||||
)
|
||||
|
||||
from config_management.viewsets import (
|
||||
index as config_management_v2,
|
||||
config_group as config_group_v2,
|
||||
config_group_software as config_group_software_v2
|
||||
)
|
||||
|
||||
from core.viewsets import (
|
||||
history as history_v2,
|
||||
notes as notes_v2,
|
||||
manufacturer as manufacturer_v2,
|
||||
celery_log as celery_log_v2
|
||||
)
|
||||
|
||||
from itam.viewsets import (
|
||||
index as itam_index_v2,
|
||||
device as device_v2,
|
||||
device_model as device_model_v2,
|
||||
device_type as device_type_v2,
|
||||
device_software as device_software_v2,
|
||||
operating_system as operating_system_v2,
|
||||
operating_system_version as operating_system_version_v2,
|
||||
software as software_v2,
|
||||
software_category as software_category_v2,
|
||||
software_version as software_version_v2,
|
||||
)
|
||||
|
||||
from itim.viewsets import (
|
||||
index as itim_v2,
|
||||
cluster as cluster_v2,
|
||||
cluster_type as cluster_type_v2,
|
||||
port as port_v2,
|
||||
service as service_v2,
|
||||
service_device as service_device_v2
|
||||
)
|
||||
|
||||
from project_management.viewsets import (
|
||||
index as project_management_v2,
|
||||
project as project_v2,
|
||||
project_milestone as project_milestone_v2,
|
||||
project_state as project_state_v2,
|
||||
project_type as project_type_v2,
|
||||
)
|
||||
|
||||
from settings.viewsets import (
|
||||
app_settings as app_settings_v2,
|
||||
external_link as external_link_v2,
|
||||
index as settings_index_v2,
|
||||
user_settings as user_settings_v2
|
||||
)
|
||||
|
||||
app_name = "API"
|
||||
|
||||
|
||||
router = DefaultRouter(trailing_slash=False)
|
||||
|
||||
|
||||
router.register('', v2.Index, basename='_api_v2_home')
|
||||
|
||||
router.register('access', access_v2.Index, basename='_api_v2_access_home')
|
||||
router.register('access/organization', organization_v2.ViewSet, basename='_api_v2_organization')
|
||||
router.register('access/organization/(?P<organization_id>[0-9]+)/team', team_v2.ViewSet, basename='_api_v2_organization_team')
|
||||
router.register('access/organization/(?P<organization_id>[0-9]+)/team/(?P<team_id>[0-9]+)/user', team_user_v2.ViewSet, basename='_api_v2_organization_team_user')
|
||||
|
||||
|
||||
router.register('assistance', assistance_index_v2.Index, basename='_api_v2_assistance_home')
|
||||
router.register('assistance/knowledge_base', knowledge_base_v2.ViewSet, basename='_api_v2_knowledge_base')
|
||||
|
||||
|
||||
router.register('base', base_index_v2.Index, basename='_api_v2_base_home')
|
||||
router.register('base/content_type', content_type_v2.ViewSet, basename='_api_v2_content_type')
|
||||
router.register('base/permission', permission_v2.ViewSet, basename='_api_v2_permission')
|
||||
router.register('base/user', user_v2.ViewSet, basename='_api_v2_user')
|
||||
|
||||
|
||||
router.register('config_management', config_management_v2.Index, basename='_api_v2_config_management_home')
|
||||
router.register('config_management/group', config_group_v2.ViewSet, basename='_api_v2_config_group')
|
||||
router.register('config_management/group/(?P<parent_group>[0-9]+)/child_group', config_group_v2.ViewSet, basename='_api_v2_config_group_child')
|
||||
router.register('config_management/group/(?P<group_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_config_group_notes')
|
||||
router.register('config_management/group/(?P<group_id>[0-9]+)/software', config_group_software_v2.ViewSet, basename='_api_v2_config_group_software')
|
||||
|
||||
|
||||
router.register('core/(?P<model_class>.+)/(?P<model_id>[0-9]+)/history', history_v2.ViewSet, basename='_api_v2_model_history')
|
||||
|
||||
|
||||
router.register('itam', itam_index_v2.Index, basename='_api_v2_itam_home')
|
||||
router.register('itam/device', device_v2.ViewSet, basename='_api_v2_device')
|
||||
router.register('itam/device/(?P<device_id>[0-9]+)/software', device_software_v2.ViewSet, basename='_api_v2_device_software')
|
||||
router.register('itam/device/(?P<device_id>[0-9]+)/service', service_device_v2.ViewSet, basename='_api_v2_service_device')
|
||||
router.register('itam/device/(?P<device_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_device_notes')
|
||||
router.register('itam/operating_system', operating_system_v2.ViewSet, basename='_api_v2_operating_system')
|
||||
router.register('itam/operating_system/(?P<operating_system_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_operating_system_notes')
|
||||
router.register('itam/operating_system/(?P<operating_system_id>[0-9]+)/version', operating_system_version_v2.ViewSet, basename='_api_v2_operating_system_version')
|
||||
router.register('itam/software', software_v2.ViewSet, basename='_api_v2_software')
|
||||
router.register('itam/software/(?P<software_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_software_notes')
|
||||
router.register('itam/software/(?P<software_id>[0-9]+)/version', software_version_v2.ViewSet, basename='_api_v2_software_version')
|
||||
|
||||
|
||||
router.register('itim', itim_v2.Index, basename='_api_v2_itim_home')
|
||||
router.register('itim/cluster', cluster_v2.ViewSet, basename='_api_v2_cluster')
|
||||
router.register('itim/cluster/(?P<cluster_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_cluster_notes')
|
||||
router.register('itim/service', service_v2.ViewSet, basename='_api_v2_service')
|
||||
router.register('itim/service/(?P<service_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_service_notes')
|
||||
|
||||
|
||||
router.register('project_management', project_management_v2.Index, basename='_api_v2_project_management_home')
|
||||
router.register('project_management/project', project_v2.ViewSet, basename='_api_v2_project')
|
||||
router.register('project_management/project/(?P<project_id>[0-9]+)/milestone', project_milestone_v2.ViewSet, basename='_api_v2_project_milestone')
|
||||
router.register('itim/project_management/project/(?P<project_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_project_notes')
|
||||
|
||||
|
||||
router.register('settings', settings_index_v2.Index, basename='_api_v2_settings_home')
|
||||
router.register('settings/app_settings', app_settings_v2.ViewSet, basename='_api_v2_app_settings')
|
||||
router.register('settings/celery_log', celery_log_v2.ViewSet, basename='_api_v2_celery_log')
|
||||
router.register('settings/cluster_type', cluster_type_v2.ViewSet, basename='_api_v2_cluster_type')
|
||||
router.register('settings/cluster_type/(?P<cluster_type_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_cluster_type_notes')
|
||||
router.register('settings/device_model', device_model_v2.ViewSet, basename='_api_v2_device_model')
|
||||
router.register('settings/device_type', device_type_v2.ViewSet, basename='_api_v2_device_type')
|
||||
router.register('settings/external_link', external_link_v2.ViewSet, basename='_api_v2_external_link')
|
||||
router.register('settings/knowledge_base_category', knowledge_base_category_v2.ViewSet, basename='_api_v2_knowledge_base_category')
|
||||
router.register('settings/manufacturer', manufacturer_v2.ViewSet, basename='_api_v2_manufacturer')
|
||||
router.register('settings/manufacturer/(?P<manufacturer_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_manufacturer_notes')
|
||||
router.register('settings/port', port_v2.ViewSet, basename='_api_v2_port')
|
||||
router.register('settings/port/(?P<port_id>[0-9]+)/notes', notes_v2.ViewSet, basename='_api_v2_port_notes')
|
||||
router.register('settings/project_state', project_state_v2.ViewSet, basename='_api_v2_project_state')
|
||||
router.register('settings/project_type', project_type_v2.ViewSet, basename='_api_v2_project_type')
|
||||
router.register('settings/software_category', software_category_v2.ViewSet, basename='_api_v2_software_category')
|
||||
router.register('settings/user_settings', user_settings_v2.ViewSet, basename='_api_v2_user_settings')
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
|
||||
path('schema', SpectacularAPIView.as_view(api_version='v2'), name='schema-v2',),
|
||||
path('docs', SpectacularSwaggerView.as_view(url_name='schema-v2'), name='_api_v2_docs'),
|
||||
|
||||
]
|
||||
|
||||
urlpatterns += router.urls
|
@ -29,7 +29,7 @@ class Index(views.APIView):
|
||||
def get(self, request, *args, **kwargs):
|
||||
|
||||
body: dict = {
|
||||
'requests': reverse('API:_api_assistance_request-list', request=request)
|
||||
'requests': reverse('v1:_api_assistance_request-list', request=request)
|
||||
}
|
||||
|
||||
return Response(body)
|
||||
|
@ -18,10 +18,10 @@ class Index(viewsets.ViewSet):
|
||||
|
||||
|
||||
def get_view_name(self):
|
||||
return "API Index"
|
||||
return "API"
|
||||
|
||||
def get_view_description(self, html=False) -> str:
|
||||
text = "My REST API"
|
||||
text = "Centurion ERP Rest API"
|
||||
if html:
|
||||
return mark_safe(f"<p>{text}</p>")
|
||||
else:
|
||||
@ -32,15 +32,15 @@ class Index(viewsets.ViewSet):
|
||||
|
||||
API: dict = {
|
||||
# "teams": reverse("_api_teams", request=request),
|
||||
'assistance': reverse("API:_api_assistance", request=request),
|
||||
"devices": reverse("API:device-list", request=request),
|
||||
"config_groups": reverse("API:_api_config_groups", request=request),
|
||||
'itim': reverse("API:_api_itim", request=request),
|
||||
"organizations": reverse("API:_api_orgs", request=request),
|
||||
'project_management': reverse("API:_api_project_management", request=request),
|
||||
"settings": reverse('API:_settings', request=request),
|
||||
"software": reverse("API:software-list", request=request),
|
||||
'v2': reverse("API:_api_v2_home-list", request=request)
|
||||
'assistance': reverse("v1:_api_assistance", request=request),
|
||||
"devices": reverse("v1:device-list", request=request),
|
||||
"config_groups": reverse("v1:_api_config_groups", request=request),
|
||||
'itim': reverse("v1:_api_itim", request=request),
|
||||
"organizations": reverse("v1:_api_orgs", request=request),
|
||||
'project_management': reverse("v1:_api_project_management", request=request),
|
||||
"settings": reverse('v1:_settings', request=request),
|
||||
"software": reverse("v1:software-list", request=request),
|
||||
'v2': reverse("v2:_api_v2_home-list", request=request)
|
||||
}
|
||||
|
||||
return Response( API )
|
||||
|
@ -28,9 +28,9 @@ class Index(views.APIView):
|
||||
def get(self, request, *args, **kwargs):
|
||||
|
||||
body: dict = {
|
||||
'changes': reverse('API:_api_itim_change-list', request=request),
|
||||
'incidents': reverse('API:_api_itim_incident-list', request=request),
|
||||
'problems': reverse('API:_api_itim_problem-list', request=request),
|
||||
'changes': reverse('v1:_api_itim_change-list', request=request),
|
||||
'incidents': reverse('v1:_api_itim_incident-list', request=request),
|
||||
'problems': reverse('v1:_api_itim_problem-list', request=request),
|
||||
}
|
||||
|
||||
return Response(body)
|
||||
|
@ -30,7 +30,7 @@ class Index(views.APIView):
|
||||
def get(self, request, *args, **kwargs):
|
||||
|
||||
body: dict = {
|
||||
'projects': reverse('API:_api_projects-list', request=request)
|
||||
'projects': reverse('v1:_api_projects-list', request=request)
|
||||
}
|
||||
|
||||
return Response(body)
|
||||
|
@ -37,11 +37,11 @@ class View(views.APIView):
|
||||
status = Http.Status.OK
|
||||
|
||||
response_data: dict = {
|
||||
"permissions": reverse('API:_settings_permissions', request=request),
|
||||
"project_state": reverse('API:_api_project_state-list', request=request),
|
||||
"project_type": reverse('API:_api_project_type-list', request=request),
|
||||
"ticket_categories": reverse('API:_api_ticket_category-list', request=request),
|
||||
"ticket_comment_categories": reverse('API:_api_ticket_comment_category-list', request=request)
|
||||
"permissions": reverse('v1:_settings_permissions', request=request),
|
||||
"project_state": reverse('v1:_api_project_state-list', request=request),
|
||||
"project_type": reverse('v1:_api_project_type-list', request=request),
|
||||
"ticket_categories": reverse('v1:_api_ticket_category-list', request=request),
|
||||
"ticket_comment_categories": reverse('v1:_api_ticket_comment_category-list', request=request)
|
||||
}
|
||||
|
||||
return Response(data=response_data,status=status)
|
||||
|
@ -16,26 +16,23 @@ class Index(CommonViewSet):
|
||||
'OPTIONS'
|
||||
]
|
||||
|
||||
view_description = """Centurion ERP API V2.
|
||||
view_description = 'Centurion ERP API V2.'
|
||||
|
||||
This endpoint will move to path `/api/` on release of
|
||||
v2.0.0 of Centurion ERP.
|
||||
"""
|
||||
|
||||
view_name = "API v2"
|
||||
view_name = "v2"
|
||||
|
||||
|
||||
def list(self, request, *args, **kwargs):
|
||||
|
||||
return Response(
|
||||
{
|
||||
"access": reverse('API:_api_v2_access_home-list', request=request),
|
||||
"assistance": reverse('API:_api_v2_assistance_home-list', request=request),
|
||||
"base": reverse('API:_api_v2_base_home-list', request=request),
|
||||
"itam": reverse('API:_api_v2_itam_home-list', request=request),
|
||||
"itim": reverse('API:_api_v2_itim_home-list', request=request),
|
||||
"config_management": reverse('API:_api_v2_config_management_home-list', request=request),
|
||||
"project_management": reverse('API:_api_v2_project_management_home-list', request=request),
|
||||
"settings": reverse('API:_api_v2_settings_home-list', request=request)
|
||||
"access": reverse('v2:_api_v2_access_home-list', request=request),
|
||||
"assistance": reverse('v2:_api_v2_assistance_home-list', request=request),
|
||||
"docs": reverse('v2:_api_v2_docs', request=request),
|
||||
"base": reverse('v2:_api_v2_base_home-list', request=request),
|
||||
"itam": reverse('v2:_api_v2_itam_home-list', request=request),
|
||||
"itim": reverse('v2:_api_v2_itim_home-list', request=request),
|
||||
"config_management": reverse('v2:_api_v2_config_management_home-list', request=request),
|
||||
"project_management": reverse('v2:_api_v2_project_management_home-list', request=request),
|
||||
"settings": reverse('v2:_api_v2_settings_home-list', request=request)
|
||||
}
|
||||
)
|
||||
|
@ -15,7 +15,7 @@ class ContentTypeBaseSerializer(serializers.ModelSerializer):
|
||||
return str( item )
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_v2_content_type-detail", format="html"
|
||||
view_name="v2:_api_v2_content_type-detail", format="html"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@ -46,7 +46,7 @@ class ContentTypeViewSerializer(ContentTypeBaseSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return {
|
||||
'_self': reverse("API:_api_v2_content_type-detail", request=self._context['view'].request, kwargs={'pk': item.pk}),
|
||||
'_self': reverse("v2:_api_v2_content_type-detail", request=self._context['view'].request, kwargs={'pk': item.pk}),
|
||||
}
|
||||
|
||||
|
||||
|
@ -16,7 +16,7 @@ class PermissionBaseSerializer(serializers.ModelSerializer):
|
||||
return str( item )
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_v2_permission-detail", format="html"
|
||||
view_name="v2:_api_v2_permission-detail", format="html"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@ -49,7 +49,7 @@ class PermissionViewSerializer(PermissionBaseSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return {
|
||||
'_self': reverse("API:_api_v2_permission-detail", request=self._context['view'].request, kwargs={'pk': item.pk}),
|
||||
'_self': reverse("v2:_api_v2_permission-detail", request=self._context['view'].request, kwargs={'pk': item.pk}),
|
||||
}
|
||||
|
||||
|
||||
|
@ -14,7 +14,7 @@ class UserBaseSerializer(serializers.ModelSerializer):
|
||||
return str( item )
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_v2_user-detail", format="html"
|
||||
view_name="v2:_api_v2_user-detail", format="html"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
|
@ -274,12 +274,19 @@ if API_ENABLED:
|
||||
# 'TEST_REQUEST_DEFAULT_FORMAT': 'vnd.api+json'
|
||||
'TEST_REQUEST_DEFAULT_FORMAT': 'json',
|
||||
'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
|
||||
'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.NamespaceVersioning',
|
||||
'DEFAULT_VERSION': 'v1',
|
||||
'ALLOWED_VERSIONS': [
|
||||
'v1',
|
||||
'v2'
|
||||
]
|
||||
}
|
||||
|
||||
SPECTACULAR_SETTINGS = {
|
||||
'TITLE': 'ITSM API',
|
||||
'DESCRIPTION': """This UI is intended to serve as the API documentation.
|
||||
'TITLE': 'Centurion ERP API',
|
||||
'DESCRIPTION': """This UI exists to server the purpose of being the API documentation.
|
||||
|
||||
Centurion ERP's API is versioned, with [v1 Depreciated](/api/swagger) and [v2 as the current](/api/v2/docs).
|
||||
## Authentication
|
||||
|
||||
Access to the API is restricted and requires authentication. Available authentication methods are:
|
||||
@ -308,10 +315,9 @@ curl:
|
||||
```
|
||||
|
||||
""",
|
||||
'VERSION': '1.0.0',
|
||||
'VERSION': '',
|
||||
'SCHEMA_PATH_PREFIX': '/api/v2/|/api/',
|
||||
'SERVE_INCLUDE_SCHEMA': False,
|
||||
|
||||
'SWAGGER_UI_DIST': 'SIDECAR',
|
||||
'SWAGGER_UI_FAVICON_HREF': 'SIDECAR',
|
||||
'REDOC_DIST': 'SIDECAR',
|
||||
|
@ -66,11 +66,15 @@ if settings.SSO_ENABLED:
|
||||
|
||||
|
||||
if settings.API_ENABLED:
|
||||
|
||||
urlpatterns += [
|
||||
|
||||
path("api/", include("api.urls")),
|
||||
path('api/schema/', SpectacularAPIView.as_view(), name='schema'),
|
||||
path("api/", include("api.urls", namespace = 'v1')),
|
||||
path('api/schema/', SpectacularAPIView.as_view(api_version='v1'), name='schema'),
|
||||
path('api/swagger/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'),
|
||||
|
||||
path("api/v2/", include("api.urls_v2", namespace = 'v2')),
|
||||
|
||||
]
|
||||
|
||||
|
||||
|
@ -24,8 +24,8 @@ class Index(CommonViewSet):
|
||||
|
||||
return Response(
|
||||
{
|
||||
"content_type": reverse('API:_api_v2_content_type-list', request=request),
|
||||
"permission": reverse('API:_api_v2_permission-list', request=request),
|
||||
"user": reverse('API:_api_v2_user-list', request=request)
|
||||
"content_type": reverse('v2:_api_v2_content_type-list', request=request),
|
||||
"permission": reverse('v2:_api_v2_permission-list', request=request),
|
||||
"user": reverse('v2:_api_v2_user-list', request=request)
|
||||
}
|
||||
)
|
||||
|
@ -26,7 +26,7 @@ class KnowledgeBaseBaseSerializer(serializers.ModelSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return reverse(
|
||||
"API:_api_v2_knowledge_base-detail",
|
||||
"v2:_api_v2_knowledge_base-detail",
|
||||
request=self.context['view'].request,
|
||||
kwargs={
|
||||
'pk': item.pk
|
||||
@ -63,29 +63,29 @@ class KnowledgeBaseModelSerializer(KnowledgeBaseBaseSerializer):
|
||||
|
||||
return {
|
||||
'_self': reverse(
|
||||
'API:_api_v2_knowledge_base-detail',
|
||||
'v2:_api_v2_knowledge_base-detail',
|
||||
request=self.context['view'].request,
|
||||
kwargs={
|
||||
'pk': item.pk
|
||||
}
|
||||
),
|
||||
'category': reverse(
|
||||
'API:_api_v2_knowledge_base_category-list',
|
||||
'v2:_api_v2_knowledge_base_category-list',
|
||||
request=self.context['view'].request,
|
||||
),
|
||||
'organization': reverse(
|
||||
'API:_api_v2_organization-list',
|
||||
'v2:_api_v2_organization-list',
|
||||
request=self.context['view'].request,
|
||||
),
|
||||
'team': reverse(
|
||||
'API:_api_v2_organization_team-list',
|
||||
'v2:_api_v2_organization_team-list',
|
||||
request=self.context['view'].request,
|
||||
kwargs={
|
||||
'organization_id': item.organization.id,
|
||||
}
|
||||
),
|
||||
'user': reverse(
|
||||
'API:_api_v2_user-list',
|
||||
'v2:_api_v2_user-list',
|
||||
request=self.context['view'].request,
|
||||
)
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ class KnowledgeBaseCategoryBaseSerializer(serializers.ModelSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return reverse(
|
||||
"API:_api_v2_knowledge_base_category-detail",
|
||||
"v2:_api_v2_knowledge_base_category-detail",
|
||||
request=self.context['view'].request,
|
||||
kwargs={
|
||||
'pk': item.pk
|
||||
@ -64,25 +64,25 @@ class KnowledgeBaseCategoryModelSerializer(KnowledgeBaseCategoryBaseSerializer):
|
||||
|
||||
return {
|
||||
'_self': reverse(
|
||||
'API:_api_v2_knowledge_base_category-detail',
|
||||
'v2:_api_v2_knowledge_base_category-detail',
|
||||
request=self.context['view'].request,
|
||||
kwargs={
|
||||
'pk': item.pk
|
||||
}
|
||||
),
|
||||
'organization': reverse(
|
||||
'API:_api_v2_organization-list',
|
||||
'v2:_api_v2_organization-list',
|
||||
request=self.context['view'].request,
|
||||
),
|
||||
'team': reverse(
|
||||
'API:_api_v2_organization_team-list',
|
||||
'v2:_api_v2_organization_team-list',
|
||||
request=self.context['view'].request,
|
||||
kwargs={
|
||||
'organization_id': item.organization.id,
|
||||
}
|
||||
),
|
||||
'user': reverse(
|
||||
'API:_api_v2_user-list',
|
||||
'v2:_api_v2_user-list',
|
||||
request=self.context['view'].request,
|
||||
)
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ class KnowledgeBaseAPI(
|
||||
|
||||
model = KnowledgeBase
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_knowledge_base'
|
||||
|
||||
|
@ -20,7 +20,7 @@ class KnowledgeBasePermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = KnowledgeBase
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_knowledge_base'
|
||||
|
||||
|
@ -21,7 +21,7 @@ class KnowledgeBaseCategoryAPI(
|
||||
|
||||
model = KnowledgeBaseCategory
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_knowledge_base_category'
|
||||
|
||||
|
@ -16,7 +16,7 @@ class KnowledgeBaseCategoryPermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = KnowledgeBaseCategory
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_knowledge_base_category'
|
||||
|
||||
|
@ -16,7 +16,7 @@ class AssistanceViewset(
|
||||
|
||||
viewset = Index
|
||||
|
||||
route_name = 'API:_api_v2_assistance_home'
|
||||
route_name = 'v2:_api_v2_assistance_home'
|
||||
|
||||
|
||||
@classmethod
|
||||
|
@ -25,7 +25,7 @@ class Index(CommonViewSet):
|
||||
|
||||
return Response(
|
||||
{
|
||||
"knowledge_base": reverse('API:_api_v2_knowledge_base-list', request=request),
|
||||
"request": "ToDo"
|
||||
"knowledge_base": reverse('v2:_api_v2_knowledge_base-list', request=request),
|
||||
"request": reverse('v2:_api_v2_ticket_request-list', request=request),
|
||||
}
|
||||
)
|
||||
|
@ -22,7 +22,7 @@ class ConfigGroupBaseSerializer(serializers.ModelSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return reverse(
|
||||
"API:_api_v2_config_group-detail",
|
||||
"v2:_api_v2_config_group-detail",
|
||||
request=self.context['view'].request,
|
||||
kwargs={
|
||||
'pk': item.pk
|
||||
@ -59,41 +59,41 @@ class ConfigGroupModelSerializer(ConfigGroupBaseSerializer):
|
||||
|
||||
return {
|
||||
'_self': reverse(
|
||||
'API:_api_v2_config_group-detail',
|
||||
'v2:_api_v2_config_group-detail',
|
||||
request = self.context['view'].request,
|
||||
kwargs = {
|
||||
'pk': item.pk
|
||||
}
|
||||
),
|
||||
'child_groups': reverse(
|
||||
'API:_api_v2_config_group_child-list',
|
||||
'v2:_api_v2_config_group_child-list',
|
||||
request = self.context['view'].request,
|
||||
kwargs = {
|
||||
'parent_group': item.pk
|
||||
}
|
||||
),
|
||||
'configgroups': reverse(
|
||||
'API:_api_v2_config_group-list',
|
||||
'v2:_api_v2_config_group-list',
|
||||
request = self.context['view'].request,
|
||||
),
|
||||
'group_software': reverse(
|
||||
'API:_api_v2_config_group_software-list',
|
||||
'v2:_api_v2_config_group_software-list',
|
||||
request=self.context['view'].request,
|
||||
kwargs = {
|
||||
'group_id': item.pk
|
||||
}
|
||||
),
|
||||
'notes': reverse(
|
||||
"API:_api_v2_config_group_notes-list",
|
||||
"v2:_api_v2_config_group_notes-list",
|
||||
request=self._context['view'].request,
|
||||
kwargs={'group_id': item.pk}
|
||||
),
|
||||
'organization': reverse(
|
||||
'API:_api_v2_organization-list',
|
||||
'v2:_api_v2_organization-list',
|
||||
request=self.context['view'].request,
|
||||
),
|
||||
'parent': reverse(
|
||||
'API:_api_v2_config_group-list',
|
||||
'v2:_api_v2_config_group-list',
|
||||
request=self.context['view'].request,
|
||||
),
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ class ConfigGroupSoftwareBaseSerializer(serializers.ModelSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return reverse(
|
||||
"API:_api_v2_config_group-detail",
|
||||
"v2:_api_v2_config_group-detail",
|
||||
request=self.context['view'].request,
|
||||
kwargs={
|
||||
'group_id': item.config_group.pk,
|
||||
@ -64,7 +64,7 @@ class ConfigGroupSoftwareModelSerializer(ConfigGroupSoftwareBaseSerializer):
|
||||
|
||||
return {
|
||||
'_self': reverse(
|
||||
'API:_api_v2_config_group_software-detail',
|
||||
'v2:_api_v2_config_group_software-detail',
|
||||
request = self.context['view'].request,
|
||||
kwargs = {
|
||||
'group_id': item.config_group.pk,
|
||||
@ -72,7 +72,7 @@ class ConfigGroupSoftwareModelSerializer(ConfigGroupSoftwareBaseSerializer):
|
||||
}
|
||||
),
|
||||
'organization': reverse(
|
||||
'API:_api_v2_organization-list',
|
||||
'v2:_api_v2_organization-list',
|
||||
request=self.context['view'].request,
|
||||
),
|
||||
'softwareversion': 'ToDo',
|
||||
|
@ -70,7 +70,7 @@ class ConfigGroupsAPI(
|
||||
)
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_config_group', kwargs=self.url_view_kwargs)
|
||||
url = reverse('v1:_api_config_group', kwargs=self.url_view_kwargs)
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
|
@ -71,7 +71,7 @@ class ConfigGroupsAPI(
|
||||
)
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_v2_config_group-detail', kwargs=self.url_view_kwargs)
|
||||
url = reverse('v2:_api_v2_config_group-detail', kwargs=self.url_view_kwargs)
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
|
@ -20,7 +20,7 @@ class ConfigGroupsPermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = ConfigGroups
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_config_group'
|
||||
|
||||
|
@ -85,7 +85,7 @@ class ConfigGroupsAPI(
|
||||
)
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_v2_config_group_software-detail', kwargs=self.url_view_kwargs)
|
||||
url = reverse('v2:_api_v2_config_group_software-detail', kwargs=self.url_view_kwargs)
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
|
@ -20,7 +20,7 @@ class ConfigGroupSoftwarePermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = ConfigGroupSoftware
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_config_group_software'
|
||||
|
||||
|
@ -16,7 +16,7 @@ class ConfigManagementViewset(
|
||||
|
||||
viewset = Index
|
||||
|
||||
route_name = 'API:_api_v2_config_management_home'
|
||||
route_name = 'v2:_api_v2_config_management_home'
|
||||
|
||||
|
||||
@classmethod
|
||||
|
@ -25,6 +25,6 @@ class Index(CommonViewSet):
|
||||
|
||||
return Response(
|
||||
{
|
||||
"group": reverse('API:_api_v2_config_group-list', request=request),
|
||||
"group": reverse('v2:_api_v2_config_group-list', request=request),
|
||||
}
|
||||
)
|
||||
|
@ -20,7 +20,7 @@ class TaskResultBaseSerializer(serializers.ModelSerializer):
|
||||
return str( item )
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_v2_celery_log-detail", format="html"
|
||||
view_name="v2:_api_v2_celery_log-detail", format="html"
|
||||
)
|
||||
|
||||
|
||||
@ -49,7 +49,7 @@ class TaskResultModelSerializer(TaskResultBaseSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return {
|
||||
'_self': reverse("API:_api_v2_celery_log-detail",
|
||||
'_self': reverse("v2:_api_v2_celery_log-detail",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'pk': item.pk
|
||||
|
@ -19,7 +19,7 @@ class HistoryBaseSerializer(serializers.ModelSerializer):
|
||||
|
||||
def get_my_url(self, item):
|
||||
|
||||
return reverse("API:_api_v2_model_history-detail",
|
||||
return reverse("v2:_api_v2_model_history-detail",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'model_class': self._kwargs['context']['view'].kwargs['model_class'],
|
||||
@ -58,7 +58,7 @@ class HistoryModelSerializer(HistoryBaseSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return {
|
||||
'_self': reverse("API:_api_v2_model_history-detail",
|
||||
'_self': reverse("v2:_api_v2_model_history-detail",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'model_class': self._kwargs['context']['view'].kwargs['model_class'],
|
||||
|
@ -18,7 +18,7 @@ class ManufacturerBaseSerializer(serializers.ModelSerializer):
|
||||
return str( item )
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_v2_manufacturer-detail", format="html"
|
||||
view_name="v2:_api_v2_manufacturer-detail", format="html"
|
||||
)
|
||||
|
||||
|
||||
@ -47,21 +47,21 @@ class ManufacturerModelSerializer(ManufacturerBaseSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return {
|
||||
'_self': reverse("API:_api_v2_manufacturer-detail",
|
||||
'_self': reverse("v2:_api_v2_manufacturer-detail",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'pk': item.pk
|
||||
}
|
||||
),
|
||||
'history': reverse(
|
||||
"API:_api_v2_model_history-list",
|
||||
"v2:_api_v2_model_history-list",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'model_class': self.Meta.model._meta.model_name,
|
||||
'model_id': item.pk
|
||||
}
|
||||
),
|
||||
# 'notes': reverse("API:_api_v2_manufacturer_notes-list", request=self._context['view'].request, kwargs={'manufacturer_id': item.pk}),
|
||||
# 'notes': reverse("v2:_api_v2_manufacturer_notes-list", request=self._context['view'].request, kwargs={'manufacturer_id': item.pk}),
|
||||
}
|
||||
|
||||
|
||||
|
@ -26,7 +26,7 @@ class NoteBaseSerializer(serializers.ModelSerializer):
|
||||
return str( item )
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_v2_device-detail", format="html"
|
||||
view_name="v2:_api_v2_device-detail", format="html"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@ -59,7 +59,7 @@ class NoteModelSerializer(NoteBaseSerializer):
|
||||
|
||||
if 'group_id' in self._kwargs['context']['view'].kwargs:
|
||||
|
||||
_self = reverse("API:_api_v2_config_group_notes-detail",
|
||||
_self = reverse("v2:_api_v2_config_group_notes-detail",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'group_id': self._kwargs['context']['view'].kwargs['group_id'],
|
||||
@ -69,7 +69,7 @@ class NoteModelSerializer(NoteBaseSerializer):
|
||||
|
||||
elif 'device_id' in self._kwargs['context']['view'].kwargs:
|
||||
|
||||
_self = reverse("API:_api_v2_device_notes-detail",
|
||||
_self = reverse("v2:_api_v2_device_notes-detail",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'device_id': self._kwargs['context']['view'].kwargs['device_id'],
|
||||
@ -79,7 +79,7 @@ class NoteModelSerializer(NoteBaseSerializer):
|
||||
|
||||
elif 'operating_system_id' in self._kwargs['context']['view'].kwargs:
|
||||
|
||||
_self = reverse("API:_api_v2_operating_system_notes-detail",
|
||||
_self = reverse("v2:_api_v2_operating_system_notes-detail",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'operating_system_id': self._kwargs['context']['view'].kwargs['operating_system_id'],
|
||||
@ -89,7 +89,7 @@ class NoteModelSerializer(NoteBaseSerializer):
|
||||
|
||||
elif 'service_id' in self._kwargs['context']['view'].kwargs:
|
||||
|
||||
_self = reverse("API:_api_v2_service_notes-detail",
|
||||
_self = reverse("v2:_api_v2_service_notes-detail",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'service_id': self._kwargs['context']['view'].kwargs['service_id'],
|
||||
@ -99,7 +99,7 @@ class NoteModelSerializer(NoteBaseSerializer):
|
||||
|
||||
elif 'project_id' in self._kwargs['context']['view'].kwargs:
|
||||
|
||||
_self = reverse("API:_api_v2_project_notes-detail",
|
||||
_self = reverse("v2:_api_v2_project_notes-detail",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'project_id': self._kwargs['context']['view'].kwargs['project_id'],
|
||||
@ -109,7 +109,7 @@ class NoteModelSerializer(NoteBaseSerializer):
|
||||
|
||||
elif 'software_id' in self._kwargs['context']['view'].kwargs:
|
||||
|
||||
_self = reverse("API:_api_v2_software_notes-detail",
|
||||
_self = reverse("v2:_api_v2_software_notes-detail",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'software_id': self._kwargs['context']['view'].kwargs['software_id'],
|
||||
|
@ -63,7 +63,7 @@ class ManufacturerAPI(
|
||||
)
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_v2_manufacturer-detail', kwargs=self.url_view_kwargs)
|
||||
url = reverse('v2:_api_v2_manufacturer-detail', kwargs=self.url_view_kwargs)
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
|
@ -20,7 +20,7 @@ class ManufacturerPermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = Manufacturer
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_manufacturer'
|
||||
|
||||
|
@ -23,7 +23,7 @@ class HistoryPermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = History
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_model_history'
|
||||
|
||||
|
@ -95,7 +95,7 @@ class NotesAPI(
|
||||
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_v2_device_notes-detail', kwargs=self.url_view_kwargs)
|
||||
url = reverse('v2:_api_v2_device_notes-detail', kwargs=self.url_view_kwargs)
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
|
@ -76,7 +76,7 @@ class CeleryTaskResultAPI(
|
||||
self.url_view_kwargs = {'pk': self.item.id}
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_v2_celery_log-detail', kwargs=self.url_view_kwargs)
|
||||
url = reverse('v2:_api_v2_celery_log-detail', kwargs=self.url_view_kwargs)
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
|
@ -34,7 +34,7 @@ class TaskResultPermissionsAPI(
|
||||
|
||||
model = TaskResult
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_celery_log'
|
||||
|
||||
|
@ -186,7 +186,7 @@ class ChangeTicketPermissionsAPI(TicketPermissionsAPI, TestCase):
|
||||
|
||||
ticket_type_enum: int = int(Ticket.TicketType.CHANGE.value)
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = '_api_itim_change-detail'
|
||||
|
||||
@ -202,7 +202,7 @@ class IncidentTicketPermissionsAPI(TicketPermissionsAPI, TestCase):
|
||||
|
||||
ticket_type_enum: int = int(Ticket.TicketType.INCIDENT.value)
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = '_api_itim_incident-detail'
|
||||
|
||||
@ -218,7 +218,7 @@ class ProblemTicketPermissionsAPI(TicketPermissionsAPI, TestCase):
|
||||
|
||||
ticket_type_enum: int = int(Ticket.TicketType.PROBLEM.value)
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = '_api_itim_problem-detail'
|
||||
|
||||
@ -234,7 +234,7 @@ class RequestTicketPermissionsAPI(TicketPermissionsAPI, TestCase):
|
||||
|
||||
ticket_type_enum: int = int(Ticket.TicketType.REQUEST.value)
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = '_api_assistance_request-detail'
|
||||
|
||||
|
@ -18,7 +18,7 @@ class TicketCategoryPermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = TicketCategory
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = '_api_ticket_category-detail'
|
||||
|
||||
|
@ -251,7 +251,7 @@ class ChangeCommentTicketPermissionsAPI(TicketCommentPermissionsAPI, TestCase):
|
||||
|
||||
ticket_type_enum: int = int(Ticket.TicketType.CHANGE.value)
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = '_api_itim_change_ticket_comments-detail'
|
||||
|
||||
@ -267,7 +267,7 @@ class IncidentTicketCommentPermissionsAPI(TicketCommentPermissionsAPI, TestCase)
|
||||
|
||||
ticket_type_enum: int = int(Ticket.TicketType.INCIDENT.value)
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = '_api_itim_incident_ticket_comments-detail'
|
||||
|
||||
@ -283,7 +283,7 @@ class ProblemTicketCommentPermissionsAPI(TicketCommentPermissionsAPI, TestCase):
|
||||
|
||||
ticket_type_enum: int = int(Ticket.TicketType.PROBLEM.value)
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = '_api_itim_problem_ticket_comments-detail'
|
||||
|
||||
@ -299,7 +299,7 @@ class RequestTicketCommentPermissionsAPI(TicketCommentPermissionsAPI, TestCase):
|
||||
|
||||
ticket_type_enum: int = int(Ticket.TicketType.REQUEST.value)
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = '_api_assistance_request_ticket_comments-detail'
|
||||
|
||||
|
@ -18,7 +18,7 @@ class TicketCommentCategoryPermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = TicketCommentCategory
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = '_api_ticket_comment_category-detail'
|
||||
|
||||
|
@ -27,7 +27,7 @@ class DeviceBaseSerializer(serializers.ModelSerializer):
|
||||
return str( item )
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_v2_device-detail", format="html"
|
||||
view_name="v2:_api_v2_device-detail", format="html"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@ -55,21 +55,21 @@ class DeviceModelSerializer(DeviceBaseSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return {
|
||||
'_self': reverse("API:_api_v2_device-detail", request=self._context['view'].request, kwargs={'pk': item.pk}),
|
||||
'device_model': reverse("API:_api_v2_device_model-list", request=self._context['view'].request),
|
||||
'device_type': reverse("API:_api_v2_device_type-list", request=self._context['view'].request),
|
||||
'external_links': reverse("API:_api_v2_external_link-list", request=self._context['view'].request) + '?devices=true',
|
||||
'_self': reverse("v2:_api_v2_device-detail", request=self._context['view'].request, kwargs={'pk': item.pk}),
|
||||
'device_model': reverse("v2:_api_v2_device_model-list", request=self._context['view'].request),
|
||||
'device_type': reverse("v2:_api_v2_device_type-list", request=self._context['view'].request),
|
||||
'external_links': reverse("v2:_api_v2_external_link-list", request=self._context['view'].request) + '?devices=true',
|
||||
'history': reverse(
|
||||
"API:_api_v2_model_history-list",
|
||||
"v2:_api_v2_model_history-list",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'model_class': self.Meta.model._meta.model_name,
|
||||
'model_id': item.pk
|
||||
}
|
||||
),
|
||||
'notes': reverse("API:_api_v2_device_notes-list", request=self._context['view'].request, kwargs={'device_id': item.pk}),
|
||||
'service': reverse("API:_api_v2_service_device-list", request=self._context['view'].request, kwargs={'device_id': item.pk}),
|
||||
'software': reverse("API:_api_v2_device_software-list", request=self._context['view'].request, kwargs={'device_id': item.pk}),
|
||||
'notes': reverse("v2:_api_v2_device_notes-list", request=self._context['view'].request, kwargs={'device_id': item.pk}),
|
||||
'service': reverse("v2:_api_v2_service_device-list", request=self._context['view'].request, kwargs={'device_id': item.pk}),
|
||||
'software': reverse("v2:_api_v2_device_software-list", request=self._context['view'].request, kwargs={'device_id': item.pk}),
|
||||
}
|
||||
|
||||
|
||||
|
@ -20,7 +20,7 @@ class DeviceModelBaseSerializer(serializers.ModelSerializer):
|
||||
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_v2_device_model-detail", format="html"
|
||||
view_name="v2:_api_v2_device_model-detail", format="html"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@ -50,7 +50,7 @@ class DeviceModelModelSerializer(DeviceModelBaseSerializer):
|
||||
def get_url(self, obj):
|
||||
|
||||
return {
|
||||
'_self': reverse("API:_api_v2_device_model-detail", request=self._context['view'].request, kwargs={'pk': obj.pk})
|
||||
'_self': reverse("v2:_api_v2_device_model-detail", request=self._context['view'].request, kwargs={'pk': obj.pk})
|
||||
}
|
||||
|
||||
class Meta:
|
||||
|
@ -26,7 +26,7 @@ class DeviceSoftwareBaseSerializer(serializers.ModelSerializer):
|
||||
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_v2_device_software-detail", format="html"
|
||||
view_name="v2:_api_v2_device_software-detail", format="html"
|
||||
)
|
||||
|
||||
|
||||
@ -58,7 +58,7 @@ class DeviceSoftwareModelSerializer(DeviceSoftwareBaseSerializer):
|
||||
|
||||
return {
|
||||
'_self': reverse(
|
||||
"API:_api_v2_device_software-detail",
|
||||
"v2:_api_v2_device_software-detail",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'device_id': self._context['view'].kwargs['device_id'],
|
||||
|
@ -16,7 +16,7 @@ class DeviceTypeBaseSerializer(serializers.ModelSerializer):
|
||||
return str( item )
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_v2_device_type-detail", format="html"
|
||||
view_name="v2:_api_v2_device_type-detail", format="html"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@ -46,7 +46,7 @@ class DeviceTypeModelSerializer(DeviceTypeBaseSerializer):
|
||||
def get_url(self, obj):
|
||||
|
||||
return {
|
||||
'_self': reverse("API:_api_v2_device_type-detail", request=self._context['view'].request, kwargs={'pk': obj.pk})
|
||||
'_self': reverse("v2:_api_v2_device_type-detail", request=self._context['view'].request, kwargs={'pk': obj.pk})
|
||||
}
|
||||
|
||||
|
||||
|
@ -19,7 +19,7 @@ class OperatingSystemBaseSerializer(serializers.ModelSerializer):
|
||||
return str( item )
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_v2_operating_system-detail", format="html"
|
||||
view_name="v2:_api_v2_operating_system-detail", format="html"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@ -51,18 +51,18 @@ class OperatingSystemModelSerializer(OperatingSystemBaseSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return {
|
||||
'_self': reverse("API:_api_v2_operating_system-detail", request=self._context['view'].request, kwargs={'pk': item.pk}),
|
||||
'_self': reverse("v2:_api_v2_operating_system-detail", request=self._context['view'].request, kwargs={'pk': item.pk}),
|
||||
'history': reverse(
|
||||
"API:_api_v2_model_history-list",
|
||||
"v2:_api_v2_model_history-list",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'model_class': self.Meta.model._meta.model_name,
|
||||
'model_id': item.pk
|
||||
}
|
||||
),
|
||||
'notes': reverse("API:_api_v2_operating_system_notes-list", request=self._context['view'].request, kwargs={'operating_system_id': item.pk}),
|
||||
'notes': reverse("v2:_api_v2_operating_system_notes-list", request=self._context['view'].request, kwargs={'operating_system_id': item.pk}),
|
||||
'tickets': 'ToDo',
|
||||
'version': reverse("API:_api_v2_operating_system_version-list", request=self._context['view'].request, kwargs={'operating_system_id': item.pk}),
|
||||
'version': reverse("v2:_api_v2_operating_system_version-list", request=self._context['view'].request, kwargs={'operating_system_id': item.pk}),
|
||||
}
|
||||
|
||||
|
||||
|
@ -25,7 +25,7 @@ class OperatingSystemVersionBaseSerializer(serializers.ModelSerializer):
|
||||
def my_url(self, item):
|
||||
|
||||
return reverse(
|
||||
"API:_api_v2_operating_system_version-detail",
|
||||
"v2:_api_v2_operating_system_version-detail",
|
||||
request=self.context['view'].request,
|
||||
kwargs={
|
||||
'operating_system_id': self._context['view'].kwargs['operating_system_id'],
|
||||
@ -64,7 +64,7 @@ class OperatingSystemVersionModelSerializer(OperatingSystemVersionBaseSerializer
|
||||
|
||||
return {
|
||||
'_self': reverse(
|
||||
"API:_api_v2_operating_system_version-detail",
|
||||
"v2:_api_v2_operating_system_version-detail",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'operating_system_id': self._context['view'].kwargs['operating_system_id'],
|
||||
@ -72,7 +72,7 @@ class OperatingSystemVersionModelSerializer(OperatingSystemVersionBaseSerializer
|
||||
}
|
||||
),
|
||||
'history': reverse(
|
||||
"API:_api_v2_model_history-list",
|
||||
"v2:_api_v2_model_history-list",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'model_class': self.Meta.model._meta.model_name,
|
||||
@ -80,7 +80,7 @@ class OperatingSystemVersionModelSerializer(OperatingSystemVersionBaseSerializer
|
||||
}
|
||||
),
|
||||
'notes': reverse(
|
||||
"API:_api_v2_operating_system_notes-list",
|
||||
"v2:_api_v2_operating_system_notes-list",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'operating_system_id': item.pk
|
||||
|
@ -19,7 +19,7 @@ class SoftwareBaseSerializer(serializers.ModelSerializer):
|
||||
return str( item )
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_v2_software-detail", format="html"
|
||||
view_name="v2:_api_v2_software-detail", format="html"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@ -49,21 +49,21 @@ class SoftwareModelSerializer(SoftwareBaseSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return {
|
||||
'_self': reverse("API:_api_v2_software-detail", request=self._context['view'].request, kwargs={'pk': item.pk}),
|
||||
'external_links': reverse("API:_api_v2_external_link-list", request=self._context['view'].request) + '?software=true',
|
||||
'_self': reverse("v2:_api_v2_software-detail", request=self._context['view'].request, kwargs={'pk': item.pk}),
|
||||
'external_links': reverse("v2:_api_v2_external_link-list", request=self._context['view'].request) + '?software=true',
|
||||
'history': reverse(
|
||||
"API:_api_v2_model_history-list",
|
||||
"v2:_api_v2_model_history-list",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'model_class': self.Meta.model._meta.model_name,
|
||||
'model_id': item.pk
|
||||
}
|
||||
),
|
||||
'notes': reverse("API:_api_v2_software_notes-list", request=self._context['view'].request, kwargs={'software_id': item.pk}),
|
||||
'publisher': reverse("API:_api_v2_manufacturer-list", request=self._context['view'].request),
|
||||
'notes': reverse("v2:_api_v2_software_notes-list", request=self._context['view'].request, kwargs={'software_id': item.pk}),
|
||||
'publisher': reverse("v2:_api_v2_manufacturer-list", request=self._context['view'].request),
|
||||
'services': 'ToDo',
|
||||
'version': reverse(
|
||||
"API:_api_v2_software_version-list",
|
||||
"v2:_api_v2_software_version-list",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'software_id': item.pk
|
||||
|
@ -18,7 +18,7 @@ class SoftwareCategoryBaseSerializer(serializers.ModelSerializer):
|
||||
return str( item )
|
||||
|
||||
url = serializers.HyperlinkedIdentityField(
|
||||
view_name="API:_api_v2_software_category-detail", format="html"
|
||||
view_name="v2:_api_v2_software_category-detail", format="html"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@ -48,7 +48,7 @@ class SoftwareCategoryModelSerializer(SoftwareCategoryBaseSerializer):
|
||||
def get_url(self, item):
|
||||
|
||||
return {
|
||||
'_self': reverse("API:_api_v2_software_category-detail", request=self._context['view'].request, kwargs={'pk': item.pk}),
|
||||
'_self': reverse("v2:_api_v2_software_category-detail", request=self._context['view'].request, kwargs={'pk': item.pk}),
|
||||
'history': 'ToDo',
|
||||
'notes': 'ToDo',
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ class SoftwareVersionBaseSerializer(serializers.ModelSerializer):
|
||||
def my_url(self, item):
|
||||
|
||||
return reverse(
|
||||
"API:_api_v2_software_version-detail",
|
||||
"v2:_api_v2_software_version-detail",
|
||||
request=self.context['view'].request,
|
||||
kwargs={
|
||||
'software_id': item.software.pk,
|
||||
@ -58,7 +58,7 @@ class SoftwareVersionModelSerializer(SoftwareVersionBaseSerializer):
|
||||
|
||||
return {
|
||||
'_self': reverse(
|
||||
"API:_api_v2_software_version-detail",
|
||||
"v2:_api_v2_software_version-detail",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'software_id': item.software.pk,
|
||||
@ -66,7 +66,7 @@ class SoftwareVersionModelSerializer(SoftwareVersionBaseSerializer):
|
||||
}
|
||||
),
|
||||
'history': reverse(
|
||||
"API:_api_v2_model_history-list",
|
||||
"v2:_api_v2_model_history-list",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'model_class': self.Meta.model._meta.model_name,
|
||||
|
@ -199,7 +199,7 @@ class DeviceAPI(TestCase):
|
||||
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:device-detail', kwargs=self.url_view_kwargs)
|
||||
url = reverse('v1:device-detail', kwargs=self.url_view_kwargs)
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
@ -420,7 +420,7 @@ class DeviceAPI(TestCase):
|
||||
"""
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:device-list')
|
||||
url = reverse('v1:device-list')
|
||||
|
||||
|
||||
client.force_login(self.add_user)
|
||||
@ -444,7 +444,7 @@ class DeviceAPI(TestCase):
|
||||
"""
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:device-list')
|
||||
url = reverse('v1:device-list')
|
||||
|
||||
|
||||
client.force_login(self.add_user)
|
||||
@ -468,7 +468,7 @@ class DeviceAPI(TestCase):
|
||||
"""
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:device-list')
|
||||
url = reverse('v1:device-list')
|
||||
|
||||
|
||||
client.force_login(self.add_user)
|
||||
@ -492,7 +492,7 @@ class DeviceAPI(TestCase):
|
||||
"""
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:device-list')
|
||||
url = reverse('v1:device-list')
|
||||
|
||||
|
||||
client.force_login(self.add_user)
|
||||
|
@ -90,7 +90,7 @@ class DeviceAPI(
|
||||
)
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_v2_device-detail', kwargs=self.url_view_kwargs)
|
||||
url = reverse('v2:_api_v2_device-detail', kwargs=self.url_view_kwargs)
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
|
@ -17,7 +17,7 @@ class DevicePermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = Device
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = 'device-detail'
|
||||
|
||||
|
@ -16,7 +16,7 @@ class DevicePermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = Device
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_device'
|
||||
|
||||
|
@ -72,7 +72,7 @@ class DeviceModelAPI(
|
||||
)
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_v2_device_model-detail', kwargs=self.url_view_kwargs)
|
||||
url = reverse('v2:_api_v2_device_model-detail', kwargs=self.url_view_kwargs)
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
|
@ -16,7 +16,7 @@ class DeviceModelPermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = DeviceModel
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_device_model'
|
||||
|
||||
|
@ -106,7 +106,7 @@ class DeviceSoftwareAPI(
|
||||
)
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_v2_device_software-detail', kwargs=self.url_view_kwargs)
|
||||
url = reverse('v2:_api_v2_device_software-detail', kwargs=self.url_view_kwargs)
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
|
@ -17,7 +17,7 @@ class DeviceSoftwarePermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = DeviceSoftware
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_device_software'
|
||||
|
||||
|
@ -63,7 +63,7 @@ class DeviceTypeAPI(
|
||||
)
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_v2_device_type-detail', kwargs=self.url_view_kwargs)
|
||||
url = reverse('v2:_api_v2_device_type-detail', kwargs=self.url_view_kwargs)
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
|
@ -16,7 +16,7 @@ class DeviceTypePermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = DeviceType
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_device_type'
|
||||
|
||||
|
@ -74,7 +74,7 @@ class OperatingSystemAPI(
|
||||
)
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_v2_operating_system-detail', kwargs=self.url_view_kwargs)
|
||||
url = reverse('v2:_api_v2_operating_system-detail', kwargs=self.url_view_kwargs)
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
|
@ -16,7 +16,7 @@ class OperatingSystemPermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = OperatingSystem
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_operating_system'
|
||||
|
||||
|
@ -72,7 +72,7 @@ class OperatingSystemVersionAPI(
|
||||
)
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_v2_operating_system_version-detail', kwargs=self.url_view_kwargs)
|
||||
url = reverse('v2:_api_v2_operating_system_version-detail', kwargs=self.url_view_kwargs)
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
|
@ -16,7 +16,7 @@ class OperatingSystemVersionPermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = OperatingSystemVersion
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_operating_system_version'
|
||||
|
||||
|
@ -21,7 +21,7 @@ class SoftwareAPI(TestCase):
|
||||
|
||||
model = Software
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = 'software-detail'
|
||||
|
||||
|
@ -80,7 +80,7 @@ class SoftwareAPI(
|
||||
)
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_v2_software-detail', kwargs=self.url_view_kwargs)
|
||||
url = reverse('v2:_api_v2_software-detail', kwargs=self.url_view_kwargs)
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
@ -308,3 +308,22 @@ class SoftwareAPI(
|
||||
"""
|
||||
|
||||
assert type(self.api_data['_urls']['version']) is str
|
||||
|
||||
|
||||
|
||||
def test_api_field_exists_urls_tickets(self):
|
||||
""" Test for existance of API Field
|
||||
|
||||
_urls.tickets field must exist
|
||||
"""
|
||||
|
||||
assert 'tickets' in self.api_data['_urls']
|
||||
|
||||
|
||||
def test_api_field_type_urls_tickets(self):
|
||||
""" Test for type for API Field
|
||||
|
||||
_urls.tickets field must be str
|
||||
"""
|
||||
|
||||
assert type(self.api_data['_urls']['tickets']) is str
|
||||
|
@ -18,7 +18,7 @@ class SoftwarePermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = Software
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v1'
|
||||
|
||||
url_name = 'software-detail'
|
||||
|
||||
|
@ -16,7 +16,7 @@ class SoftwarePermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = Software
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_software'
|
||||
|
||||
|
@ -72,7 +72,7 @@ class SoftwareCategoryAPI(
|
||||
)
|
||||
|
||||
client = Client()
|
||||
url = reverse('API:_api_v2_software_category-detail', kwargs=self.url_view_kwargs)
|
||||
url = reverse('v2:_api_v2_software_category-detail', kwargs=self.url_view_kwargs)
|
||||
|
||||
|
||||
client.force_login(self.view_user)
|
||||
|
@ -16,7 +16,7 @@ class SoftwareCategoryPermissionsAPI(TestCase, APIPermissions):
|
||||
|
||||
model = SoftwareCategory
|
||||
|
||||
app_namespace = 'API'
|
||||
app_namespace = 'v2'
|
||||
|
||||
url_name = '_api_v2_software_category'
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user