Migrate omsorgapp to browser SPA, add Docker/CI build setup
Docker-Images bauen und veröffentlichen / build (, omsorgCore/Dockerfile, omsorgcore) (push) Successful in 3s
Docker-Images bauen und veröffentlichen / build (, omsorgWeb/Dockerfile, omsorgweb) (push) Failing after 4s
Docker-Images bauen und veröffentlichen / build (VITE_OMSORG_CORE_URL=${{ vars.OMSORG_CORE_PUBLIC_URL }}, omsorgapp/Dockerfile, omsorgapp) (push) Successful in 3s

- omsorgapp: drop Electron, run as a plain Vite/React browser app; refresh
  token moves to an HttpOnly cookie (omsorgCore), CORS added for the new
  browser origin, document download/preview switched to Blob-based browser
  APIs.
- Add Dockerfiles for omsorgCore, omsorgapp, and omsorgWeb, a docker-compose.yml
  wiring Postgres/MySQL/all three apps together, and a Gitea Actions workflow
  that builds and pushes images to the repo's container registry on push to
  main and on version tags.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Felix Kemmler
2026-08-10 17:42:45 +02:00
co-authored by Claude Sonnet 5
parent e9e96a57dc
commit 598dfcd38a
461 changed files with 59753 additions and 2859 deletions
@@ -0,0 +1,25 @@
import { FacilityQualificationRatesApi } from "omsorgcore-client-ts";
import { configFor, callApi } from "./apiClientHelpers.js";
// Kapselt /api/facilities/{facilityId}/qualification-rates von omsorgCore
// (FacilityQualificationRatesController) über den generierten Client (omsorgcore-client-ts).
// Qualifikationsabhängige Preise sind eine 1:n-Unterressource von Facility (FR-EIN-4).
export async function listFacilityQualificationRates(accessToken, facilityId) {
const api = new FacilityQualificationRatesApi(configFor(accessToken));
return callApi(api.apiFacilitiesFacilityIdQualificationRatesGetRaw({ facilityId }));
}
export async function createFacilityQualificationRate(accessToken, facilityId, payload) {
const api = new FacilityQualificationRatesApi(configFor(accessToken));
return callApi(api.apiFacilitiesFacilityIdQualificationRatesPostRaw({ facilityId, createFacilityQualificationRateRequest: payload }));
}
export async function updateFacilityQualificationRate(accessToken, facilityId, id, payload) {
const api = new FacilityQualificationRatesApi(configFor(accessToken));
return callApi(api.apiFacilitiesFacilityIdQualificationRatesIdPutRaw({ facilityId, id, updateFacilityQualificationRateRequest: payload }));
}
export async function deleteFacilityQualificationRate(accessToken, facilityId, id) {
const api = new FacilityQualificationRatesApi(configFor(accessToken));
return callApi(api.apiFacilitiesFacilityIdQualificationRatesIdDeleteRaw({ facilityId, id }));
}