-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fragment references to AfO Reg. endpoint #496
Merged
Merged
Changes from all commits
Commits
Show all changes
28 commits
Select commit
Hold shift + click to select a range
e13d43c
Implement AfO Regster serialiation & repos (WiP)
khoidt d050b45
Update resources & bind to context
khoidt e875e0f
Add tests & update
khoidt 7ffd5c9
Fix test
khoidt 5f30543
Update search, factory & tests
khoidt d3b9c72
Implement afo register suggestions & tests
khoidt 21e652d
'Refactored by Sourcery' (#484)
sourcery-ai[bot] 036d398
Merge remote-tracking branch 'origin/master' into afo-register
khoidt be5bc53
Update query & sorting
khoidt 5cef900
Update tests & format
khoidt 9b38663
Clean up
khoidt 5c5409f
Update queries & sorting
khoidt df49aa1
Merge remote-tracking branch 'origin/master' into afo-register
khoidt 4f90cf0
Update & refactor query collation, use in afo register queries
khoidt 9e7c3f7
Refactor
khoidt cea4a50
Add text + textNumber queries (search by traditionalReferences)
khoidt e3c7206
Add route & test
khoidt 9d25757
Use post
khoidt faaf8fb
Merge remote-tracking branch 'origin/master' into afo-register
khoidt 8cc5503
Update test
khoidt d493fa8
Extend fragment query for `traditionalReferences`
khoidt ef60f9c
Merge remote-tracking branch 'origin/master' into afo-register
khoidt 1594dca
Merge remote-tracking branch 'origin/master' into afo-register
khoidt c65798a
Improve
khoidt c626846
Implememnt fragment references to AfO Reg. endpoint
khoidt cc3e923
Format and clean
khoidt ac49486
Add tests, refactor & clean up
khoidt a8e8e70
'Refactored by Sourcery' (#497)
sourcery-ai[bot] File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
from falcon import Request, Response | ||
|
||
from ebl.errors import DataError | ||
from ebl.fragmentarium.application.fragment_repository import FragmentRepository | ||
from ebl.fragmentarium.application.fragment_finder import FragmentFinder | ||
|
||
from marshmallow import ValidationError | ||
from ebl.common.query.query_schemas import AfORegisterToFragmentQueryResultSchema | ||
|
||
|
||
class AfoRegisterFragmentsQueryResource: | ||
def __init__(self, fragment_repository: FragmentRepository, finder: FragmentFinder): | ||
self._repository = fragment_repository | ||
self._finder = finder | ||
|
||
def on_post(self, req: Request, resp: Response) -> None: | ||
try: | ||
result = self._repository.query_by_traditional_references( | ||
req.media["traditionalReferences"], | ||
req.context.user.get_scopes(prefix="read:", suffix="-fragments"), | ||
) | ||
resp.media = AfORegisterToFragmentQueryResultSchema().dump(result) | ||
except ValidationError as error: | ||
raise DataError( | ||
f"Invalid datesInText data: '{req.media['traditionalReferences']}'" | ||
) from error |
30 changes: 30 additions & 0 deletions
30
ebl/tests/fragmentarium/test_fragment_afo_register_route.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
import falcon | ||
import json | ||
from ebl.tests.factories.fragment import ( | ||
FragmentFactory, | ||
) | ||
from ebl.tests.factories.afo_register import AfoRegisterRecordFactory | ||
|
||
|
||
def test_query_fragmentarium_afo_register(fragment_repository, client): | ||
record = AfoRegisterRecordFactory.build() | ||
record_id = f"{record.text} {record.text_number}" | ||
fragment = FragmentFactory.build(traditional_references=[record_id]) | ||
fragment_repository.create_many([fragment, FragmentFactory.build()]) | ||
|
||
post_result = client.simulate_post( | ||
"/fragments/query-by-traditional-references", | ||
body=json.dumps({"traditionalReferences": [record_id]}), | ||
) | ||
|
||
expected_json = { | ||
"items": [ | ||
{ | ||
"traditionalReference": record_id, | ||
"fragmentNumbers": [str(fragment.number)], | ||
} | ||
] | ||
} | ||
|
||
assert post_result.status == falcon.HTTP_OK | ||
assert post_result.json == expected_json |
25 changes: 25 additions & 0 deletions
25
ebl/tests/fragmentarium/test_fragment_repository_afo_register.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
from ebl.common.query.query_schemas import ( | ||
AfORegisterToFragmentQueryResultSchema, | ||
) | ||
from ebl.tests.factories.fragment import ( | ||
FragmentFactory, | ||
) | ||
from ebl.tests.factories.afo_register import AfoRegisterRecordFactory | ||
|
||
|
||
def test_query_fragmentarium_afo_register(fragment_repository): | ||
record = AfoRegisterRecordFactory.build() | ||
record_id = f"{record.text} {record.text_number}" | ||
fragment = FragmentFactory.build(traditional_references=[record_id]) | ||
fragment_repository.create_many([fragment, FragmentFactory.build()]) | ||
result = fragment_repository.query_by_traditional_references([record_id]) | ||
assert result == AfORegisterToFragmentQueryResultSchema().load( | ||
{ | ||
"items": [ | ||
{ | ||
"traditionalReference": record_id, | ||
"fragmentNumbers": [str(fragment.number)], | ||
} | ||
] | ||
} | ||
) |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Check notice
Code scanning / CodeQL
Statement has no effect Note