mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 17:43:12 +00:00
New React Backend Repository
Two review findings on the additive PATCH path: - AddTechniciansAsync can rename via CompanyFields.Name and write NormalizedName against the unique index, but the save had no guard. A colliding rename surfaced as an unhandled 500 from the PATCH action instead of a stable client conflict. Pre-check the normalized name against other live companies and throw VendorRosterDuplicateNameException, with a scoped catch around the save for the race where a competing rename commits in between. The controller maps it to a 409 alongside the existing concurrency conflict. - Empty-payload validation only rejected a null CompanyFields, so an all-blank CompanyFields object was forwarded as a company update, bumping RowVersion and rewriting every technician's LastModificationTime without changing any company data. Blank fields now collapse to no company change, and a request with neither technicians nor a real company value fails validation. |
||
|---|---|---|
| .ebextensions | ||
| .github | ||
| .security-review | ||
| Api.SeaHavenIndustries | ||
| Api.SeaHavenIndustries.Tests | ||
| Data.SeaHavenIndustries | ||
| docs | ||
| infra/cdk | ||
| scripts | ||
| SeaHaven.DataServices | ||
| SeaHaven.Services | ||
| SeaHaven.Services.Tests | ||
| SeaHavenIndustries | ||
| SeaHavenIndustries.Tests | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| AGENTS.md | ||
| ARCHITECTURE_AND_CODE_QUALITY.md | ||
| BACKEND_ARCHITECTURE.md | ||
| QUALITY_GATES.md | ||
| REVIEW_AND_PR_FRAMEWORK.md | ||
| SeaHavenIndustries.sln | ||
| TODO.md | ||