feat(api): Setup API to be correctly versioned

ref: #248 #365
This commit is contained in:
2024-10-26 18:02:23 +09:30
parent cdacd70bf1
commit 268e3294a2
146 changed files with 510 additions and 461 deletions

View File

@ -25,7 +25,7 @@ class ProjectBaseSerializer(serializers.ModelSerializer):
return str( item )
url = serializers.HyperlinkedIdentityField(
view_name="API:_api_v2_project-detail", format="html"
view_name="v2:_api_v2_project-detail", format="html"
)
class Meta:
@ -55,17 +55,17 @@ class ProjectModelSerializer(ProjectBaseSerializer):
def get_url(self, item):
return {
'_self': reverse("API:_api_v2_project-detail", request=self._context['view'].request, kwargs={'pk': item.pk}),
'_self': reverse("v2:_api_v2_project-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
}
),
'milestone': reverse("API:_api_v2_project_milestone-list", request=self._context['view'].request, kwargs={'project_id': item.pk}),
'notes': reverse("API:_api_v2_project_notes-list", request=self._context['view'].request, kwargs={'project_id': item.pk}),
'milestone': reverse("v2:_api_v2_project_milestone-list", request=self._context['view'].request, kwargs={'project_id': item.pk}),
'notes': reverse("v2:_api_v2_project_notes-list", request=self._context['view'].request, kwargs={'project_id': item.pk}),
'tickets': 'ToDo'
}

View File

@ -22,7 +22,7 @@ class ProjectMilestoneBaseSerializer(serializers.ModelSerializer):
def get_url(self, item):
return reverse(
"API:_api_v2_project_milestone-detail",
"v2:_api_v2_project_milestone-detail",
request=self._context['view'].request,
kwargs={
'project_id': item.project.id,
@ -58,7 +58,7 @@ class ProjectMilestoneModelSerializer(ProjectMilestoneBaseSerializer):
return {
'_self': reverse(
"API:_api_v2_project_milestone-detail",
"v2:_api_v2_project_milestone-detail",
request=self._context['view'].request,
kwargs={
'project_id': item.project.id,

View File

@ -19,7 +19,7 @@ class ProjectStateBaseSerializer(serializers.ModelSerializer):
return str( item )
url = serializers.HyperlinkedIdentityField(
view_name="API:_api_v2_project_state-detail", format="html"
view_name="v2:_api_v2_project_state-detail", format="html"
)
@ -51,7 +51,7 @@ class ProjectStateModelSerializer(ProjectStateBaseSerializer):
return {
'_self': reverse(
"API:_api_v2_project_state-detail",
"v2:_api_v2_project_state-detail",
request=self._context['view'].request,
kwargs={
'pk': item.pk

View File

@ -19,7 +19,7 @@ class ProjectTypeBaseSerializer(serializers.ModelSerializer):
return str( item )
url = serializers.HyperlinkedIdentityField(
view_name="API:_api_v2_project_type-detail", format="html"
view_name="v2:_api_v2_project_type-detail", format="html"
)
@ -50,7 +50,7 @@ class ProjectTypeModelSerializer(ProjectTypeBaseSerializer):
return {
'_self': reverse(
"API:_api_v2_project_type-detail",
"v2:_api_v2_project_type-detail",
request=self._context['view'].request,
kwargs={
'pk': item.pk

View File

@ -106,7 +106,7 @@ class ProjectAPI(
self.url_view_kwargs = {'pk': self.item.id}
client = Client()
url = reverse('API:_api_v2_project-detail', kwargs=self.url_view_kwargs)
url = reverse('v2:_api_v2_project-detail', kwargs=self.url_view_kwargs)
client.force_login(self.view_user)

View File

@ -18,7 +18,7 @@ class TicketCommentCategoryPermissionsAPI(TestCase, APIPermissions):
model = TicketCommentCategory
app_namespace = 'API'
app_namespace = 'v1'
url_name = '_api_ticket_comment_category-detail'

View File

@ -17,7 +17,7 @@ class ProjectPermissionsAPI(TestCase, APIPermissions):
model = Project
app_namespace = 'API'
app_namespace = 'v2'
url_name = '_api_v2_project'

View File

@ -85,7 +85,7 @@ class ProjectMilestoneAPI(
self.url_view_kwargs = {'project_id': project.id, 'pk': self.item.id}
client = Client()
url = reverse('API:_api_v2_project_milestone-detail', kwargs=self.url_view_kwargs)
url = reverse('v2:_api_v2_project_milestone-detail', kwargs=self.url_view_kwargs)
client.force_login(self.view_user)

View File

@ -20,7 +20,7 @@ class ProjectMilestonePermissionsAPI(TestCase, APIPermissions):
model = ProjectMilestone
app_namespace = 'API'
app_namespace = 'v1'
url_name = '_api_project_milestone-detail'

View File

@ -16,7 +16,7 @@ class ProjectMilestonePermissionsAPI(TestCase, APIPermissions):
model = ProjectMilestone
app_namespace = 'API'
app_namespace = 'v2'
url_name = '_api_v2_project_milestone'

View File

@ -106,7 +106,7 @@ class ProjectStateAPI(
self.url_view_kwargs = {'pk': self.item.id}
client = Client()
url = reverse('API:_api_v2_project_state-detail', kwargs=self.url_view_kwargs)
url = reverse('v2:_api_v2_project_state-detail', kwargs=self.url_view_kwargs)
client.force_login(self.view_user)

View File

@ -19,7 +19,7 @@ class ProjectStatePermissionsAPI(TestCase, APIPermissions):
model = ProjectState
app_namespace = 'API'
app_namespace = 'v1'
url_name = '_api_project_state-detail'

View File

@ -16,7 +16,7 @@ class ProjectStatePermissionsAPI(TestCase, APIPermissions):
model = ProjectState
app_namespace = 'API'
app_namespace = 'v2'
url_name = '_api_v2_project_state'

View File

@ -85,7 +85,7 @@ class ProjectTypeAPI(
self.url_view_kwargs = {'pk': self.item.id}
client = Client()
url = reverse('API:_api_v2_project_type-detail', kwargs=self.url_view_kwargs)
url = reverse('v2:_api_v2_project_type-detail', kwargs=self.url_view_kwargs)
client.force_login(self.view_user)

View File

@ -19,7 +19,7 @@ class ProjectTypePermissionsAPI(TestCase, APIPermissions):
model = ProjectType
app_namespace = 'API'
app_namespace = 'v1'
url_name = '_api_project_type-detail'

View File

@ -16,7 +16,7 @@ class ProjectTypePermissionsAPI(TestCase, APIPermissions):
model = ProjectType
app_namespace = 'API'
app_namespace = 'v2'
url_name = '_api_v2_project_type'

View File

@ -17,7 +17,7 @@ class ProjectManagementViewset(
viewset = Index
route_name = 'API:_api_v2_project_management_home'
route_name = 'v2:_api_v2_project_management_home'
@classmethod

View File

@ -25,6 +25,6 @@ class Index(CommonViewSet):
return Response(
{
"project": reverse('API:_api_v2_project-list', request=request),
"project": reverse('v2:_api_v2_project-list', request=request),
}
)