oarepo-runtime 1.5.107__tar.gz → 1.5.109__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. {oarepo_runtime-1.5.107/oarepo_runtime.egg-info → oarepo_runtime-1.5.109}/PKG-INFO +1 -1
  2. oarepo_runtime-1.5.109/oarepo_runtime/resources/config.py +50 -0
  3. oarepo_runtime-1.5.109/oarepo_runtime/resources/resource.py +59 -0
  4. oarepo_runtime-1.5.109/oarepo_runtime/services/service.py +61 -0
  5. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109/oarepo_runtime.egg-info}/PKG-INFO +1 -1
  6. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime.egg-info/SOURCES.txt +3 -0
  7. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/setup.cfg +1 -1
  8. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/LICENSE +0 -0
  9. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/MANIFEST.in +0 -0
  10. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/README.md +0 -0
  11. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/__init__.py +0 -0
  12. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/cli/__init__.py +0 -0
  13. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/cli/assets.py +0 -0
  14. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/cli/base.py +0 -0
  15. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/cli/cf.py +0 -0
  16. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/cli/check.py +0 -0
  17. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/cli/configuration.py +0 -0
  18. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/cli/fixtures.py +0 -0
  19. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/cli/index.py +0 -0
  20. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/cli/permissions/__init__.py +0 -0
  21. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/cli/permissions/base.py +0 -0
  22. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/cli/permissions/evaluate.py +0 -0
  23. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/cli/permissions/list.py +0 -0
  24. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/cli/permissions/search.py +0 -0
  25. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/cli/validate.py +0 -0
  26. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/__init__.py +0 -0
  27. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/asynchronous.py +0 -0
  28. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/catalogue.py +0 -0
  29. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/datastreams.py +0 -0
  30. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/errors.py +0 -0
  31. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/ext.py +0 -0
  32. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/fixtures.py +0 -0
  33. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/json.py +0 -0
  34. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/readers/__init__.py +0 -0
  35. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/readers/attachments.py +0 -0
  36. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/readers/excel.py +0 -0
  37. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/readers/json.py +0 -0
  38. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/readers/service.py +0 -0
  39. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/readers/yaml.py +0 -0
  40. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/semi_asynchronous.py +0 -0
  41. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/synchronous.py +0 -0
  42. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/transformers.py +0 -0
  43. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/types.py +0 -0
  44. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/utils.py +0 -0
  45. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/writers/__init__.py +0 -0
  46. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/writers/attachments_file.py +0 -0
  47. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/writers/attachments_service.py +0 -0
  48. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/writers/service.py +0 -0
  49. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/writers/utils.py +0 -0
  50. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/writers/validation_errors.py +0 -0
  51. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/datastreams/writers/yaml.py +0 -0
  52. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/ext.py +0 -0
  53. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/ext_config.py +0 -0
  54. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/i18n/__init__.py +0 -0
  55. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/info/__init__.py +0 -0
  56. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/info/check.py +0 -0
  57. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/info/permissions/__init__.py +0 -0
  58. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/info/permissions/debug.py +0 -0
  59. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/info/views.py +0 -0
  60. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/profile.py +0 -0
  61. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/proxies.py +0 -0
  62. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/__init__.py +0 -0
  63. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/dumpers/__init__.py +0 -0
  64. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/dumpers/edtf_interval.py +0 -0
  65. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/dumpers/multilingual_dumper.py +0 -0
  66. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/entity_resolvers/__init__.py +0 -0
  67. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/entity_resolvers/proxies.py +0 -0
  68. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/mappings/__init__.py +0 -0
  69. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/mappings/rdm_parent_mapping.json +0 -0
  70. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/owners/__init__.py +0 -0
  71. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/owners/registry.py +0 -0
  72. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/relations/__init__.py +0 -0
  73. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/relations/base.py +0 -0
  74. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/relations/internal.py +0 -0
  75. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/relations/lookup.py +0 -0
  76. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/relations/pid_relation.py +0 -0
  77. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/systemfields/__init__.py +0 -0
  78. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/systemfields/featured_file.py +0 -0
  79. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/systemfields/has_draftcheck.py +0 -0
  80. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/systemfields/icu.py +0 -0
  81. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/systemfields/mapping.py +0 -0
  82. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/systemfields/owner.py +0 -0
  83. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/systemfields/record_status.py +0 -0
  84. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/systemfields/selectors.py +0 -0
  85. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/records/systemfields/synthetic.py +0 -0
  86. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/resources/__init__.py +0 -0
  87. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/resources/file_resource.py +0 -0
  88. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/resources/json_serializer.py +0 -0
  89. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/resources/localized_ui_json_serializer.py +0 -0
  90. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/__init__.py +0 -0
  91. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/components.py +0 -0
  92. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/config/__init__.py +0 -0
  93. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/config/link_conditions.py +0 -0
  94. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/config/permissions_presets.py +0 -0
  95. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/config/service.py +0 -0
  96. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/custom_fields/__init__.py +0 -0
  97. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/custom_fields/mappings.py +0 -0
  98. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/entity/__init__.py +0 -0
  99. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/entity/config.py +0 -0
  100. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/entity/schema.py +0 -0
  101. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/entity/service.py +0 -0
  102. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/expansions/__init__.py +0 -0
  103. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/expansions/expandable_fields.py +0 -0
  104. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/expansions/service.py +0 -0
  105. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/facets/__init__.py +0 -0
  106. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/facets/base.py +0 -0
  107. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/facets/date.py +0 -0
  108. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/facets/enum.py +0 -0
  109. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/facets/facet_groups_names.py +0 -0
  110. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/facets/max_facet.py +0 -0
  111. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/facets/nested_facet.py +0 -0
  112. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/facets/params.py +0 -0
  113. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/facets/year_histogram.py +0 -0
  114. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/files/__init__.py +0 -0
  115. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/files/components.py +0 -0
  116. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/files/service.py +0 -0
  117. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/generators.py +0 -0
  118. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/permissions/__init__.py +0 -0
  119. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/permissions/generators.py +0 -0
  120. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/records/__init__.py +0 -0
  121. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/records/links.py +0 -0
  122. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/relations/__init__.py +0 -0
  123. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/relations/components.py +0 -0
  124. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/relations/errors.py +0 -0
  125. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/relations/mapping.py +0 -0
  126. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/results.py +0 -0
  127. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/schema/__init__.py +0 -0
  128. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/schema/cf.py +0 -0
  129. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/schema/i18n.py +0 -0
  130. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/schema/i18n_ui.py +0 -0
  131. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/schema/i18n_validation.py +0 -0
  132. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/schema/marshmallow.py +0 -0
  133. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/schema/marshmallow_to_json_schema.py +0 -0
  134. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/schema/oneofschema.py +0 -0
  135. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/schema/polymorphic.py +0 -0
  136. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/schema/rdm.py +0 -0
  137. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/schema/rdm_ui.py +0 -0
  138. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/schema/ui.py +0 -0
  139. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/schema/validation.py +0 -0
  140. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/services/search.py +0 -0
  141. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/tasks.py +0 -0
  142. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/translations/cs/LC_MESSAGES/messages.mo +0 -0
  143. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/translations/cs/LC_MESSAGES/messages.po +0 -0
  144. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/translations/default_translations.py +0 -0
  145. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/translations/en/LC_MESSAGES/messages.mo +0 -0
  146. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/translations/en/LC_MESSAGES/messages.po +0 -0
  147. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/translations/messages.pot +0 -0
  148. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/uow.py +0 -0
  149. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/utils/__init__.py +0 -0
  150. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/utils/functools.py +0 -0
  151. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime/utils/path.py +0 -0
  152. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime.egg-info/dependency_links.txt +0 -0
  153. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime.egg-info/entry_points.txt +0 -0
  154. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime.egg-info/requires.txt +0 -0
  155. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/oarepo_runtime.egg-info/top_level.txt +0 -0
  156. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/pyproject.toml +0 -0
  157. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/setup.py +0 -0
  158. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/tests/marshmallow_to_json/__init__.py +0 -0
  159. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/tests/marshmallow_to_json/test_datacite_ui_schema.py +0 -0
  160. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/tests/marshmallow_to_json/test_simple_schema.py +0 -0
  161. {oarepo_runtime-1.5.107 → oarepo_runtime-1.5.109}/tests/pkg_data/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: oarepo-runtime
