fix: resolve INK2/NE entity_type from companies table fallback (#217)

* fix: resolve INK2/NE entity_type from companies table fallback (#193)

The entity_type check in INK2 and NE-bilaga engines read from
company_settings where it is nullable, causing "only for aktiebolag"
errors when the column is null. Now falls back to companies.entity_type
(NOT NULL, always set). Reports page uses useCompany() context instead
of /api/settings for tab visibility.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: address Greptile review — surface fallback errors, avoid direct mutation

- Surface Supabase errors in entity_type fallback queries instead of
  silently swallowing them (ink2-engine, ne-engine)
- Use spread instead of direct mutation on Supabase result object
  (settings route)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: use separate variable to avoid const reassignment in settings route

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jakob Wennberg
2026-04-11 14:38:02 +02:00
committed by GitHub
co-authored by Claude Opus 4.6
parent bca00cc5bd
commit 73fb97052b
4 changed files with 45 additions and 21 deletions
+14 -1
View File
@@ -26,7 +26,20 @@ export async function GET() {
return NextResponse.json({ error: error.message }, { status: 500 })
}
return NextResponse.json({ data })
// Fall back to companies.entity_type if company_settings.entity_type is null
let responseData = data
if (data && !data.entity_type) {
const { data: company } = await supabase
.from('companies')
.select('entity_type')
.eq('id', companyId)
.single()
if (company?.entity_type) {
responseData = { ...data, entity_type: company.entity_type }
}
}
return NextResponse.json({ data: responseData })
}
export async function PUT(request: Request) {