Completed
Push — master ( 35f032...6bd489 )
by Oscar
02:43
created

UpdateEntityField::json()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 21
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 21
rs 9.3142
c 0
b 0
f 0
cc 2
eloc 13
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 UpdateEntityField extends Entity
11
{
12
    public function json(Request $request, Response $response, Admin $app, $entityName)
13
    {
14
        $id = $request->getAttribute('id');
15
        $field = $request->getAttribute('field');
16
        $data = $request->getParsedBody();
17
18
        $form = static::createForm($app, $entityName, $id);
19
        $form['data']->val($app->getEntity($entityName)->read($id));
20
        $form['data'][$field]->val($data['value']);
21
22
        if ($form->validate()) {
23
            $app->getEntity($entityName)->update($id, $form['data']->val());
24
            
25
            return json_encode([
26
                'value' => $form['data'][$field]->val(),
27
                'htmlValue' => $form['data'][$field]->valToHtml(),
28
            ]);
29
        }
30
31
        return $response->withStatus(400);
32
    }
33
}
34