SmartForms API

V této části dokumentu najdete postup, jak získat a upravit metadata formulářů pomocí GraphQL API.

GraphQL je dotazovací jazyk pro tvorbu rozhraní pro programování aplikací (API, tedy Application Programming Interface).

Jaká potřebujete oprávnění

Upravovat metadata SmartForms může pouze přihlášený uživatel. Ten musí být obsazen v roli administrátora nebo v roli správce agend. Upravovat metadata může také běžící agenda.

Jak získat seznam SmartForms

Seznam SmartForms lze získat dotazem položeným prostřednictvím dotazovacího jazyka GraphQL.

  • Koncový bod: /api/sofa/v1/graphql

  • Metoda: POST

  • Hlavičky: Content-Type: application/json

Příklad zadání

Zde je uveden příklad položení dotazu v GraphQL.

query SmartForms {
    forms {
        forms{
            category
            code
            department
            description(language: CZ)
            description_Localization {
                cz
                en
                 # sk
            }
            displayName(language: CZ)
            displayName_Localization {
                cz
                en
                 # sk
            }
            division
            from
            icon
            id
            link
            mode
            orgUnit
            state
            to
            type
        }
    }
}

Příklad výsledku

A tak může vypadat odpovídající výsledek.

{
  "data": {
    "forms": {
      "forms": [
        {
          "category": "1",
          "code": "SMART_FORM",
          "department": null,
          "description": null,
          "description_Localization": null,
          "displayName": "Formulář",
          "displayName_Localization": {
            "cz": "Formulář",
            "en": "Form"
          },
          "division": null,
          "from": null,
          "icon": "https://sofa.602.cz:44317/Images/empty-image_48_obecna.png",
          "id": "17f50d95-566e-47fb-8309-a9ce54f346a4",
          "link": "https://sofa.602.cz/fas/formservice/filler.open?filingid=ffc39fae-9a98-413d-bc2b-d46b3f4a1f8e",
          "mode": "RESPONSIVE",
          "orgUnit": "3",
          "state": "3",
          "to": null,
          "type": "SINGLE"
        }
      ]
    }
  }
}

Jak upravit metadata SmartForm

V této kapitole je uveden příklad, jak metadata ve SmartForm upravit.

Příklad zadání

Zde je uveden příklad položení dotazu v GraphQL.

mutation updateSmartForms {
    forms {
        updateForm(form: {
            id: "17f50d95-566e-47fb-8309-a9ce54f346a4"
            displayName_Localization: {
                cz: "Změněný název"
                en: "changed name"
            }
            description_Localization: {
                cz: "Poznámka"
                en: "Note"
            }
            code: "kód"
            category: "1"
            state: "1"
            orgUnit: "1"
            department: "1"
            division: "1"
            from: null
            to: null
        }) {
            category
            code
            department
            description(language: CZ)
            description_Localization {
                cz
                en
                 # sk
            }
            displayName(language: CZ)
            displayName_Localization {
                cz
                en
                 # sk
            }
            division
            from
            icon
            id
            link
            mode
            orgUnit
            state
            to
            type
        }
    }
}

Příklad výsledku

A tak může vypadat odpovídající výsledek.

{
    "data": {
        "forms": {
            "updateForm": {
                "category": "1",
                "code": "kód 1",
                "department": null,
                "description": null,
                "description_Localization": null,
                "displayName": "Změněný název",
                "displayName_Localization": {
                    "cz": "Změněný název",
                    "en": "changed name"
                },
                "division": null,
                "from": null,
                "icon": "https://sofa.602.cz:44317/Images/empty-image_48_obecna.png",
                "id": "17f50d95-566e-47fb-8309-a9ce54f346a4",
                "link": "https://sofa.602.cz/fas/formservice/filler.open?filingid=ffc39fae-9a98-413d-bc2b-d46b3f4a1f8e",
                "mode": "RESPONSIVE",
                "orgUnit": "3",
                "state": "1",
                "to": null,
                "type": "SINGLE"
            }
        }
    }
}

Data číselníků

V této kapitole je popsán postup, jak pomocí dotazu v GraphQL získat data číselníku ze SmartForms.

Nejprve si uveďme, jaká jsou Id číselníků, které jsou použity v metadatech SmartForms.

  • Kategorie Id: ‘sys_form_category’

  • Stav formuláře Id: ‘sys_form_state’

  • Organizační jednotka Id: ‘sys_org_unit’

  • Oddělení: Id: ‘sys_department’

  • Odbor: Id: ‘sys_division’

Příklad zadání

Toto je příklad zadání dotazu v jazyce GraphQL k získání dat číselníku pro aktualizaci metadat SmartForms.

query getEnumById {
  enums {
    enum(id: "sys_form_category") {
      id
      displayName
      values {
        value
        displayName
      }
    }
  }
}

Příklad výsledku

Takto může vypadat výsledek položeného GraphQL dotazu:

{
  "data": {
    "enums": {
      "enum": {
        "id": "sys_form_category",
        "displayName": "Kategorie",
        "values": [
          {
            "value": "1",
            "displayName": "Kategorie 1"
          }
        ]
      }
    }
  }
}