Aggiorna le impostazioni della pagina pubblica
package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://example.com/api/admin/v1/establishments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/online-settings"
payload := strings.NewReader("{ \"booking_enabled\": true, \"allowed_embed_origins\": [ \"example\" ], \"theme\": { \"logo_url\": \"example\", \"primary_color\": \"example\", \"accent_color\": \"example\", \"font_family\": \"Inter\", \"radius\": \"none\", \"show_prices_on_map\": true, \"hide_header_in_embed\": true, \"map_kit\": \"modern\", \"custom_texts\": { \"additionalProperty\": { \"additionalProperty\": \"example\" } } }, \"flow\": { \"formulas\": [ \"half_day\" ], \"slots\": [ \"AM\" ], \"show_rate_periods\": true, \"max_days_ahead\": 1, \"promo_codes_enabled\": true, \"require_phone\": true } }")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("cookie", "arenile_session=<arenile_session>") req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://example.com/api/admin/v1/establishments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/online-settings';const options = { method: 'PUT', headers: { cookie: 'arenile_session=<arenile_session>', 'Content-Type': 'application/json' }, body: '{"booking_enabled":true,"allowed_embed_origins":["example"],"theme":{"logo_url":"example","primary_color":"example","accent_color":"example","font_family":"Inter","radius":"none","show_prices_on_map":true,"hide_header_in_embed":true,"map_kit":"modern","custom_texts":{"additionalProperty":{"additionalProperty":"example"}}},"flow":{"formulas":["half_day"],"slots":["AM"],"show_rate_periods":true,"max_days_ahead":1,"promo_codes_enabled":true,"require_phone":true}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://example.com/api/admin/v1/establishments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/online-settings \ --header 'Content-Type: application/json' \ --cookie arenile_session=<arenile_session> \ --data '{ "booking_enabled": true, "allowed_embed_origins": [ "example" ], "theme": { "logo_url": "example", "primary_color": "example", "accent_color": "example", "font_family": "Inter", "radius": "none", "show_prices_on_map": true, "hide_header_in_embed": true, "map_kit": "modern", "custom_texts": { "additionalProperty": { "additionalProperty": "example" } } }, "flow": { "formulas": [ "half_day" ], "slots": [ "AM" ], "show_rate_periods": true, "max_days_ahead": 1, "promo_codes_enabled": true, "require_phone": true } }'Permesso establishment.configure. Valida le origini (https://host[:porta], niente percorsi né caratteri jolly), i colori del tema (#RRGGBB) e le formule. allowed_embed_origins alimenta frame-ancestors (spec 12.2). Audit e evento config.online_changed nella stessa transazione.
Authorizations
Sezione intitolata “Authorizations”Parameters
Sezione intitolata “Parameters”Path Parameters
Sezione intitolata “Path Parameters”Header Parameters
Sezione intitolata “Header Parameters”ETag (versione) letto in precedenza: se non coincide la richiesta fallisce con 412 version_conflict. * equivale a “qualsiasi versione”. È accettata anche la forma debole W/"3" prodotta dai proxy che comprimono le risposte (ADR 0008).
Obbligatorio per le richieste autenticate via cookie che modificano
dati: deve coincidere con il valore del cookie arenile_csrf.
Request Bodyrequired
Sezione intitolata “Request Bodyrequired”object
Tema della pagina pubblica (specifica 12.5).
object
Kit di illustrazioni della mappa (ADR 0024), per pannello e pagina pubblica: modern (v3, stato sul disegno) o classic (v2.1, stato nell’alone). Assente = modern. Gli id delle illustrazioni sono gli stessi nei due kit, quindi cambiarlo non tocca le mappe salvate.
Testi personalizzati per lingua, es. {“it”: {“intro”: “…”}}.
object
object
Opzioni del flusso pubblico.
object
Formule proposte online (vuoto = tutte quelle ammesse dai pack online).
Fasce proposte online (default FULL, AM, PM).
Evidenzia i periodi tariffari nel calendario pubblico.
Limite di prenotabilità in giorni (oltre alla policy).
Ignorato e salvato sempre come false: il telefono è facoltativo ovunque (ADR 0020).
Responses
Sezione intitolata “Responses”Impostazioni aggiornate
object
Tema della pagina pubblica (specifica 12.5).
object
Kit di illustrazioni della mappa (ADR 0024), per pannello e pagina pubblica: modern (v3, stato sul disegno) o classic (v2.1, stato nell’alone). Assente = modern. Gli id delle illustrazioni sono gli stessi nei due kit, quindi cambiarlo non tocca le mappe salvate.
Testi personalizzati per lingua, es. {“it”: {“intro”: “…”}}.
object
object
Opzioni del flusso pubblico.
object
Formule proposte online (vuoto = tutte quelle ammesse dai pack online).
Fasce proposte online (default FULL, AM, PM).
Evidenzia i periodi tariffari nel calendario pubblico.
Limite di prenotabilità in giorni (oltre alla policy).
Ignorato e salvato sempre come false: il telefono è facoltativo ovunque (ADR 0020).
object
object
Testi di una lingua di una versione delle condizioni (spec 12.3, 23).
object
Testo del consenso marketing facoltativo.
object
<ARENILE_BASE_URL>/b/<slug>
Versione per la concorrenza ottimistica; coincide con l’ETag.
Example
{ "theme": { "font_family": "Inter", "radius": "none", "map_kit": "modern" }, "flow": { "formulas": [ "half_day" ], "slots": [ "AM" ] }}Headers
Sezione intitolata “Headers”Versione della risorsa ("<version>"), da reinviare in If-Match.
Richiesta non valida
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Autenticazione assente o non valida
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Permesso negato
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Risorsa inesistente
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Versione non aggiornata (version_conflict, con current_version)
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Operazione non ancora disponibile (not_implemented)
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}
