Skip to content

Commit 44bd22f

Browse files
committed
urls: integrate invenio_url_for
1 parent 2c8b4cf commit 44bd22f

File tree

14 files changed

+510
-299
lines changed

14 files changed

+510
-299
lines changed

invenio_rdm_records/oaiserver/services/config.py

+66-14
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,10 @@
1010
from invenio_i18n import lazy_gettext as _
1111
from invenio_oaiserver.models import OAISet
1212
from invenio_records_resources.services import ServiceConfig
13-
from invenio_records_resources.services.base import Link
14-
from invenio_records_resources.services.records.links import pagination_links
13+
from invenio_records_resources.services.base import EndpointLink
14+
from invenio_records_resources.services.records.links import pagination_endpoint_links
1515
from sqlalchemy import asc, desc
1616

17-
from ..services.links import OAIPMHSetLink
1817
from ..services.permissions import OAIPMHServerPermissionPolicy
1918
from ..services.results import (
2019
OAIMetadataFormatItem,
@@ -90,21 +89,74 @@ class OAIPMHServerServiceConfig(ServiceConfig):
9089
metadata_format_schema = OAIPMHMetadataFormat
9190

9291
links_item = {
93-
"self": OAIPMHSetLink("{+api}/oaipmh/sets/{id}"),
94-
"oai-listrecords": OAIPMHSetLink(
95-
"{+ui}/oai2d?verb=ListRecords&metadataPrefix=oai_dc&set={spec}"
92+
"self": EndpointLink(
93+
"oaipmh-server.read",
94+
vars=lambda obj, vars_: vars_.update({"id": obj.id}),
95+
params=["id"],
9696
),
97-
"oai-listidentifiers": OAIPMHSetLink(
98-
"{+ui}/oai2d?verb=ListIdentifiers&metadataPrefix=oai_dc&set={spec}"
97+
"oai-listrecords": EndpointLink(
98+
"invenio_oaiserver.response",
99+
vars=lambda obj, vars_: vars_.update(
100+
{
101+
# querystring parameters
102+
"args": {
103+
"verb": "ListRecords",
104+
"metadataPrefix": "oai_dc",
105+
"set": obj.spec,
106+
}
107+
}
108+
),
109+
),
110+
"oai-listidentifiers": EndpointLink(
111+
"invenio_oaiserver.response",
112+
vars=lambda obj, vars_: vars_.update(
113+
{
114+
"args": {
115+
"verb": "ListIdentifiers",
116+
"metadataPrefix": "oai_dc",
117+
"set": obj.spec,
118+
}
119+
}
120+
),
99121
),
100122
}
101123

102124
links_search = {
103-
**pagination_links("{+api}/oaipmh/sets{?args*}"),
104-
"oai-listsets": Link("{+ui}/oai2d?verb=ListSets"),
105-
"oai-listrecords": Link("{+ui}/oai2d?verb=ListRecords&metadataPrefix=oai_dc"),
106-
"oai-listidentifiers": Link(
107-
"{+ui}/oai2d?verb=ListIdentifiers&metadataPrefix=oai_dc"
125+
**pagination_endpoint_links("oaipmh-server.search"),
126+
"oai-listsets": EndpointLink(
127+
"invenio_oaiserver.response",
128+
vars=lambda obj, vars_: vars_.update({"args": {"verb": "ListSets"}}),
129+
),
130+
"oai-listrecords": EndpointLink(
131+
"invenio_oaiserver.response",
132+
vars=lambda obj, vars_: vars_.update(
133+
{
134+
"args": {
135+
"verb": "ListRecords",
136+
"metadataPrefix": "oai_dc",
137+
}
138+
}
139+
),
140+
),
141+
"oai-listidentifiers": EndpointLink(
142+
"invenio_oaiserver.response",
143+
vars=lambda obj, vars_: vars_.update(
144+
{
145+
"args": {
146+
"verb": "ListIdentifiers",
147+
"metadataPrefix": "oai_dc",
148+
}
149+
}
150+
),
151+
),
152+
"oai-identify": EndpointLink(
153+
"invenio_oaiserver.response",
154+
vars=lambda obj, vars_: vars_.update(
155+
{
156+
"args": {
157+
"verb": "Identify",
158+
}
159+
}
160+
),
108161
),
109-
"oai-identify": Link("{+ui}/oai2d?verb=Identify"),
110162
}

invenio_rdm_records/oaiserver/services/links.py

-24
This file was deleted.

invenio_rdm_records/resources/config.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,7 @@ class RDMCommunityRecordsResourceConfig(RecordResourceConfig, ConfiguratorMixin)
568568
class RDMRecordCommunitiesResourceConfig(CommunityResourceConfig, ConfiguratorMixin):
569569
"""Record communities resource config."""
570570

571-
blueprint_name = "records-community"
571+
blueprint_name = "record_communities"
572572
url_prefix = "/records"
573573
routes = {
574574
"list": "/<pid_value>/communities",
@@ -586,7 +586,7 @@ class RDMRecordCommunitiesResourceConfig(CommunityResourceConfig, ConfiguratorMi
586586
class RDMRecordRequestsResourceConfig(ResourceConfig, ConfiguratorMixin):
587587
"""Record communities resource config."""
588588

589-
blueprint_name = "records-requests"
589+
blueprint_name = "record_requests"
590590
url_prefix = "/records"
591591
routes = {"list": "/<record_pid>/requests"}
592592

invenio_rdm_records/services/community_records/service.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ def search(
9494
self.config.links_search_community_records,
9595
context={
9696
"args": params,
97-
"id": community_id,
97+
"pid_value": community_id,
9898
},
9999
),
100100
links_item_tpl=self.links_item_tpl,

0 commit comments

Comments
 (0)