Moduły

Każdy system MUSI posiadać definicję dla co najmniej jednego modułu.

Parametr Opis Wymagane Uwagi
name Unikalny nazwa modułu TAK Maksymalnie 32 znaki w formacie A-Z, a-z, 0-9, -, _
label Nazwa modułu wyświetlana w panelu TAK Maksymalnie 255 znaków
interface_config Obiekt określający zmienne do wykorzystania przy budowaniu formularza NIE Opis szczegółowy poniżej
event Obiekt zawierający konfigurację obsługi zdarzeń NIE Opis szczegółowy poniżej
functionality Obiekt zawierający konfigurację funkcjonalności TAK Lista definicji funkcjonalności
save Obiekt zawierający konfigurację zapisu modułu TAK Opis szczegółowy poniżej
translation Obiekt zawierający zbiór tłumaczeń używanych w module TAK Opis szczegółowy poniżej

Przykład:

{
  "name": "nazwa_modułu",
  "label": "Wyświetlana nazwa modułu",
  "interface_config": {},
  "event" : {},
  "functionality": {},
  "save": {},
  "translation": {}
}

Definicja zmiennych - interface_config

Służy głównie do zdefiniowania zmiennych które mają zostać wstawione w definicję formularza funkcjonalności i umożliwia pobranie zasobu z integrowanego systemu.

Parametr Opis Wymagane Uwagi
apiGlobals Lista zmiennych to zastąpienia w definicjach zmiennych apiVariable NIE Tablica gdzie wartością jest nazwa zmiennej w formacie A-Z, _, a wartoscią pola jest wartość stałej
apiVariable Lista zmiennych to zastąpienia w definicjach formularzy funkcjonalności NIE Tablica gdzie wartością jest nazwa zmiennej w formacie A-Z, _, a wartoscią definicja zapytania do zewnętrznego API
prependApiVariable Pozwala na wstawienie wartości do zmiennych z apiVariable przed tymi pobranymi z API NIE Tablica gdzie wartością jest nazwa zmiennej w formacie A-Z, _
appendApiVariable Pozwala na wstawienie wartości do zmiennych z apiVariable za tymi pobranymi z API NIE Tablica gdzie wartością jest nazwa zmiennej w formacie A-Z, _

Definicja zapytania - apiVariable

Parametry definicji:

Parametr Opis Wymagane Uwagi
url Url do zasobu TAK  
method Metoda HTTP TAK GET, POST itp.
converter Metoda parsująca odpowiedz z API NIE Wymaga ustalenia z zespołem SAREhub
options Obiekt opcji zapytania TAK Opis szczegółowy poniżej

Opcje zapytania:

Parametr Opis Wymagane Uwagi
headers Tablica nagłówków zapytania NIE  
form_params Tablica parametrów wysłana w żądaniu POST NIE Tablica gdzie kluczem jest nazwa parametru, a wartością wartość parametru

Przykład:

{
  "...": "...",
  "VAR_MODULE": {
    "url": "http://test.pl/api/test",
    "method": "POST",
    "converter": "convertVarModule",
    "options": {
      "headers": [
        "application/x-www-form-urlencoded"
      ],
      "form_params": {
        "param1": "param2"
      }
    }
  },
  "...": "..."
}

Definicja zdarzeń - event

Pole posiada tylko jeden parametr - listeners, który pozwala na określenie listy wywołań funkcji w momencie wywołania przez system SAREhub określonych zdarzeń.

Parametry definicji wywołania:

Parametr Opis Wymagane Uwagi
type Nazwa funkcji do wywołania TAK Typy opisane poniżej
config Dodatkowa konfiguracja wywołania TAK  

Dostępne funkcje nasłuchujące

apiCallListener

Funkcja pozwala na wywołanie metody API.

Parametry konfiguracji:

Parametr Opis Wymagane Uwagi
client Identyfikator klienta Guzzle TAK  
request Konfiguracja żądania do API TAK  

Parametry konfiguracji żądania

Parametr Opis Wymagane Uwagi
method Metoda HTTP TAK GET, POST itp.
url Url do zasobu TAK  
options Opcję żądania TAK Opcję zgodne z Guzzle.
Dostępne zdarzenia
campaign.started

Zdarzenie wyłowywane gdy zostanie uruchomiona kampania.

Przykład:

{
  "event": {
      "listeners": [
        {"...": "..."},
        {
          "type": "apiCallListener",
          "config": {
            "client": "test_api",
            "request": {
              "method": "POST",
              "url": "resource/1",
              "options": {
                "name": "test"
              }
            }
            "event": [
              {
                "name": "campaign.started",
              }
            ]
          }
        },
        {"...": "..."},
      ]
    }
}

entityChangedListener

Funkcja pozwala na przeładowanie kampanii po wywołaniu zdarzenia.

Parametry konfiguracji:

Parametr Opis Wymagane Uwagi
functionality Lista funkcjonalności dla których ma być aktywne wywołanie TAK  
event Lista zdarzeń do nasłuchiwania TAK  
Dostępne zdarzenia
entity.changed

Zdarzenie wyłowywane gdy zostanie zaktualizowana określona encja.

Konfiguracja zdarzenia:

Parametr Opis Wymagane Uwagi
entity Lista encji przy których ma zostac wywołana funkcja TAK Tablica gdzie kluczem jest nazwa encji, a wartoscią jest tablica identyfikatorów pól z definicji formularza funkcjonalności

Lista encji:

Encja Opis
testGroup Grupy testowe, należy wstawić null jako pierwszy element
notificationsTemplate Szablon powiadomienia webpush
personalizationTemplate Szablon personalizacji

Przykład:

{
  "event": {
      "listeners": [
        {"...": "..."},
        {
          "type": "entityChangedListener",
          "config": {
            "functionality": [
              "notifications"
            ],
            "event": [
              {
                "name": "entity.changed",
                "config": {
                  "entity": {
                    "testGroup": [
                      null
                    ],
                    "notificationsTemplate": [
                      "notification_template_id"
                    ],
                    "personalizationTemplate": [
                      "web_push_personalization"
                    ]
                  }
                }
              }
            ]
          }
        },
        {"...": "..."},
      ]
    }
}

integrationIdentityListener

Funkcja pozwala na modyfikację identyfikatorów SAREweb

Parametry konfiguracji:

Parametr Opis Wymagane Uwagi
event Lista zdarzeń do nasłuchiwania TAK  
Dostępne zdarzenia
integration.completed

Zdarzenie wyłowywane po poprawnej integracji systemu.

Przykład:

{
  "event": {
      "listeners": [
        {"...": "..."},
        {
          "type": "integrationIdentityListener",
          "config": {
            "event": [
              {
                "name": "entity.changed",
                "config": {}
              }
            ]
          }
        },
        {"...": "..."},
      ]
    }
}
integration.deleted

Zdarzenie wyłowywane po poprawnym usunięciu integracji.

Przykład:

{
  "event": {
      "listeners": [
        {"...": "..."},
        {
          "type": "integrationIdentityListener",
          "config": {
            "event": [
              {
                "name": "entity.deleted",
                "config": {}
              }
            ]
          }
        },
        {"...": "..."},
      ]
    }
}

Zapis modułu - save

Służy do określenia w jaki sposób konfiguracja modułu ma być zapisana do wykożystania w flow kampanii. Zapis modułu wywoływany jest w momencie uruchomienia kampanii.

Parametr Opis Wymagane Uwagi
type Typ obsługi zapisu TAK Opisane poniżej
config Konfiguracja zapisu TAK Zależnie od typu

Wywołanie API - api-call

Pozwala na zapis konfiguracji modulu w określonym API.

Parametry konfiguracji:

Parametr Opis Wymagane Uwagi
client Identyfikator klienta Guzzle TAK  
request Konfiguracja żądania do API TAK  

Parametry konfiguracji żądania

Parametr Opis Wymagane Uwagi
method Metoda HTTP TAK GET, POST itp.
url Url do zasobu TAK  
options Opcję żądania TAK Opcję zgodne z Guzzle.

Przykład:

{
  "save": {
    "type": "api-call",
    "config": {
      "client": "test_client",
      "request": {
        "method": "POST",
        "url": "resource/1",
        "options": {
          "json": {
            "name": "test"
          }
        }
      }
    }
  }
}

Zapis zależny od konfiguracji - multi

Pozwala na określenie konfiguracji zależnie od funkcjonalności:

Przykład:

{
  "save": {
    "type": "multi",
    "config": {
      "functionality": {
        "func1": {
          "type": "api-call",
          "config": {}
        },
        "func2": {
          "type": "mongo-api",
          "config": {}
        },
      }
    }
  }
}

Zapis do MongoDB - mongo-api

Pozwala na zapis konfiguracji modulu w bazie MongoDB. Typ używany głównie w wewnętrznych modułach systemu SAREhub.

Parametry konfiguracji:

Parametr Opis Wymagane Uwagi
module Nazwa modułu TAK  
rule Reguła w formacie JSON TAK Reguły sa łączone dla modułu

Przykład:

{
  "save": {
    "type": "mongo-api",
    "config": {
      "module": "test_module",
      "rule": {
        "event": "test",
        "condition": "test"
      }
    }
  }
}

Tłumaczenia - translation

Definicja tłumaczeń do użycia w konfiguracji formularzy.

Przykład:

{
  "translation": {
    "pl": {
      "name": "nazwa",
    }
  }
}

Tłumaczenia w formularzach można użyć poprzez dyrektywę %TRANSLATE|klucz_w_translacji%.

Przykład:

{
  "label": "%TRANSLATE|name"
}