[PATCH v2 4/7] api: Add list archive fields
Andrew Donnellan
ajd at linux.ibm.com
Thu Aug 22 17:13:00 AEST 2019
Add the new list archive fields to the API. As this is a
backwards-compatible change, this requires only a minor version increment
to v1.2.
Signed-off-by: Andrew Donnellan <ajd at linux.ibm.com>
---
v1->v2:
- switch to using format string (Daniel)
---
patchwork/api/comment.py | 5 +++--
patchwork/api/cover.py | 6 ++++--
patchwork/api/embedded.py | 14 +++++++++++---
patchwork/api/patch.py | 15 ++++++++-------
patchwork/api/project.py | 7 +++++--
patchwork/urls.py | 4 ++--
6 files changed, 33 insertions(+), 18 deletions(-)
diff --git a/patchwork/api/comment.py b/patchwork/api/comment.py
index 57b37111c30b..290b9cd3f3ce 100644
--- a/patchwork/api/comment.py
+++ b/patchwork/api/comment.py
@@ -47,11 +47,12 @@ class CommentListSerializer(BaseHyperlinkedModelSerializer):
class Meta:
model = Comment
- fields = ('id', 'web_url', 'msgid', 'date', 'subject', 'submitter',
- 'content', 'headers')
+ fields = ('id', 'web_url', 'msgid', 'list_archive_url', 'date',
+ 'subject', 'submitter', 'content', 'headers')
read_only_fields = fields
versioned_fields = {
'1.1': ('web_url', ),
+ '1.2': ('list_archive_url',),
}
diff --git a/patchwork/api/cover.py b/patchwork/api/cover.py
index 7a663226ade8..caf9a386efa5 100644
--- a/patchwork/api/cover.py
+++ b/patchwork/api/cover.py
@@ -50,11 +50,13 @@ class CoverLetterListSerializer(BaseHyperlinkedModelSerializer):
class Meta:
model = CoverLetter
- fields = ('id', 'url', 'web_url', 'project', 'msgid', 'date', 'name',
- 'submitter', 'mbox', 'series', 'comments')
+ fields = ('id', 'url', 'web_url', 'project', 'msgid',
+ 'list_archive_url', 'date', 'name', 'submitter', 'mbox',
+ 'series', 'comments')
read_only_fields = fields
versioned_fields = {
'1.1': ('web_url', 'mbox', 'comments'),
+ '1.2': ('list_archive_url',),
}
extra_kwargs = {
'url': {'view_name': 'api-cover-detail'},
diff --git a/patchwork/api/embedded.py b/patchwork/api/embedded.py
index 60fb9a4e9701..968cb7f91f10 100644
--- a/patchwork/api/embedded.py
+++ b/patchwork/api/embedded.py
@@ -108,10 +108,12 @@ class CoverLetterSerializer(SerializedRelatedField):
class Meta:
model = models.CoverLetter
- fields = ('id', 'url', 'web_url', 'msgid', 'date', 'name', 'mbox')
+ fields = ('id', 'url', 'web_url', 'msgid', 'list_archive_url',
+ 'date', 'name', 'mbox')
read_only_fields = fields
versioned_fields = {
'1.1': ('web_url', 'mbox', ),
+ '1.2': ('list_archive_url',),
}
extra_kwargs = {
'url': {'view_name': 'api-cover-detail'},
@@ -124,10 +126,12 @@ class PatchSerializer(SerializedRelatedField):
class Meta:
model = models.Patch
- fields = ('id', 'url', 'web_url', 'msgid', 'date', 'name', 'mbox')
+ fields = ('id', 'url', 'web_url', 'msgid', 'list_archive_url',
+ 'date', 'name', 'mbox')
read_only_fields = fields
versioned_fields = {
'1.1': ('web_url', ),
+ '1.2': ('list_archive_url',),
}
extra_kwargs = {
'url': {'view_name': 'api-patch-detail'},
@@ -158,11 +162,15 @@ class ProjectSerializer(SerializedRelatedField):
class Meta:
model = models.Project
fields = ('id', 'url', 'name', 'link_name', 'list_id',
- 'list_email', 'web_url', 'scm_url', 'webscm_url')
+ 'list_email', 'web_url', 'scm_url', 'webscm_url',
+ 'list_archive_url', 'list_archive_url_format')
read_only_fields = fields
extra_kwargs = {
'url': {'view_name': 'api-project-detail'},
}
+ versioned_fields = {
+ '1.2': ('list_archive_url', 'list_archive_url_format'),
+ }
class SeriesSerializer(SerializedRelatedField):
diff --git a/patchwork/api/patch.py b/patchwork/api/patch.py
index 05f6cea84c45..c9360308a56a 100644
--- a/patchwork/api/patch.py
+++ b/patchwork/api/patch.py
@@ -121,15 +121,16 @@ class PatchListSerializer(BaseHyperlinkedModelSerializer):
class Meta:
model = Patch
- fields = ('id', 'url', 'web_url', 'project', 'msgid', 'date', 'name',
- 'commit_ref', 'pull_url', 'state', 'archived', 'hash',
- 'submitter', 'delegate', 'mbox', 'series', 'comments',
- 'check', 'checks', 'tags')
- read_only_fields = ('web_url', 'project', 'msgid', 'date', 'name',
- 'hash', 'submitter', 'mbox', 'series', 'comments',
- 'check', 'checks', 'tags')
+ fields = ('id', 'url', 'web_url', 'project', 'msgid',
+ 'list_archive_url', 'date', 'name', 'commit_ref', 'pull_url',
+ 'state', 'archived', 'hash', 'submitter', 'delegate', 'mbox',
+ 'series', 'comments', 'check', 'checks', 'tags')
+ read_only_fields = ('web_url', 'project', 'msgid', 'list_archive_url',
+ 'date', 'name', 'hash', 'submitter', 'mbox',
+ 'series', 'comments', 'check', 'checks', 'tags')
versioned_fields = {
'1.1': ('comments', 'web_url'),
+ '1.2': ('list_archive_url',),
}
extra_kwargs = {
'url': {'view_name': 'api-patch-detail'},
diff --git a/patchwork/api/project.py b/patchwork/api/project.py
index d7bb1f21cd09..62a8c3e73efe 100644
--- a/patchwork/api/project.py
+++ b/patchwork/api/project.py
@@ -26,11 +26,13 @@ class ProjectSerializer(BaseHyperlinkedModelSerializer):
model = Project
fields = ('id', 'url', 'name', 'link_name', 'list_id', 'list_email',
'web_url', 'scm_url', 'webscm_url', 'maintainers',
- 'subject_match')
+ 'subject_match', 'list_archive_url',
+ 'list_archive_url_format')
read_only_fields = ('name', 'link_name', 'list_id', 'list_email',
'maintainers', 'subject_match')
versioned_fields = {
'1.1': ('subject_match', ),
+ '1.2': ('list_archive_url', 'list_archive_url_format'),
}
extra_kwargs = {
'url': {'view_name': 'api-project-detail'},
@@ -68,7 +70,8 @@ class ProjectList(ProjectMixin, ListAPIView):
"""List projects."""
search_fields = ('link_name', 'list_id', 'list_email', 'web_url',
- 'scm_url', 'webscm_url')
+ 'scm_url', 'webscm_url', 'list_archive_url',
+ 'list_archive_url_format')
ordering_fields = ('id', 'name', 'link_name', 'list_id')
ordering = 'id'
diff --git a/patchwork/urls.py b/patchwork/urls.py
index cfcf04dc3b71..c24bf55ee83f 100644
--- a/patchwork/urls.py
+++ b/patchwork/urls.py
@@ -234,8 +234,8 @@ if settings.ENABLE_REST_API:
]
urlpatterns += [
- url(r'^api/(?:(?P<version>(1.0|1.1))/)?', include(api_patterns)),
- url(r'^api/(?:(?P<version>1.1)/)?', include(api_1_1_patterns)),
+ url(r'^api/(?:(?P<version>(1.0|1.1|1.2))/)?', include(api_patterns)),
+ url(r'^api/(?:(?P<version>(1.1|1.2))/)?', include(api_1_1_patterns)),
# token change
url(r'^user/generate-token/$', user_views.generate_token,
--
2.20.1
More information about the Patchwork
mailing list