Skip to content

feat(core): add verse images API - #218

Open
bmanquen wants to merge 4 commits into
mainfrom
YPE-6185-verse-art-images-api
Open

bmanquen wants to merge 4 commits into
mainfrom
YPE-6185-verse-art-images-api

Conversation

@bmanquen

@bmanquen bmanquen commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Add API-layer support for verse art for YPE-6185: YouVersionApi.verseImages with verseImages() (GET /v1/images) and verseImage() (GET /v1/images/{image_id}). No UI.
  • Add the VerseImage model.
  • Move the language_ranges[] URL helper from SearchEndpoints into the shared EndpointExtensions.kt so both APIs use it.
  • Reject a pageSize outside 1–99 and an empty imageId before any request. Language ranges are not validated client-side, because this endpoint accepts * and _.
  • Document the API in README.md and AGENTS.md, and update the public API dump.

Test plan

  • VerseImagesEndpointsTests: URL building, including an image id with / kept as one path segment
  • VerseImagesApiTests: decoding of the list and single-image calls, an empty page, argument rejection with no request sent, and 401/403/500/malformed-body error mapping
  • SearchEndpointsTests still pass after the helper move
  • ./gradlew testDebugUnitTest (1,779 tests, 0 failures)
  • ./gradlew :platform-core:apiCheck and spotlessCheck

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge; the previous documentation finding is fixed and no new issues were found.

Summary

Adds verse-art list and detail calls through YouVersionApi.verseImages, with the VerseImage model, tests, documentation, and public API entries.

  • Apps can list verse art or fetch one image by ID.
  • Search and verse images share language and page-size helpers.

Reviews (4) · Last reviewed commit: "docs(core): document requireValidPageSiz..." · Reviewed by Greptile

- Add YouVersionApi.verseImages with verseImages() and verseImage() for GET /v1/images and /v1/images/{image_id}
- Add VerseImage model
- Share the language_ranges[] URL helper between search and verse images
- Document the API in README and AGENTS.md; update the public API dump
@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

✅ Commit Lint: passed

All commit messages in this PR conform to Conventional Commits.

📦 Release preview: 2.6.0 → 2.7.0 (minor)

Once merged, this is the version to enter on the next Actions → Release → Run workflow dispatch.

Window: 2.6.0 → main + this PR — 4 commit(s), 4 of them from this PR. This PR on its own would be a minor bump.

Release analyzer output
[analyzer] Analyzing commit: feat(core): add verse images API

- Add YouVersionApi.verseImages with verseImages() and verseImage() for GET /v1/images and /v1/images/{image_id}
- Add VerseImage model
- Share the language_ranges[] URL helper between search and verse images
- Document the API in README and AGENTS.md; update the public API dump
[analyzer] The release type for the commit is minor
[analyzer] Analyzing commit: docs(core): document verse images URL builders
[analyzer] The commit should not trigger a release
[analyzer] Analyzing commit: refactor(core): tighten verse images argument checks

- Reject blank passageId, pageToken, and imageId before any request
- Share requireValidPageSize between search and verse images
- Test that a page size of 99 is accepted
- Update KDoc and README for the blank checks
[analyzer] The commit should not trigger a release
[analyzer] Analyzing commit: docs(core): document requireValidPageSize
[analyzer] The commit should not trigger a release
[analyzer] Analysis of 4 commits complete: minor release
[analyzer] Analyzing commit: feat(core): add verse images API

- Add YouVersionApi.verseImages with verseImages() and verseImage() for GET /v1/images and /v1/images/{image_id}
- Add VerseImage model
- Share the language_ranges[] URL helper between search and verse images
- Document the API in README and AGENTS.md; update the public API dump
[analyzer] The release type for the commit is minor
[analyzer] Analyzing commit: docs(core): document verse images URL builders
[analyzer] The commit should not trigger a release
[analyzer] Analyzing commit: refactor(core): tighten verse images argument checks

- Reject blank passageId, pageToken, and imageId before any request
- Share requireValidPageSize between search and verse images
- Test that a page size of 99 is accepted
- Update KDoc and README for the blank checks
[analyzer] The commit should not trigger a release
[analyzer] Analyzing commit: docs(core): document requireValidPageSize
[analyzer] The commit should not trigger a release
[analyzer] Analysis of 4 commits complete: minor release

@bmanquen
bmanquen requested a review from camrun91 October 14, 2026 20:32

@camrun91 camrun91 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Approving with a few small follow-ups inline. The main one is holding the 2.7.0 release until Images is promoted out of beta.

- Reject blank passageId, pageToken, and imageId before any request
- Share requireValidPageSize between search and verse images
- Test that a page size of 99 is accepted
- Update KDoc and README for the blank checks
@github-actions

Copy link
Copy Markdown
Contributor

Code Coverage Report

Overall Line Coverage: 92.4%

Module Line Coverage Threshold
platform-core 93.1% ✅
platform-reader 92.5% ✅
platform-ui 89.0% ✅

Generated from Kover XML report.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants