🎉 T-wiki 1.3.0 is released

Documentazione API - ZMagazzinoApi

POST - /api/GraphicWarehouse

(Crea un nuovo layout di magazzino grafico)

Codici di risposta possibili

  • 201 Created: Il layout è stato creato con successo.
  • 400 Bad Request: I dati forniti nel body non sono validi o sono incompleti.
  • 401 Unauthorized: Token di autenticazione mancante o non valido.
  • 500 Internal Server Error: Errore interno del server durante l’elaborazione della richiesta.

Controlli

  • Autenticazione JWT richiesta.
  • Validazione dell’input body (ogni elemento della lista viene validato).
  • Controllo che username, company e idCompany siano presenti nei claims dell’utente.

Eccezioni possibili

  • InvalidInputException: I dati forniti nel body non superano la validazione.
  • DatabaseConnectionError: Errore durante il salvataggio dei dati nel database.

Input Body (JSON)

[
  {
    "shopId": "integer (ID del punto vendita)",
    "companyId": "integer (ID dell'azienda)",
    "version": "integer (Versione del layout)",
    "activeFrom": "datetime (Data di inizio validitĂ )",
    "activeTo": "datetime (opzionale, Data di fine validitĂ )",
    "layout": "string (Contenuto del layout, es. JSON o XML)",
    "blueprintImage": "string (Base64 immagine di sfondo)",
    "notes": "string (opzionale, Note aggiuntive)"
  }
]

Output Body (JSON)

{
  "dati": [
    {
      "companyId": "integer",
      "shopId": "integer",
      "version": "integer",
      "state": "string (Stato del layout, es. 'Bozza', 'Attivo')",
      "activeFrom": "datetime",
      "activeTo": "datetime",
      "layout": "string",
      "blueprintImage": "string,
      "notes": "string",
      "locked": "boolean"
    }
  ],
  "messaggi": "array[string]",
  "errori": "array[string]"
}

POST - /api/GraphicWarehouse/Draft

(Crea una bozza di layout di magazzino grafico)

Codici di risposta possibili

  • 201 Created: La bozza del layout è stata creata con successo.
  • 400 Bad Request: I dati forniti nel body non sono validi.
  • 401 Unauthorized: Token di autenticazione mancante o non valido.
  • 500 Internal Server Error: Errore interno del server.

Controlli

  • Autenticazione JWT richiesta.
  • Validazione dell’input body.

Eccezioni possibili

  • InvalidInputException: I dati forniti nel body non sono validi.
  • DatabaseConnectionError: Errore durante il salvataggio della bozza.

Input Body (JSON)

Stesso formato di POST /api/GraphicWarehouse.

[
  {
    "shopId": "integer",
    "companyId": "integer",
    "version": "integer",
    "activeFrom": "datetime",
    "activeTo": "datetime (opzionale)",
    "layout": "string",
    "blueprintImage": "string,
    "notes": "string (opzionale)"
  }
]

Output Body (JSON)

Stesso formato di POST /api/GraphicWarehouse.

{
  "dati": [
    {
      "companyId": "integer",
      "shopId": "integer",
      "version": "integer",
      "state": "string",
      "activeFrom": "datetime",
      "activeTo": "datetime",
      "layout": "string",
      "blueprintImage": "string,
      "notes": "string",
      "locked": "boolean"
    }
  ],
  "messaggi": "array[string]",
  "errori": "array[string]"
}

POST - /api/GraphicWarehouse/Active

(Attiva un layout di magazzino grafico)

Codici di risposta possibili

  • 200 OK: Il layout è stato attivato con successo.
  • 400 Bad Request: I dati forniti non sono validi.
  • 401 Unauthorized: Token di autenticazione mancante o non valido.
  • 404 Not Found: Il layout specificato non è stato trovato.
  • 500 Internal Server Error: Errore interno del server.

Controlli

  • Autenticazione JWT richiesta.
  • Validazione dell’input body.

Eccezioni possibili

  • LayoutNotFoundException: Nessun layout trovato per la chiave specificata.
  • InvalidOperationException: Il layout non può essere attivato (es. è giĂ  attivo o archiviato).

Input Body (JSON)

[
  {
    "companyId": "integer (ID dell'azienda)",
    "shopId": "integer (ID del punto vendita)",
    "version": "integer (Versione del layout da attivare)"
  }
]

Output Body (JSON)

Stesso formato di POST /api/GraphicWarehouse.


