builder = $builder; } /** * @throws EntityNotFoundException * @throws JsonException */ public function getForm(Request $request): JsonResponse { $alias = $request->json('alias'); if (! $alias) { return new JsonResponse([ 'error' => 'Form alias is required', ], Response::HTTP_UNPROCESSABLE_ENTITY); } $form = $this->builder->newQuery() ->from('acmeshop_forms') ->where('alias', '=', $alias) ->firstOrNull(); if (! $form) { throw new EntityNotFoundException("Form with alias `{$alias}` not found"); } $schema = json_decode($form['schema'], true, 512, JSON_THROW_ON_ERROR); return new JsonResponse([ 'data' => [ 'schema' => $schema, ], ]); } }