Versamento su API AgID
This commit is contained in:
@@ -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
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user