POST - /api/GraphicWarehouse/Archive

(Archivia un layout di magazzino grafico)

Codici di risposta possibili

  • 200 OK: Il layout è stato archiviato con successo.
  • 400 Bad Request: I dati forniti non sono validi.
  • 401 Unauthorized: Token di autenticazione mancante o non valido.
  • 404 Not Found: Il layout specificato non è stato trovato.
  • 500 Internal Server Error: Errore interno del server.

Controlli

  • Autenticazione JWT richiesta.
  • Validazione dell’input body.

Eccezioni possibili

  • LayoutNotFoundException: Nessun layout trovato per la chiave specificata.
  • InvalidOperationException: Il layout non può essere archiviato (es. è in bozza).

Input Body (JSON)

[
  {
    "companyId": "integer (ID dell'azienda)",
    "shopId": "integer (ID del punto vendita)",
    "version": "integer (Versione del layout da archiviare)"
  }
]

Output Body (JSON)

Stesso formato di POST /api/GraphicWarehouse.


POST - /api/GraphicWarehouse/Lock

(Blocca un layout per la modifica)

Codici di risposta possibili

  • 200 OK: Il layout è stato bloccato con successo.
  • 401 Unauthorized: Token di autenticazione mancante o non valido.
  • 404 Not Found: Il layout specificato non è stato trovato.
  • 500 Internal Server Error: Errore interno del server.

Controlli

  • Autenticazione JWT richiesta.

Eccezioni possibili

  • LayoutNotFoundException: Nessun layout trovato per la chiave specificata.
  • LayoutAlreadyLockedException: Il layout è giĂ  bloccato da un altro utente.

Input Body (JSON)

[
  {
    "companyId": "integer",
    "shopId": "integer",
    "version": "integer"
  }
]

Output Body (JSON)

Stesso formato di POST /api/GraphicWarehouse.


POST - /api/GraphicWarehouse/Unlock

(Sblocca un layout dopo la modifica)

Codici di risposta possibili

  • 200 OK: Il layout è stato sbloccato con successo.
  • 401 Unauthorized: Token di autenticazione mancante o non valido.
  • 404 Not Found: Il layout specificato non è stato trovato.
  • 500 Internal Server Error: Errore interno del server.

Controlli

  • Autenticazione JWT richiesta.

Eccezioni possibili

  • LayoutNotFoundException: Nessun layout trovato per la chiave specificata.
  • LayoutNotLockedException: Il layout non era bloccato.

Input Body (JSON)

[
  {
    "companyId": "integer",
    "shopId": "integer",
    "version": "integer"
  }
]

Output Body (JSON)

Stesso formato di POST /api/GraphicWarehouse.


PATCH - /api/GraphicWarehouse

(Aggiorna un layout di magazzino grafico esistente)

Codici di risposta possibili

  • 200 OK: Il layout è stato aggiornato con successo.
  • 400 Bad Request: I dati forniti non sono validi.
  • 401 Unauthorized: Token di autenticazione mancante o non valido.
  • 404 Not Found: Il layout da aggiornare non è stato trovato.
  • 500 Internal Server Error: Errore interno del server.

Controlli

  • Autenticazione JWT richiesta.
  • Validazione dell’input body.
  • Controllo che il layout sia bloccato (InModifica = true) prima di poterlo modificare.

Eccezioni possibili

  • LayoutNotFoundException: Il layout specificato non ďż˝ stato trovato.
  • LayoutNotLockedException: Il layout deve essere bloccato prima di poter essere modificato.

Input Body (JSON)

[
  {
    "shopId": "integer",
    "companyId": "integer",
    "version": "integer",
    "activeFrom": "datetime (opzionale)",
    "activeTo": "datetime (opzionale)",
    "layout": "string (opzionale)",
    "blueprintImage": "string,
    "notes": "string (opzionale)"
  }
]

Output Body (JSON)

Stesso formato di POST /api/GraphicWarehouse.


DELETE - /api/GraphicWarehouse

(Elimina tutti i layout di magazzino per un punto vendita)

Codici di risposta possibili

  • 200 OK: Tutti i layout per il punto vendita sono stati eliminati.
  • 400 Bad Request: I dati forniti non sono validi.
  • 401 Unauthorized: Token di autenticazione mancante o non valido.
  • 404 Not Found: Nessun magazzino grafico trovato per la chiave specificata.
  • 500 Internal Server Error: Errore interno del server.

