Skip to content

Commit 0a85723

Browse files
author
Mike van den Hoek
committed
(feat): finish implementing mijn taken
1 parent c349d8b commit 0a85723

25 files changed

+540
-49
lines changed

TODO.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
# TO-DO
22

3+
Please please take note; the code is very nasty but serves as a POC. There is no need to clean everything up since the requirements and mijn-taken API are likely to change.
4+
35
- Preprare generic form for altering the 'Taak' status
46
- Single page 'Taak' with form combined
7+
- Finding applicable form is now being done by css class, create form setting instead
8+
- Finding applicable form field which are populated on render needs to be done better and more robust

owc-gravityforms-zaaksysteem.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,11 @@
5757
* and wp_loaded action hooks.
5858
*/
5959
\add_action('plugins_loaded', function () {
60+
add_filter('http_request_args', function ($r, $url) {
61+
$r['sslverify'] = false;
62+
63+
return $r;
64+
}, 10, 2);
65+
6066
Foundation\Plugin::getInstance(__DIR__)->boot();
6167
}, 10);

resources/views/blocks/mijn-taken/overview-taken-current.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@
77
<div class="taak-card-wrapper">
88
<?php foreach ($vars['taken'] as $taak) {
99
echo view('blocks/mijn-taken/tabs-view/taak-card.php', [
10-
'title' => $taak->title(),
10+
'title' => $taak->title() . ' ' . $taak->supplier(),
1111
'clarification' => $taak->clarification(),
1212
'isActive' => true,
13+
'link' => $taak->permalink(),
1314
]);
1415
} ?>
1516
</div>

resources/views/blocks/mijn-taken/overview-taken.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
'title' => $taak->title(),
1919
'clarification' => $taak->clarification(),
2020
'isActive' => true,
21+
'link' => $taak->permalink(),
2122
]);
2223
} ?>
2324
</div>

resources/views/blocks/mijn-taken/tabs-view/taak-card.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
$isActive = $vars['isActive'] ?? false;
33
$title = $vars['title'] ?? '';
44
$clarification = $vars['clarification'] ?? '';
5-
$date = $date ?? '';
6-
$link = $link ?? '';
5+
$date = $vars['date'] ?? '';
6+
$link = $vars['link'] ?? '';
77
?>
88
<div class="taak-card <?php echo $isActive ? 'active' : ''; ?>">
99
<svg class="taak-card-svg" width="385" height="200" viewBox="0 0 385 200" fill="#F1F1F1" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none">
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?php declare(strict_types=1);
2+
get_header(); ?>
3+
<main id="main" class="template-opentaak">
4+
<div class="container">
5+
<div class="container-inner">
6+
<?php while (have_posts()) : the_post(); ?>
7+
8+
<header>
9+
<h1>
10+
<?php echo get_the_title() ?>
11+
</h1>
12+
<div id="readspeaker_button1" class="rs_skip rsbtn rs_preserve">
13+
<a rel="nofollow" class="rsbtn_play" accesskey="L"
14+
title="Laat de tekst voorlezen met ReadSpeaker webReader"
15+
href="//app-eu.readspeaker.com/cgi-bin/rsent?customerid=8150&amp;lang=nl_nl&amp;readid=readspeaker&amp;url=<?php echo get_permalink() ?>">
16+
<span class="rsbtn_left rsimg rspart"><span class="rsbtn_text"><span>Lees
17+
voor</span></span></span>
18+
<span class="rsbtn_right rsimg rsplay rspart"></span>
19+
</a>
20+
</div>
21+
</header>
22+
23+
<div class="content">
24+
<div id="readspeaker">
25+
<?php the_content(); ?>
26+
</div>
27+
</div>
28+
29+
<?php endwhile; ?>
30+
</div>
31+
</div>
32+
</main>
33+
34+
<?php get_footer();

src/Blocks/Taken/Block.php

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
use OWC\Zaaksysteem\Contracts\Client;
99
use OWC\Zaaksysteem\Endpoints\Filter\TakenFilter;
1010
use OWC\Zaaksysteem\Endpoints\Filter\ZakenFilter;
11-
use OWC\Zaaksysteem\Resolvers\ContainerResolver;
12-
use OWC\Zaaksysteem\Support\Collection;
13-
1411
use function OWC\Zaaksysteem\Foundation\Helpers\resolve;
1512
use function OWC\Zaaksysteem\Foundation\Helpers\view;
1613

14+
use OWC\Zaaksysteem\Resolvers\ContainerResolver;
15+
use OWC\Zaaksysteem\Support\Collection;
16+
1717
class Block
1818
{
1919
protected Client $client;
@@ -64,11 +64,11 @@ protected function getCurrentUserBsn(): string
6464
* TEMP: signicat plugin has some changes pending which requires another implementation.
6565
*/
6666
if (empty($bsn)) {
67-
$isLoggedIn = apply_filters('owc_siginicat_openid_is_user_logged_in', false, 'digid');
67+
$isLoggedIn = apply_filters('owc_digid_is_logged_in', false, 'digid');
6868

6969
if ($isLoggedIn) {
70-
$userInfo = apply_filters('owc_signicat_openid_user_info', [], 'digid');
71-
$bsn = $userInfo['sub'] ?? '';
70+
$userInfo = apply_filters('owc_digid_userdata', null, 'digid');
71+
$bsn = $userInfo->getBsn();
7272
}
7373

7474
return ! empty($bsn) && is_string($bsn) ? $bsn : '';
@@ -97,20 +97,21 @@ protected function uniqueTransientKey(array $attributes): string
9797

9898
protected function getZaken(array $attributes): Collection
9999
{
100-
return Collection::collect([
101-
'https://api.accept.common-gateway.commonground.nu/api/zrc/v1/zaken/f5d1c9b7-e3a9-485d-98cb-1667e1d0537c'
102-
]);
100+
// return Collection::collect([
101+
// 'https://api.accept.common-gateway.commonground.nu/api/zrc/v1/zaken/f5d1c9b7-e3a9-485d-98cb-1667e1d0537c',
102+
// ]);
103103

104+
// return $this->client->zaken()->all();
104105
// When mijn-taken api is properly configured this should be activated again.
105-
// $filter = new ZakenFilter();
106-
// $filter = $this->handleFilterBSN($filter, $attributes);
106+
$filter = new ZakenFilter();
107+
$filter = $this->handleFilterBSN($filter, $attributes);
107108

108-
// return $this->client->zaken()->filter($filter);
109+
return $this->client->zaken()->filter($filter);
109110
}
110111

111112
protected function handleFilterBSN(ZakenFilter $filter, array $attributes): ZakenFilter
112113
{
113-
if (! $attributes['byBSN']) {
114+
if (! ($attributes['byBSN'] ?? false)) {
114115
return $filter;
115116
}
116117

@@ -125,14 +126,14 @@ protected function getTaken(Collection $zaken): Collection
125126

126127
foreach ($zaken as $zaak) {
127128
$filter = new TakenFilter();
128-
// $filter->byZaak($zaak->url);
129-
$filter->byZaakURL($zaak); // Above should be activated again when the mijn-taken api is properly configured.
129+
$filter->byZaak($zaak);
130130
$fetchedTaken = $this->client->taken()->filter($filter);
131131

132132
if ($fetchedTaken->isNotEmpty()) {
133133
$taken[] = $fetchedTaken->toArray();
134134
}
135135
}
136+
// Misschien nog filteren hier?
136137
137138
return Collection::collect($taken)->flattenAndAssign(function ($carry, $item) {
138139
if (is_array($item)) {
@@ -147,7 +148,7 @@ protected function getTaken(Collection $zaken): Collection
147148

148149
protected function returnView(array $attributes, Collection $taken): string
149150
{
150-
if ($attributes['view'] === 'default') {
151+
if ('default' === $attributes['view']) {
151152
return view('blocks/mijn-taken/overview-taken.php', ['taken' => $taken]);
152153
}
153154

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace OWC\Zaaksysteem\Clients\RxMission\Actions;
6+
7+
use Exception;
8+
use OWC\Zaaksysteem\Contracts\AbstractCreateTaakAction;
9+
use OWC\Zaaksysteem\Entities\Taak;
10+
11+
class UpdateTaakAction extends AbstractCreateTaakAction
12+
{
13+
public const CLIENT_NAME = 'rx-mission';
14+
public const CALLABLE_NAME = 'rx.client';
15+
public const CLIENT_CATALOGI_URL = 'rx.catalogi_uri';
16+
public const CLIENT_ZAKEN_URL = 'rx.zaken_uri';
17+
public const FORM_SETTING_SUPPLIER_KEY = 'rx-mission';
18+
19+
public function updateTaak($taakUUID, $taakTitle, $status): Taak
20+
{
21+
if (empty($taakUUID)) {
22+
throw new Exception('Taak UUID onbekend.');
23+
}
24+
25+
$client = $this->getApiClient();
26+
27+
$args = $this->requestArgs($taakUUID, $taakTitle, $status);
28+
29+
return $client->taken()->update($taakUUID, $args);
30+
}
31+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace OWC\Zaaksysteem\Contracts;
6+
7+
use OWC\Zaaksysteem\Resolvers\ContainerResolver;
8+
use OWC\Zaaksysteem\Traits\FormSetting;
9+
10+
abstract class AbstractCreateTaakAction
11+
{
12+
use FormSetting;
13+
14+
public const CLIENT_NAME = '';
15+
public const CALLABLE_NAME = '';
16+
public const CLIENT_CATALOGI_URL = '';
17+
public const CLIENT_ZAKEN_URL = '';
18+
public const FORM_SETTING_SUPPLIER_KEY = '';
19+
20+
protected function getApiClient(): Client
21+
{
22+
return ContainerResolver::make()->getApiClient(static::CLIENT_NAME);
23+
}
24+
25+
protected function requestArgs($taakUUID, $taakTitle, $status): array
26+
{
27+
return [
28+
'id' => $taakUUID,
29+
'title' => $taakTitle,
30+
'status' => $status,
31+
];
32+
}
33+
34+
abstract public function updateTaak($taakUUID, $taakTitle, $status);
35+
}

src/Endpoints/Endpoint.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ protected function buildRequestOptions(): RequestOptions
5252
{
5353
return new RequestOptions([
5454
'headers' => [
55-
'Authorization' => 'taken' === $this->apiType ? $this->authenticator->getApiKeyMijnTaken() : $this->authenticator->getAuthString(),
55+
'Authorization' => 'taken' === $this->apiType || $this->client->getClientNamePretty() === 'rx-mission' ? $this->authenticator->getApiKeyMijnTaken() : $this->authenticator->getAuthString(),
5656
],
5757
]);
5858
}
@@ -106,9 +106,11 @@ protected function getCollection(Response $response): Collection
106106

107107
protected function mapEntities(array $data): array
108108
{
109-
return array_map(function ($item) {
110-
return $this->buildEntity($item);
109+
$entities = array_map(function ($item) {
110+
return is_array($item) ? $this->buildEntity($item) : null;
111111
}, $data);
112+
113+
return array_filter($entities);
112114
}
113115

114116
protected function buildEntity($data): Entity

0 commit comments

Comments
 (0)