feat(backend): add PATCH /api/sources/:sourceId (#86)

Add endpoint for users to update their source config
and enabled state. Config is deep-merged with existing
values via lodash.merge and validated against the
provider's schema before persisting.

Co-authored-by: Ona <no-reply@ona.com>
This commit is contained in:
2026-03-22 17:57:54 +00:00
committed by GitHub
parent a6be7b31e7
commit dd2b37938f
11 changed files with 550 additions and 13 deletions

View File

@@ -8,7 +8,7 @@ export interface WeatherSourceProviderOptions {
client?: WeatherSourceOptions["client"]
}
const weatherConfig = type({
export const weatherConfig = type({
"units?": "'metric' | 'imperial'",
"hourlyLimit?": "number",
"dailyLimit?": "number",
@@ -16,6 +16,7 @@ const weatherConfig = type({
export class WeatherSourceProvider implements FeedSourceProvider {
readonly sourceId = "aelis.weather"
readonly configSchema = weatherConfig
private readonly credentials: WeatherSourceOptions["credentials"]
private readonly client: WeatherSourceOptions["client"]