Controlli

  • Autenticazione JWT richiesta.
  • Validazione dell’input body.

Eccezioni possibili

  • WarehouseNotFoundException: Il magazzino grafico per l’azienda e il punto vendita specificati non esiste.

Input Body (JSON)

[
  {
    "companyId": "integer",
    "shopId": "integer"
  }
]

Output Body (JSON)

Nessuno.


DELETE - /api/GraphicWarehouse/Version

(Elimina una versione specifica di un layout di magazzino)

Codici di risposta possibili

  • 200 OK: La versione del layout è stata eliminata.
  • 400 Bad Request: I dati forniti non sono validi.
  • 401 Unauthorized: Token di autenticazione mancante o non valido.
  • 404 Not Found: La versione del layout specificata non è stata trovata.
  • 500 Internal Server Error: Errore interno del server.

Controlli

  • Autenticazione JWT richiesta.
  • Validazione dell’input body.

Eccezioni possibili

  • LayoutNotFoundException: La versione del layout specificata non è stata trovata.
  • InvalidOperationException: Non è possibile eliminare un layout attivo.

Input Body (JSON)

[
  {
    "companyId": "integer",
    "shopId": "integer",
    "version": "integer"
  }
]

Output Body (JSON)

Nessuno.


EntitĂ 

Elenco e descrizione delle principali entitĂ  (DTO, Model) usate negli Input/Output.

InputNewGraphicWarehouse

{
  "shopId": "integer (ID del punto vendita, obbligatorio)",
  "companyId": "integer (ID dell'azienda, obbligatorio)",
  "version": "integer (Versione del layout, obbligatorio)",
  "activeFrom": "datetime (Data di inizio validitĂ , obbligatorio)",
  "activeTo": "datetime (Data di fine validitĂ , opzionale)",
  "layout": "string (Contenuto del layout, obbligatorio)",
  "blueprintImage": "string,
  "notes": "string (Note aggiuntive, opzionale)"
}

InputUpdateGraphicWarehouse

{
  "shopId": "integer (obbligatorio)",
  "companyId": "integer (obbligatorio)",
  "version": "integer (obbligatorio)",
  "activeFrom": "datetime (opzionale)",
  "activeTo": "datetime (opzionale)",
  "layout": "string (opzionale)",
  "blueprintImage": "string,
  "notes": "string (opzionale)"
}

InputGraphicWarehouseKey

{
  "companyId": "integer (ID dell'azienda, obbligatorio)",
  "shopId": "integer (ID del punto vendita, obbligatorio)"
}

InputGraphicWarehouseLayoutKey

{
  "companyId": "integer (ID dell'azienda, obbligatorio)",
  "shopId": "integer (ID del punto vendita, obbligatorio)",
  "version": "integer (Versione del layout, obbligatorio)"
}

OutputGraphicWarehouse

{
  "companyId": "integer (ID dell'azienda)",
  "shopId": "integer (ID del punto vendita)",
  "version": "integer (Versione del layout)",
  "state": "string (Stato corrente del layout: 'Bozza', 'Attivo', 'Archiviato')",
  "activeFrom": "datetime (Data inizio validitĂ )",
  "activeTo": "datetime (Data fine validitĂ )",
  "layout": "string (Contenuto del layout)",
  "blueprintImage": "string,
  "notes": "string (Note)",
  "locked": "boolean (Indica se il layout è bloccato per la modifica)"
}

Eccezioni

Elenco centralizzato di alcuni possibili messaggi di errore o tipi di eccezione.

  • InvalidInputException: “I dati forniti nel body non sono validi. Controllare i campi obbligatori e i loro formati.”
  • UnauthorizedAccess: “Token di autenticazione mancante o non valido.”
  • DatabaseConnectionError: “Errore interno del server durante la connessione al database.”
  • LayoutNotFoundException: “Il layout con la chiave specificata non è stato trovato.”
  • WarehouseNotFoundException: “Il magazzino grafico per l’azienda e il punto vendita specificati non esiste.”
  • LayoutAlreadyLockedException: “Operazione non consentita: il layout è giĂ  bloccato.”
  • LayoutNotLockedException: “Operazione non consentita: il layout deve essere bloccato prima di poter essere modificato.”
  • InvalidOperationException: “Operazione non valida per lo stato corrente del layout (es. non si può archiviare una bozza o eliminare un layout attivo).”