3
- Version: 1.5.107
3
+ Version: 1.5.109
4
4
  Summary: A set of runtime extensions of Invenio repository
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -0,0 +1,50 @@
1
+ import marshmallow as ma
2
+ from flask_resources import (
3
+ JSONDeserializer,
4
+ JSONSerializer,
5
+ RequestBodyParser,
6
+ ResponseHandler,
7
+ )
8
+ from invenio_drafts_resources.resources import RecordResourceConfig
9
+ from invenio_rdm_records.resources.args import RDMSearchRequestArgsSchema
10
+ from invenio_rdm_records.resources.config import (
11
+ RDMRecordResourceConfig,
12
+ )
13
+ from invenio_records_resources.resources.records.headers import etag_headers
14
+
15
+ record_serializers = {
16
+ "application/json": ResponseHandler(JSONSerializer(), headers=etag_headers),
17
+ }
18
+
19
+
20
+ class BaseRecordResourceConfig(RDMRecordResourceConfig):
21
+ """Record resource configuration."""
22
+
23
+ blueprint_name = None
24
+ url_prefix = None
25
+
26
+ routes = RecordResourceConfig.routes
27
+
28
+ routes["delete-record"] = "/<pid_value>/delete"
29
+ routes["restore-record"] = "/<pid_value>/restore"
30
+ routes["set-record-quota"] = "/<pid_value>/quota"
31
+ routes["set-user-quota"] = "/users/<pid_value>/quota"
32
+ routes["all-prefix"] = "/all"
33
+
34
+ request_view_args = {
35
+ "pid_value": ma.fields.Str(),
36
+ }
37
+
38
+ request_read_args = {
39
+ "style": ma.fields.Str(),
40
+ "locale": ma.fields.Str(),
41
+ "include_deleted": ma.fields.Bool(),
42
+ }
43
+
44
+ request_body_parsers = {
45
+ "application/json": RequestBodyParser(JSONDeserializer()),
46
+ }
47
+
48
+ request_search_args = RDMSearchRequestArgsSchema
49
+
50
+ response_handlers = record_serializers
@@ -0,0 +1,59 @@
1
+ from flask import g
2
+ from flask_resources import (
3
+ resource_requestctx,
4
+ response_handler,
5
+ route,
6
+ )
7
+ from invenio_rdm_records.resources import RDMRecordResource
8
+ from invenio_records_resources.resources.records.resource import (
9
+ request_extra_args,
10
+ request_search_args,
11
+ request_view_args,
12
+ )
13
+ from invenio_records_resources.resources.records.utils import search_preference
14
+
15
+
16
+ class BaseRecordResource(RDMRecordResource):
17
+
18
+ def create_url_rules(self):
19
+ """Create the URL rules for the record resource."""
20
+
21
+ def p(route):
22
+ """Prefix a route with the URL prefix."""
23
+ return f"{self.config.url_prefix}{route}"
24
+
25
+ def s(route):
26
+ """Suffix a route with the URL prefix."""
27
+ return f"{route}{self.config.url_prefix}"
28
+
29
+ routes = self.config.routes
30
+ url_rules = super(RDMRecordResource, self).create_url_rules()
31
+ url_rules += [
32
+ route("DELETE", p(routes["delete-record"]), self.delete_record),
33
+ route("POST", p(routes["restore-record"]), self.restore_record),
34
+ route("POST", p(routes["set-record-quota"]), self.set_record_quota),
35
+ # TODO: move to users?
36
+ route("POST", routes["set-user-quota"], self.set_user_quota),
37
+ route("GET", s(routes["all-prefix"]), self.search_all_records),
38
+ ]
39
+
40
+ return url_rules
41
+
42
+ @request_extra_args
43
+ @request_search_args
44
+ @request_view_args
45
+ @response_handler(many=True)
46
+ def search_all_records(self):
47
+ """Perform a search over all records. Permission generators for search_all_records
48
+ and read_all_records must be in place and must be used to filter the results so that
49
+ no information is leaked.
50
+
51
+ GET /all/records
52
+ """
53
+ hits = self.service.search_all_records(
54
+ identity=g.identity,
55
+ params=resource_requestctx.args,
56
+ search_preference=search_preference(),
57
+ expand=resource_requestctx.args.get("expand", False),
58
+ )
59
+ return hits.to_dict(), 200
@@ -0,0 +1,61 @@
1
+ """An extension to invenio RDM service that includes a search across all records
2
+ (published, draft and deleted).
3
+ without any filtering. Permission `can_read_all_records` and `search_all_records`
4
+ were added and must be used to filter the results so that no information is leaked.
5
+ """
6
+
7
+ from invenio_rdm_records.services import RDMRecordService
8
+ from invenio_records_resources.services import LinksTemplate
9
+
10
+
11
+ class SearchAllRecordsService(RDMRecordService):
12
+ def search_all_records(
13
+ self,
14
+ identity,
15
+ params=None,
16
+ search_preference=None,
17
+ expand=False,
18
+ extra_filter=None,
19
+ **kwargs,
20
+ ):
21
+ """Search for drafts records matching the querystring."""
22
+ self.require_permission(
23
+ identity,
24
+ "search_all_records",
25
+ params=params,
26
+ extra_filter=extra_filter,
27
+ **kwargs,
28
+ )
29
+ # Prepare and execute the search
30
+ params = params or {}
31
+
32
+ search_opts = (
33
+ getattr(self.config, "search_all", None) or self.config.search_drafts
34
+ )
35
+
36
+ search_result = self._search(
37
+ "search_all",
38
+ identity,
39
+ params,
40
+ search_preference,
41
+ record_cls=self.draft_cls,
42
+ search_opts=search_opts,
43
+ extra_filter=extra_filter,
44
+ permission_action="read_all_records",
45
+ **kwargs,
46
+ ).execute()
47
+
48
+ return self.result_list(
49
+ self,
50
+ identity,
51
+ search_result,
52
+ params,
53
+ links_tpl=LinksTemplate(
54
+ getattr(self.config, "links_search_drafts")
55
+ or self.config.links_search_drafts,
56
+ context={"args": params},
57
+ ),
58
+ links_item_tpl=self.links_item_tpl,
59
+ expandable_fields=self.expandable_fields,
60
+ expand=expand,
61
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: oarepo-runtime
3
- Version: 1.5.107
3
+ Version: 1.5.109
4
4
  Summary: A set of runtime extensions of Invenio repository
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -88,14 +88,17 @@ oarepo_runtime/records/systemfields/record_status.py
88
88
  oarepo_runtime/records/systemfields/selectors.py
89
89
  oarepo_runtime/records/systemfields/synthetic.py
90
90
  oarepo_runtime/resources/__init__.py
91
+ oarepo_runtime/resources/config.py
91
92
  oarepo_runtime/resources/file_resource.py
92
93
  oarepo_runtime/resources/json_serializer.py
93
94
  oarepo_runtime/resources/localized_ui_json_serializer.py
95
+ oarepo_runtime/resources/resource.py
94
96
  oarepo_runtime/services/__init__.py
95
97
  oarepo_runtime/services/components.py
96
98
  oarepo_runtime/services/generators.py
97
99
  oarepo_runtime/services/results.py
98
100
  oarepo_runtime/services/search.py
101
+ oarepo_runtime/services/service.py
99
102
  oarepo_runtime/services/config/__init__.py
100
103
  oarepo_runtime/services/config/link_conditions.py
101
104
  oarepo_runtime/services/config/permissions_presets.py
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = oarepo-runtime
3
- version = 1.5.107
3
+ version = 1.5.109
4
4
  description = A set of runtime extensions of Invenio repository
5
5
  authors = Alzbeta Pokorna
6
6
  readme = README.md