| @@ 13-212 (lines=200) @@ | ||
| 10 | use Symfony\Component\HttpFoundation\Request; |
|
| 11 | ||
| 12 | ||
| 13 | class CampagneController extends StructureController |
|
| 14 | { |
|
| 15 | /** |
|
| 16 | * @ApiDoc( |
|
| 17 | * resource=true, |
|
| 18 | * description="Liste les campagnes.", |
|
| 19 | * section="Campagne", |
|
| 20 | * parameters={ |
|
| 21 | * { |
|
| 22 | * "name"="offset", |
|
| 23 | * "dataType"="integer", |
|
| 24 | * "requirement"="\d+", |
|
| 25 | * "description"="starkerxp_structure.doc.offset.result", |
|
| 26 | * "required"="false" |
|
| 27 | * }, |
|
| 28 | * { |
|
| 29 | * "name"="limit", |
|
| 30 | * "dataType"="integer", |
|
| 31 | * "requirement"="\d+", |
|
| 32 | * "description"="starkerxp_structure.doc.limit.result", |
|
| 33 | * "required"="false" |
|
| 34 | * }, |
|
| 35 | * { |
|
| 36 | * "name"="fields", |
|
| 37 | * "dataType"="string", |
|
| 38 | * "requirement"="\w+", |
|
| 39 | * "description"="starkerxp_structure.doc.list_field.entity", |
|
| 40 | * "required"="false" |
|
| 41 | * }, |
|
| 42 | * { |
|
| 43 | * "name"="sort", |
|
| 44 | * "dataType"="string", |
|
| 45 | * "requirement"="\w+", |
|
| 46 | * "description"="starkerxp_structure.doc.sort.result", |
|
| 47 | * "required"="false" |
|
| 48 | * } |
|
| 49 | * } |
|
| 50 | * ) |
|
| 51 | */ |
|
| 52 | public function cgetAction(Request $request) |
|
| 53 | { |
|
| 54 | $manager = $this->get("starkerxp_campagne.manager.campagne"); |
|
| 55 | try { |
|
| 56 | $options = $this->resolveParams()->resolve($request->query->all()); |
|
| 57 | $orderBy = $this->getOrderBy($options['sort']); |
|
| 58 | $resultSets = $manager->findBy([], $orderBy, $options['limit'], $options['offset']); |
|
| 59 | } catch (\Exception $e) { |
|
| 60 | return new JsonResponse(["payload" => $e->getMessage()], 400); |
|
| 61 | } |
|
| 62 | if (empty($resultSets)) { |
|
| 63 | return new JsonResponse([]); |
|
| 64 | } |
|
| 65 | $retour = array_map( |
|
| 66 | function ($element) use ($manager, $options) { |
|
| 67 | return $manager->toArray($element, $this->getFields($options['fields'])); |
|
| 68 | }, |
|
| 69 | $resultSets |
|
| 70 | ); |
|
| 71 | return new JsonResponse($retour); |
|
| 72 | } |
|
| 73 | ||
| 74 | /** |
|
| 75 | * @ApiDoc( |
|
| 76 | * resource=true, |
|
| 77 | * description="Affiche une campagne.", |
|
| 78 | * section="Campagne", |
|
| 79 | * requirements={ |
|
| 80 | * { |
|
| 81 | * "name"="campagne_id", |
|
| 82 | * "dataType"="integer", |
|
| 83 | * "requirement"="\d+", |
|
| 84 | * "description"="Permet d'afficher l'élément choisis" |
|
| 85 | * } |
|
| 86 | * }, |
|
| 87 | * parameters={ |
|
| 88 | * { |
|
| 89 | * "name"="fields", |
|
| 90 | * "dataType"="string", |
|
| 91 | * "requirement"="\w+", |
|
| 92 | * "description"="starkerxp_structure.doc.list_field.entity", |
|
| 93 | * "required"="false" |
|
| 94 | * } |
|
| 95 | * } |
|
| 96 | * ) |
|
| 97 | */ |
|
| 98 | public function getAction(Request $request) |
|
| 99 | { |
|
| 100 | $manager = $this->get("starkerxp_campagne.manager.campagne"); |
|
| 101 | try { |
|
| 102 | $options = $this->resolveParams()->resolve($request->query->all()); |
|
| 103 | $campagne = $manager->findOneBy(['id' => $request->get('campagne_id')]); |
|
| 104 | } catch (\Exception $e) { |
|
| 105 | return new JsonResponse(["payload" => $e->getMessage()], 400); |
|
| 106 | } |
|
| 107 | if (!$campagne instanceof Campagne) { |
|
| 108 | return new JsonResponse(["payload" => $this->translate("campagne.entity.not_found", "campagne")], 404); |
|
| 109 | } |
|
| 110 | $retour = $manager->toArray($campagne, $this->getFields($options['fields'])); |
|
| 111 | ||
| 112 | return new JsonResponse($retour); |
|
| 113 | } |
|
| 114 | ||
| 115 | /** |
|
| 116 | * @ApiDoc( |
|
| 117 | * resource=true, |
|
| 118 | * description="Ajoute une campagne.", |
|
| 119 | * section="Campagne" |
|
| 120 | * ) |
|
| 121 | */ |
|
| 122 | public function postAction(Request $request) |
|
| 123 | { |
|
| 124 | $manager = $this->get("starkerxp_campagne.manager.campagne"); |
|
| 125 | try { |
|
| 126 | $campagne = new Campagne(); |
|
| 127 | $form = $this->createForm(CampagneType::class, $campagne, ['method' => 'POST']); |
|
| 128 | $form->submit($this->getRequestData($request)); |
|
| 129 | if ($form->isValid()) { |
|
| 130 | $campagne = $form->getData(); |
|
| 131 | $campagne->setUuid($this->getUuid()); |
|
| 132 | $manager->insert($campagne); |
|
| 133 | return new JsonResponse(["payload" => $this->translate("campagne.entity.created", "campagne")], 201); |
|
| 134 | } |
|
| 135 | } catch (\Exception $e) { |
|
| 136 | $manager->rollback(); |
|
| 137 | return new JsonResponse(["payload" => $e->getMessage()], 400); |
|
| 138 | } |
|
| 139 | ||
| 140 | return new JsonResponse(["payload" => $this->getFormErrors($form)], 400); |
|
| 141 | } |
|
| 142 | ||
| 143 | /** |
|
| 144 | * @ApiDoc( |
|
| 145 | * resource=true, |
|
| 146 | * description="Modifie une campagne.", |
|
| 147 | * section="Campagne", |
|
| 148 | * requirements={ |
|
| 149 | * { |
|
| 150 | * "name"="campagne_id", |
|
| 151 | * "dataType"="integer", |
|
| 152 | * "requirement"="\d+", |
|
| 153 | * "description"="Permet de modifier l'élément choisi." |
|
| 154 | * } |
|
| 155 | * } |
|
| 156 | * ) |
|
| 157 | */ |
|
| 158 | public function putAction(Request $request) |
|
| 159 | { |
|
| 160 | $manager = $this->get("starkerxp_campagne.manager.campagne"); |
|
| 161 | $campagne = $manager->find($request->get('campagne_id')); |
|
| 162 | if (!$campagne instanceof Campagne) { |
|
| 163 | return new JsonResponse(["payload" => $this->translate("campagne.entity.not_found", "campagne")], 404); |
|
| 164 | } |
|
| 165 | $manager->beginTransaction(); |
|
| 166 | try { |
|
| 167 | $form = $this->createForm(CampagneType::class, $campagne, ['method' => 'PUT']); |
|
| 168 | $form->submit($this->getRequestData($request)); |
|
| 169 | if ($form->isValid()) { |
|
| 170 | $campagne = $form->getData(); |
|
| 171 | $manager->update($campagne); |
|
| 172 | return new JsonResponse(["payload" => $this->translate("campagne.entity.updated", "campagne")], 204); |
|
| 173 | } |
|
| 174 | } catch (\Exception $e) { |
|
| 175 | $manager->rollback(); |
|
| 176 | return new JsonResponse(["payload" => $e->getMessage()], 400); |
|
| 177 | } |
|
| 178 | return new JsonResponse(["payload" => $this->getFormErrors($form)], 400); |
|
| 179 | } |
|
| 180 | ||
| 181 | /** |
|
| 182 | * @ApiDoc( |
|
| 183 | * resource=true, |
|
| 184 | * description="Supprime une campagne.", |
|
| 185 | * section="Campagne", |
|
| 186 | * requirements={ |
|
| 187 | * { |
|
| 188 | * "name"="campagne_id", |
|
| 189 | * "dataType"="integer", |
|
| 190 | * "requirement"="\d+", |
|
| 191 | * "description"="Permet de supprimer l'élément choisi." |
|
| 192 | * } |
|
| 193 | * } |
|
| 194 | * ) |
|
| 195 | */ |
|
| 196 | public function deleteAction(Request $request) |
|
| 197 | { |
|
| 198 | $manager = $this->get("starkerxp_campagne.manager.campagne"); |
|
| 199 | $campagne = $manager->find($request->get('campagne_id')); |
|
| 200 | if (!$campagne instanceof Campagne) { |
|
| 201 | return new JsonResponse(["payload" => $this->translate("campagne.entity.not_found", "campagne")], 404); |
|
| 202 | } |
|
| 203 | try { |
|
| 204 | $manager->delete($campagne); |
|
| 205 | } catch (\Exception $e) { |
|
| 206 | $manager->rollback(); |
|
| 207 | return new JsonResponse(["payload" => $e->getMessage()], 400); |
|
| 208 | } |
|
| 209 | return new JsonResponse(["payload" => $this->translate("campagne.entity.deleted", "campagne")], 204); |
|
| 210 | } |
|
| 211 | ||
| 212 | } |
|
| 213 | ||
| @@ 13-231 (lines=219) @@ | ||
| 10 | use Symfony\Component\HttpFoundation\Request; |
|
| 11 | ||
| 12 | ||
| 13 | class EventController extends StructureController |
|
| 14 | { |
|
| 15 | /** |
|
| 16 | * @ApiDoc( |
|
| 17 | * resource=true, |
|
| 18 | * description="Liste les events.", |
|
| 19 | * section="Campagne", |
|
| 20 | * parameters={ |
|
| 21 | * { |
|
| 22 | * "name"="offset", |
|
| 23 | * "dataType"="integer", |
|
| 24 | * "requirement"="\d+", |
|
| 25 | * "description"="starkerxp_structure.doc.offset.result", |
|
| 26 | * "required"="false" |
|
| 27 | * }, |
|
| 28 | * { |
|
| 29 | * "name"="limit", |
|
| 30 | * "dataType"="integer", |
|
| 31 | * "requirement"="\d+", |
|
| 32 | * "description"="starkerxp_structure.doc.limit.result", |
|
| 33 | * "required"="false" |
|
| 34 | * }, |
|
| 35 | * { |
|
| 36 | * "name"="fields", |
|
| 37 | * "dataType"="string", |
|
| 38 | * "requirement"="\w+", |
|
| 39 | * "description"="starkerxp_structure.doc.list_field.entity", |
|
| 40 | * "required"="false" |
|
| 41 | * }, |
|
| 42 | * { |
|
| 43 | * "name"="sort", |
|
| 44 | * "dataType"="string", |
|
| 45 | * "requirement"="\w+", |
|
| 46 | * "description"="starkerxp_structure.doc.sort.result", |
|
| 47 | * "required"="false" |
|
| 48 | * } |
|
| 49 | * } |
|
| 50 | * ) |
|
| 51 | */ |
|
| 52 | public function cgetAction(Request $request) |
|
| 53 | { |
|
| 54 | $manager = $this->get("starkerxp_campagne.manager.event"); |
|
| 55 | try { |
|
| 56 | $options = $this->resolveParams()->resolve($request->query->all()); |
|
| 57 | $orderBy = $this->getOrderBy($options['sort']); |
|
| 58 | $resultSets = $manager->findBy([], $orderBy, $options['limit'], $options['offset']); |
|
| 59 | } catch (\Exception $e) { |
|
| 60 | return new JsonResponse(["payload" => $e->getMessage()], 400); |
|
| 61 | } |
|
| 62 | if (empty($resultSets)) { |
|
| 63 | return new JsonResponse([]); |
|
| 64 | } |
|
| 65 | $retour = array_map( |
|
| 66 | function ($element) use ($manager, $options) { |
|
| 67 | return $manager->toArray($element, $this->getFields($options['fields'])); |
|
| 68 | }, |
|
| 69 | $resultSets |
|
| 70 | ); |
|
| 71 | return new JsonResponse($retour); |
|
| 72 | } |
|
| 73 | ||
| 74 | ||
| 75 | /** |
|
| 76 | * @ApiDoc( |
|
| 77 | * resource=true, |
|
| 78 | * description="Affiche un event.", |
|
| 79 | * section="Campagne", |
|
| 80 | * requirements={ |
|
| 81 | * { |
|
| 82 | * "name"="campagne_id", |
|
| 83 | * "dataType"="integer", |
|
| 84 | * "requirement"="\d+", |
|
| 85 | * "description"="Permet d'afficher l'élément choisis" |
|
| 86 | * }, |
|
| 87 | * { |
|
| 88 | * "name"="event_id", |
|
| 89 | * "dataType"="integer", |
|
| 90 | * "requirement"="\d+", |
|
| 91 | * "description"="Permet d'afficher l'élément choisis" |
|
| 92 | * } |
|
| 93 | * }, |
|
| 94 | * parameters={ |
|
| 95 | * { |
|
| 96 | * "name"="fields", |
|
| 97 | * "dataType"="string", |
|
| 98 | * "requirement"="\w+", |
|
| 99 | * "description"="starkerxp_structure.doc.list_field.entity", |
|
| 100 | * "required"="false" |
|
| 101 | * } |
|
| 102 | * } |
|
| 103 | * ) |
|
| 104 | */ |
|
| 105 | public function getAction(Request $request) |
|
| 106 | { |
|
| 107 | $manager = $this->get("starkerxp_campagne.manager.event"); |
|
| 108 | try { |
|
| 109 | $options = $this->resolveParams()->resolve($request->query->all()); |
|
| 110 | $event = $manager->findOneBy(['id' => $request->get('id')]); |
|
| 111 | } catch (\Exception $e) { |
|
| 112 | return new JsonResponse(["payload" => $e->getMessage()], 400); |
|
| 113 | } |
|
| 114 | if (!$event instanceof Event) { |
|
| 115 | return new JsonResponse(["payload" => $this->translate("event.entity.not_found", "event")], 404); |
|
| 116 | } |
|
| 117 | $retour = $manager->toArray($event, $this->getFields($options['fields'])); |
|
| 118 | ||
| 119 | return new JsonResponse($retour); |
|
| 120 | } |
|
| 121 | ||
| 122 | /** |
|
| 123 | * @ApiDoc( |
|
| 124 | * resource=true, |
|
| 125 | * description="Ajoute un event.", |
|
| 126 | * section="Campagne" |
|
| 127 | * ) |
|
| 128 | */ |
|
| 129 | public function postAction(Request $request) |
|
| 130 | { |
|
| 131 | $manager = $this->get("starkerxp_campagne.manager.event"); |
|
| 132 | try { |
|
| 133 | $event = new Event(); |
|
| 134 | $form = $this->createForm(EventType::class, $event, ['method' => 'POST']); |
|
| 135 | $form->submit($this->getRequestData($request)); |
|
| 136 | if ($form->isValid()) { |
|
| 137 | $event = $form->getData(); |
|
| 138 | $event->setUuid($this->getUuid()); |
|
| 139 | $manager->insert($event); |
|
| 140 | return new JsonResponse(["payload" => $this->translate("event.entity.created", "event")], 201); |
|
| 141 | } |
|
| 142 | } catch (\Exception $e) { |
|
| 143 | $manager->rollback(); |
|
| 144 | return new JsonResponse(["payload" => $e->getMessage()], 400); |
|
| 145 | } |
|
| 146 | ||
| 147 | return new JsonResponse(["payload" => $this->getFormErrors($form)], 400); |
|
| 148 | } |
|
| 149 | ||
| 150 | /** |
|
| 151 | * @ApiDoc( |
|
| 152 | * resource=true, |
|
| 153 | * description="Modifie un event.", |
|
| 154 | * section="Campagne", |
|
| 155 | * requirements={ |
|
| 156 | * { |
|
| 157 | * "name"="campagne_id", |
|
| 158 | * "dataType"="integer", |
|
| 159 | * "requirement"="\d+", |
|
| 160 | * "description"="Permet de modifier un élément de la campagne" |
|
| 161 | * }, |
|
| 162 | * { |
|
| 163 | * "name"="event_id", |
|
| 164 | * "dataType"="integer", |
|
| 165 | * "requirement"="\d+", |
|
| 166 | * "description"="Permet de modifier l'élément choisis" |
|
| 167 | * } |
|
| 168 | * } |
|
| 169 | * ) |
|
| 170 | */ |
|
| 171 | public function putAction(Request $request) |
|
| 172 | { |
|
| 173 | $manager = $this->get("starkerxp_campagne.manager.event"); |
|
| 174 | $event = $manager->find($request->get('id')); |
|
| 175 | if (!$event instanceof Event) { |
|
| 176 | return new JsonResponse(["payload" => $this->translate("event.entity.not_found", "event")], 404); |
|
| 177 | } |
|
| 178 | $manager->beginTransaction(); |
|
| 179 | try { |
|
| 180 | $form = $this->createForm(EventType::class, $event, ['method' => 'PUT']); |
|
| 181 | $form->submit($this->getRequestData($request)); |
|
| 182 | if ($form->isValid()) { |
|
| 183 | $event = $form->getData(); |
|
| 184 | $manager->update($event); |
|
| 185 | return new JsonResponse(["payload" => $this->translate("event.entity.updated", "event")], 204); |
|
| 186 | } |
|
| 187 | } catch (\Exception $e) { |
|
| 188 | $manager->rollback(); |
|
| 189 | return new JsonResponse(["payload" => $e->getMessage()], 400); |
|
| 190 | } |
|
| 191 | return new JsonResponse(["payload" => $this->getFormErrors($form)], 400); |
|
| 192 | } |
|
| 193 | ||
| 194 | /** |
|
| 195 | * @ApiDoc( |
|
| 196 | * resource=true, |
|
| 197 | * description="Supprime un event.", |
|
| 198 | * section="Campagne", |
|
| 199 | * requirements={ |
|
| 200 | * { |
|
| 201 | * "name"="campagne_id", |
|
| 202 | * "dataType"="integer", |
|
| 203 | * "requirement"="\d+", |
|
| 204 | * "description"="Permet de supprimer un élément de la campagne" |
|
| 205 | * }, |
|
| 206 | * { |
|
| 207 | * "name"="event_id", |
|
| 208 | * "dataType"="integer", |
|
| 209 | * "requirement"="\d+", |
|
| 210 | * "description"="Permet de supprimer l'élément choisis" |
|
| 211 | * } |
|
| 212 | * } |
|
| 213 | * ) |
|
| 214 | */ |
|
| 215 | public function deleteAction(Request $request) |
|
| 216 | { |
|
| 217 | $manager = $this->get("starkerxp_campagne.manager.event"); |
|
| 218 | $event = $manager->find($request->get('id')); |
|
| 219 | if (!$event instanceof Event) { |
|
| 220 | return new JsonResponse(["payload" => $this->translate("event.entity.not_found", "event")], 404); |
|
| 221 | } |
|
| 222 | try { |
|
| 223 | $manager->delete($event); |
|
| 224 | } catch (\Exception $e) { |
|
| 225 | $manager->rollback(); |
|
| 226 | return new JsonResponse(["payload" => $e->getMessage()], 400); |
|
| 227 | } |
|
| 228 | return new JsonResponse(["payload" => $this->translate("event.entity.deleted", "event")], 204); |
|
| 229 | } |
|
| 230 | ||
| 231 | } |
|
| 232 | ||
| @@ 13-224 (lines=212) @@ | ||
| 10 | use Symfony\Component\HttpFoundation\Request; |
|
| 11 | ||
| 12 | ||
| 13 | class TemplateController extends StructureController |
|
| 14 | { |
|
| 15 | ||
| 16 | /** |
|
| 17 | * @ApiDoc( |
|
| 18 | * resource=true, |
|
| 19 | * description="Liste les templates.", |
|
| 20 | * section="Campagne", |
|
| 21 | * parameters={ |
|
| 22 | * { |
|
| 23 | * "name"="offset", |
|
| 24 | * "dataType"="integer", |
|
| 25 | * "requirement"="\d+", |
|
| 26 | * "description"="starkerxp_structure.doc.offset.result", |
|
| 27 | * "required"="false" |
|
| 28 | * }, |
|
| 29 | * { |
|
| 30 | * "name"="limit", |
|
| 31 | * "dataType"="integer", |
|
| 32 | * "requirement"="\d+", |
|
| 33 | * "description"="starkerxp_structure.doc.limit.result", |
|
| 34 | * "required"="false" |
|
| 35 | * }, |
|
| 36 | * { |
|
| 37 | * "name"="fields", |
|
| 38 | * "dataType"="string", |
|
| 39 | * "requirement"="\w+", |
|
| 40 | * "description"="starkerxp_structure.doc.list_field.entity", |
|
| 41 | * "required"="false" |
|
| 42 | * }, |
|
| 43 | * { |
|
| 44 | * "name"="sort", |
|
| 45 | * "dataType"="string", |
|
| 46 | * "requirement"="\w+", |
|
| 47 | * "description"="starkerxp_structure.doc.sort.result", |
|
| 48 | * "required"="false" |
|
| 49 | * } |
|
| 50 | * } |
|
| 51 | * ) |
|
| 52 | */ |
|
| 53 | public function cgetAction(Request $request) |
|
| 54 | { |
|
| 55 | $manager = $this->get("starkerxp_campagne.manager.template"); |
|
| 56 | try { |
|
| 57 | $options = $this->resolveParams()->resolve($request->query->all()); |
|
| 58 | $orderBy = $this->getOrderBy($options['sort']); |
|
| 59 | $resultSets = $manager->findBy([], $orderBy, $options['limit'], $options['offset']); |
|
| 60 | } catch (\Exception $e) { |
|
| 61 | return new JsonResponse(["payload" => $e->getMessage()], 400); |
|
| 62 | } |
|
| 63 | if (empty($resultSets)) { |
|
| 64 | return new JsonResponse([]); |
|
| 65 | } |
|
| 66 | $retour = array_map( |
|
| 67 | function ($element) use ($manager, $options) { |
|
| 68 | return $manager->toArray($element, $this->getFields($options['fields'])); |
|
| 69 | }, |
|
| 70 | $resultSets |
|
| 71 | ); |
|
| 72 | ||
| 73 | return new JsonResponse($retour); |
|
| 74 | } |
|
| 75 | ||
| 76 | /** |
|
| 77 | * @ApiDoc( |
|
| 78 | * resource=true, |
|
| 79 | * description="Affiche un template.", |
|
| 80 | * section="Campagne", |
|
| 81 | * requirements={ |
|
| 82 | * { |
|
| 83 | * "name"="id", |
|
| 84 | * "dataType"="integer", |
|
| 85 | * "requirement"="\d+", |
|
| 86 | * "description"="Permet d'afficher l'élément choisis", |
|
| 87 | * "required"="true" |
|
| 88 | * } |
|
| 89 | * }, |
|
| 90 | * parameters={ |
|
| 91 | * { |
|
| 92 | * "name"="fields", |
|
| 93 | * "dataType"="string", |
|
| 94 | * "requirement"="\w+", |
|
| 95 | * "description"="starkerxp_structure.doc.list_field.entity", |
|
| 96 | * "required"="false" |
|
| 97 | * } |
|
| 98 | * } |
|
| 99 | * ) |
|
| 100 | */ |
|
| 101 | public function getAction(Request $request) |
|
| 102 | { |
|
| 103 | $manager = $this->get("starkerxp_campagne.manager.template"); |
|
| 104 | try { |
|
| 105 | $options = $this->resolveParams()->resolve($request->query->all()); |
|
| 106 | $template = $manager->findOneBy(['id' => $request->get('id')]); |
|
| 107 | } catch (\Exception $e) { |
|
| 108 | return new JsonResponse(["payload" => $e->getMessage()], 400); |
|
| 109 | } |
|
| 110 | if (!$template instanceof Template) { |
|
| 111 | return new JsonResponse(["payload" => $this->translate("template.entity.not_found", "template")], 404); |
|
| 112 | } |
|
| 113 | $retour = $manager->toArray($template, $this->getFields($options['fields'])); |
|
| 114 | ||
| 115 | return new JsonResponse($retour); |
|
| 116 | } |
|
| 117 | ||
| 118 | /** |
|
| 119 | * @ApiDoc( |
|
| 120 | * resource=true, |
|
| 121 | * description="Ajoute un template.", |
|
| 122 | * section="Campagne" |
|
| 123 | * ) |
|
| 124 | */ |
|
| 125 | public function postAction(Request $request) |
|
| 126 | { |
|
| 127 | $manager = $this->get("starkerxp_campagne.manager.template"); |
|
| 128 | try { |
|
| 129 | $template = new Template(); |
|
| 130 | $form = $this->createForm(TemplateType::class, $template, ['method' => 'POST']); |
|
| 131 | $form->submit($this->getRequestData($request)); |
|
| 132 | if ($form->isValid()) { |
|
| 133 | $template = $form->getData(); |
|
| 134 | $template->setUuid($this->getUuid()); |
|
| 135 | $manager->insert($template); |
|
| 136 | ||
| 137 | return new JsonResponse(["payload" => $this->translate("template.entity.created", "template")], 201); |
|
| 138 | } |
|
| 139 | } catch (\Exception $e) { |
|
| 140 | $manager->rollback(); |
|
| 141 | ||
| 142 | return new JsonResponse(["payload" => $e->getMessage()], 400); |
|
| 143 | } |
|
| 144 | ||
| 145 | return new JsonResponse(["payload" => $this->getFormErrors($form)], 400); |
|
| 146 | } |
|
| 147 | ||
| 148 | /** |
|
| 149 | * @ApiDoc( |
|
| 150 | * resource=true, |
|
| 151 | * description="Modifie un template.", |
|
| 152 | * section="Campagne", |
|
| 153 | * requirements={ |
|
| 154 | * { |
|
| 155 | * "name"="id", |
|
| 156 | * "dataType"="integer", |
|
| 157 | * "requirement"="\d+", |
|
| 158 | * "description"="Permet de modifier l'élément choisi.", |
|
| 159 | * "required"="true" |
|
| 160 | * } |
|
| 161 | * } |
|
| 162 | * ) |
|
| 163 | */ |
|
| 164 | public function putAction(Request $request) |
|
| 165 | { |
|
| 166 | $manager = $this->get("starkerxp_campagne.manager.template"); |
|
| 167 | $template = $manager->find($request->get('id')); |
|
| 168 | if (!$template instanceof Template) { |
|
| 169 | return new JsonResponse(["payload" => $this->translate("template.entity.not_found", "template")], 404); |
|
| 170 | } |
|
| 171 | $manager->beginTransaction(); |
|
| 172 | try { |
|
| 173 | $form = $this->createForm(TemplateType::class, $template, ['method' => 'PUT']); |
|
| 174 | $form->submit($this->getRequestData($request)); |
|
| 175 | if ($form->isValid()) { |
|
| 176 | $template = $form->getData(); |
|
| 177 | $manager->update($template); |
|
| 178 | ||
| 179 | return new JsonResponse(["payload" => $this->translate("template.entity.updated", "template")], 204); |
|
| 180 | } |
|
| 181 | } catch (\Exception $e) { |
|
| 182 | $manager->rollback(); |
|
| 183 | ||
| 184 | return new JsonResponse(["payload" => $e->getMessage()], 400); |
|
| 185 | } |
|
| 186 | ||
| 187 | return new JsonResponse(["payload" => $this->getFormErrors($form)], 400); |
|
| 188 | } |
|
| 189 | ||
| 190 | /** |
|
| 191 | * @ApiDoc( |
|
| 192 | * resource=true, |
|
| 193 | * description="Supprime un template.", |
|
| 194 | * section="Campagne", |
|
| 195 | * requirements={ |
|
| 196 | * { |
|
| 197 | * "name"="id", |
|
| 198 | * "dataType"="integer", |
|
| 199 | * "requirement"="\d+", |
|
| 200 | * "description"="Permet de supprimer l'élément choisi.", |
|
| 201 | * "required"="true" |
|
| 202 | * } |
|
| 203 | * } |
|
| 204 | * ) |
|
| 205 | */ |
|
| 206 | public function deleteAction(Request $request) |
|
| 207 | { |
|
| 208 | $manager = $this->get("starkerxp_campagne.manager.template"); |
|
| 209 | $template = $manager->find($request->get('id')); |
|
| 210 | if (!$template instanceof Template) { |
|
| 211 | return new JsonResponse(["payload" => $this->translate("template.entity.not_found", "template")], 404); |
|
| 212 | } |
|
| 213 | try { |
|
| 214 | $manager->delete($template); |
|
| 215 | } catch (\Exception $e) { |
|
| 216 | $manager->rollback(); |
|
| 217 | ||
| 218 | return new JsonResponse(["payload" => $e->getMessage()], 400); |
|
| 219 | } |
|
| 220 | ||
| 221 | return new JsonResponse(["payload" => $this->translate("template.entity.deleted", "template")], 204); |
|
| 222 | } |
|
| 223 | ||
| 224 | } |
|
| 225 | ||