| @@ 100-115 (lines=16) @@ | ||
| 97 | * @Route("/api/{version}/rules/", options={"expose"=true}, defaults={"version"="v1"}, name="swp_api_core_create_rule") |
|
| 98 | * @Method("POST") |
|
| 99 | */ |
|
| 100 | public function createAction(Request $request) |
|
| 101 | { |
|
| 102 | $ruleRepository = $this->get('swp.repository.rule'); |
|
| 103 | ||
| 104 | $rule = $this->get('swp.factory.rule')->create(); |
|
| 105 | $form = $this->createForm(RuleType::class, $rule); |
|
| 106 | $form->handleRequest($request); |
|
| 107 | ||
| 108 | if ($form->isValid()) { |
|
| 109 | $ruleRepository->add($rule); |
|
| 110 | ||
| 111 | return new SingleResourceResponse($rule, new ResponseContext(201)); |
|
| 112 | } |
|
| 113 | ||
| 114 | return new SingleResourceResponse($form, new ResponseContext(400)); |
|
| 115 | } |
|
| 116 | ||
| 117 | /** |
|
| 118 | * Delete single rule. |
|
| @@ 139-152 (lines=14) @@ | ||
| 136 | * @Route("/api/{version}/templates/widgets/", options={"expose"=true}, defaults={"version"="v1"}, name="swp_api_templates_create_widget") |
|
| 137 | * @Method("POST") |
|
| 138 | */ |
|
| 139 | public function createAction(Request $request) |
|
| 140 | { |
|
| 141 | $widget = new WidgetModel(); |
|
| 142 | $form = $this->createForm(WidgetType::class, $widget); |
|
| 143 | $form->handleRequest($request); |
|
| 144 | if ($form->isValid()) { |
|
| 145 | $this->ensureWidgetDontExists($widget->getName()); |
|
| 146 | $this->getWidgetRepository()->add($widget); |
|
| 147 | ||
| 148 | return new SingleResourceResponse($widget, new ResponseContext(201)); |
|
| 149 | } |
|
| 150 | ||
| 151 | return new SingleResourceResponse($form, new ResponseContext(400)); |
|
| 152 | } |
|
| 153 | ||
| 154 | /** |
|
| 155 | * Delete single widget. |
|
| @@ 104-121 (lines=18) @@ | ||
| 101 | * |
|
| 102 | * @return SingleResourceResponse |
|
| 103 | */ |
|
| 104 | public function updateAction(Request $request, PublishDestinationInterface $publishDestination) |
|
| 105 | { |
|
| 106 | $objectManager = $this->get('swp.object_manager.publish_destination'); |
|
| 107 | ||
| 108 | $form = $this->createForm(PublishDestinationType::class, $publishDestination, [ |
|
| 109 | 'method' => $request->getMethod(), |
|
| 110 | ]); |
|
| 111 | ||
| 112 | $form->handleRequest($request); |
|
| 113 | if ($form->isValid()) { |
|
| 114 | $objectManager->flush(); |
|
| 115 | $objectManager->refresh($publishDestination); |
|
| 116 | ||
| 117 | return new SingleResourceResponse($publishDestination); |
|
| 118 | } |
|
| 119 | ||
| 120 | return new SingleResourceResponse($form, new ResponseContext(400)); |
|
| 121 | } |
|
| 122 | } |
|
| 123 | ||