Completed
Push — master ( 3596b1...186b3d )
by Oscar
03:58
created

CreateEntityField::json()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 22
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 22
rs 9.2
c 0
b 0
f 0
cc 2
eloc 13
nc 2
nop 3
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
use Middlewares\Utils\Factory;
10
11
class CreateEntityField extends Entity
12
{
13
    public function json(Request $request, Admin $app, $entityName)
14
    {
15
        $field = $request->getAttribute('field');
16
        $data = $request->getParsedBody();
17
18
        $form = static::createForm($app, $entityName);
19
        $form['data'][$field]->val($data['value']);
20
21
        if ($form->validate()) {
22
            $entity = $app->getEntity($entityName);
23
24
            $id = $entity->create($form['data']->val());
25
            $data = $entity->read($id);
26
            
27
            return json_encode([
28
                'id' => $id,
29
                'label' => $entity->getLabel($id, $data),
30
            ]);
31
        }
32
33
        return Factory::createResponse(400);
34
    }
35
}
36