Versamento su API AgID

This commit is contained in:
2026-03-19 14:43:36 +01:00
parent 06dfbfcbc4
commit 4e19090f0f
12 changed files with 1319 additions and 3 deletions
+60
View File
@@ -0,0 +1,60 @@
/**
* API client per le impostazioni del tenant.
*
* Endpoint:
* GET /api/v1/settings → legge configurazione (admin)
* PUT /api/v1/settings → aggiorna configurazione (admin)
*/
import { apiClient } from './client'
// ─── Tipi ──────────────────────────────────────────────────────────────────
export type ArchivalMode = 'mock' | 'production'
export interface TenantSettingsResponse {
id: string
tenant_id: string
archival_mode: ArchivalMode
conservatore_id: string
conservatore_endpoint: string | null
conservatore_username_configured: boolean
conservatore_password_configured: boolean
archival_notes: string | null
created_at: string
updated_at: string
}
export interface TenantSettingsUpdate {
archival_mode?: ArchivalMode
conservatore_id?: string
/** URL endpoint API del conservatore (obbligatorio in produzione) */
conservatore_endpoint?: string
/** Username in chiaro viene cifrata lato server. Stringa vuota = cancella */
conservatore_username?: string
/** Password in chiaro viene cifrata lato server. Stringa vuota = cancella */
conservatore_password?: string
archival_notes?: string
}
// ─── Client ────────────────────────────────────────────────────────────────
export const settingsApi = {
/**
* Recupera le impostazioni del tenant corrente.
* Se non esistono, il backend le crea con i valori di default (mock).
*/
get: async (): Promise<TenantSettingsResponse> => {
const { data } = await apiClient.get<TenantSettingsResponse>('/settings')
return data
},
/**
* Aggiorna le impostazioni del tenant.
* Solo i campi forniti vengono modificati (semantica PATCH).
*/
update: async (payload: TenantSettingsUpdate): Promise<TenantSettingsResponse> => {
const { data } = await apiClient.put<TenantSettingsResponse>('/settings', payload)
return data
},
}