Skip to content

Instantly share code, notes, and snippets.

@slischka
Last active May 20, 2018 08:54
Show Gist options
  • Save slischka/8db313322c1d541f00d855bc13758ebc to your computer and use it in GitHub Desktop.
Save slischka/8db313322c1d541f00d855bc13758ebc to your computer and use it in GitHub Desktop.
Form Purposes
Vystváření, mazání a aktualizace formulářových souhlasu nebo informační povinnosti.
Tyhle dvě věci ve fapi ukládám do stejné tabulky.
Vytvoření souhlasu:
<?php
$formData = [
'...',
'purposes' => [
[
'id' => 10, //Tady to funguje jinak než položky. Pokud není ID definované, vytvoří se nový souhlas. Pokud je ID definovatne, aktualizuje se souhlas posle ID. Pokud v datech chybí souhlas, bude z formuláře smazán
'text' => 'Osobní udaje zpracovávání za tímhle a tímhle účelem', //Délka neomezena v DB nastaveno na text takže 64K bytu
'link_label' => 'Zpracování osobních údajů.', //Text odkazu, je povinný pokud je vyplněný odkaz
'link_href' => 'http://text.cz/gdpr', //Validní formát URL, povinný pokud je vyplněný text odkazu
]
],
'...',
];
?>
Informační povinnost se vytváří úplně stejný způsobme až na to že má příznak `is_primary`
<?php
$formData = [
'...',
'purposes' => [
[
'id' => 11,
'text' => 'Osobní udaje zpracovávání za tímhle a tímhle účelem', //Délka neomezena v DB nastaveno na text takže 64K bytu
'link_label' => 'Zpracování osobních údajů.', //Text odkazu, je povinný pokud je vyplněný odkaz
'link_href' => 'http://text.cz/gdpr', //Validní formát URL, povinný pokud je vyplněný text odkazu
'is_primary' => true, //Informační povinnost
],
],
'...',
];
?>
Example pro smazaní, vytvoření a aktualizace souhlasů v prodejním formuláři.
Dejte tomu že máme vytvořený formulář, který už má dva souhlasy:
<?php
$formData = [
'...',
'purposes' => [
[
'id' => 10,
'text' => 'info text 1',
'link_label' => 'text url 1',
'link_href' => 'http://url1.cz/gdpr',
],
[
'id' => 11,
'text' => 'info text 2',
'link_label' => 'text url 2',
'link_href' => 'http://url2.cz/gdpr',
],
],
'...',
];
?>
Na API pošlu request s těmito daty:
<?php
$formData = [
'...',
'purposes' => [
[
'id' => 11,
'text' => 'nový text info text 2',
'link_label' => 'nové url text url 2',
'link_href' => 'http://url2.cz/gdpr/aktualizovane',
],
[
'text' => 'info text 3',
'link_label' => 'text url 3',
'link_href' => 'http://url1.cz/gdpr',
],
],
'...',
];
?>
Takže souhlas s ID 10, bude smazaný. Souhlas s ID 11 se aktualizuje. Souhlas s textem `info text 3` se vytvoří.
Data pro vykreslení formuláře:
Pokud zavoláš request na `api.fapi.cz/forms/:id` s přiznakem `with_entities => true`.
Tak tam přibude pole:
<?php
$formResponse = [
'...',
'purposes' => [
[
'id' => 1,
'text' => 'Text informa4n9 povinnosti',
'link_label' => 'Odkay na ochranu osobních údajů',
'link_href' => 'http://url2.cz/gdpr',
'is_primary' => true,
],
[
'id' => 11,
'text' => 'nový text info text 2',
'link_label' => 'nové url text url 2',
'link_href' => 'http://url2.cz/gdpr/aktualizovane',
'is_primary' => false,
],
[
'id' => 13,
'text' => 'info text 3',
'link_label' => 'text url 3',
'link_href' => 'http://url1.cz/gdpr',
'is_primary' => false,
],
],
'...',
];
?>
Pokud je purpose s příznakem `is_primary => true`, není potřeba vykreslovat checkbox. Musí se ale zobrazit text aby byl klient informavaný za jakým účelem se jeho osobní údaje zpracovávájí.
Pokud je tam false, je potřeba vykreslit checkbox, klient ho může i nemusí zaškrtnout. Nijak to neovlivnujě odeslání prodejního formuláře.
Data pro vytvoření objednávky:
Nově je pro vytvoření objednávky "potřeba". Přidat data se souhlasy.
<?php
$orderCreateRequestData = [
'...',
'purposes' => [
[
'text' => 'text informační povinnosti <a href="odkat.cz">Text Odkazu</a>',
'form_purpose_id' => 1,
'checked' => true, // Protože je tohle informační povinnost, vždy zde musí bých `checked => true`
],
[
'text' => 'nové url text url 2 <a href="http://url2.cz/gdpr/aktualizovane">nové url text url 2</a>',
'form_purpose_id' => 11,
'checked' => true,
],
[
'text' => 'info text 3 <a href="http://url1.cz/gdpr">text url 3</a>',
'form_purpose_id' => 13,
'checked' => false,
],
],
'...',
];
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment