Completed
Push — master ( b08f1d...a1a0df )
by Oscar
04:27
created

UpdateEntity::html()   B

Complexity

Conditions 2
Paths 2

Size

Total Lines 26
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 4
Bugs 1 Features 0
Metric Value
c 4
b 1
f 0
dl 0
loc 26
rs 8.8571
cc 2
eloc 15
nc 2
nop 4
1
<?php
2
3
namespace Folk\Controllers;
4
5
use Psr\Http\Message\ServerRequestInterface as Request;
6
use Psr\Http\Message\ResponseInterface as Response;
7
use Folk\Admin;
8
use Zend\Diactoros\Response\RedirectResponse;
9
10
class UpdateEntity extends Entity
11
{
12
    public function html(Request $request, Response $response, Admin $app, $entityName)
13
    {
14
        $id = $request->getAttribute('id');
15
16
        $form = static::createForm($app, $entityName, $id);
17
        $form->loadFromPsr7($request);
18
19
        if ($form->validate()) {
20
            $app->getEntity($entityName)->update($id, $form['data']->val());
21
22
            return new RedirectResponse($app->getRoute('read', [
23
                'entity' => $entityName,
24
                'id' => $id,
25
            ]));
26
        }
27
28
        $response->getBody()->write(
29
            $app['templates']->render('pages/read', [
30
                'entityName' => $entityName,
31
                'form' => $form,
32
                'id' => $id,
33
            ])
34
        );
35
36
        return $response->withStatus(400);
37
    }
38
}
39