/** * Add contact. * * @param Contact $contact * * @return Client */ public function addContact(Contact $contact) { $this->contacts[] = $contact; $contact->setClient($this); return $this; }
/** * Renders a contact card. * * @param Request $request * @param Contact $contact * * @return \Symfony\Component\HttpFoundation\Response */ public function contactAction(Request $request, Contact $contact) { if ($request->isMethod('DELETE')) { $client = $contact->getClient(); if (count($client->getContacts()) === 1) { return $this->json(['message' => $this->trans('client.contact.at_least_1')], 500); } $entityManager = $this->getEm(); $entityManager->remove($contact); $entityManager->flush(); return $this->json([]); } return $this->serializeResponse($contact); }
/** * @ApiDoc( * statusCodes={ * 200="Returned when successful", * 400="Returned when the validation fails", * 403="Returned when the user is not authorized", * }, * resource=true, * description="Update a contact", * input="CSBill\ClientBundle\Form\Contact", * output={ * "class"="CSBill\ClientBundle\Entity\Contact", * "groups"={"api"} * }, * authentication=true, * ) * * @param Request $request * @param Entity\Client $client * @param Entity\Contact $contact * * @ParamConverter("client", class="CSBillClientBundle:Client", options={"id" : "clientId"}) * @ParamConverter("contact", class="CSBillClientBundle:Contact", options={"id" : "contactId"}) * * @Rest\Patch(path="/client/{clientId}/contact/{contactId}") * * @return Response */ public function updateContactAction(Request $request, Entity\Client $client, Entity\Contact $contact) { $contact->setClient($client); return $this->manageForm($request, 'contact', $contact); }
/** * Deletes a contact. * * @param Contact $contact * * @return \Symfony\Component\HttpFoundation\JsonResponse */ public function deletecontactAction(Contact $contact) { $client = $contact->getClient(); if (count($client->getContacts()) === 1) { return $this->json(['message' => $this->trans('client.contact.at_least_1')], 500); } $entityMnager = $this->getEm(); $entityMnager->remove($contact); $entityMnager->flush(); return $this->json(array('status' => 'success')); }