#523 - Extract plan vertical slice to controller/service/repository boundary
@brijesh-amin is already working on this.
Since Jul 17, 2026.
Assessment
This issue has not been assessed yet.
Description
Parent: #523
Objective
Create a modern boundary for one high-value plan flow by separating transport concerns from business logic and data access.
In scope
- Select one plan workflow currently implemented in
PlanController - Introduce service module(s) under
src/services/plan/for orchestration/business rules - Introduce repository abstraction(s) over db2 access for the selected flow
- Keep controller as thin request/response adapter
- Add/adjust tests to protect behavior
Acceptance criteria
- Controller delegates core logic to service
- Service does not depend on Express req/res
- Repository encapsulates query implementation for the selected flow
- Existing endpoint behavior remains compatible
- Regression tests cover service behavior and endpoint contract
Notes
Use this as the reference pattern for later controller decompositions.
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 7
- PR merge metrics
- No merged PRs in 30d
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from bcgov/range-api
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 63/100
-
Renew MyRange SSL certificate (expires Apr 14, 2027)Possibly taken @brijesh-amin claimed this 7 days ago. Open
-
#523 - Reduce any usage in db2 model/query layerMay be free again @brijesh-amin claimed this 80 days ago, and no pull request is open. Open
-
#523 - TypeScript hardening for runtime-critical pathMay be free again @brijesh-amin claimed this 80 days ago, and no pull request is open. Open
-
#523 - Centralize and type environment configurationMay be free again @brijesh-amin claimed this 80 days ago, and no pull request is open. Open
Similar issues
-
enhancement good first issue priority: low size: XS
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
streamplace/streamplace#1351 ·
Maintainers usually reply within 2 days
-
Link Checker ReportOpenautomated issue report
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
databendlabs/databend-docs#3511 ·
-
automated issue report
Difficulty 2/5 1-3 hours Newbie friendliness 65/100