$response->getBody()->write(parseToJSONArray($contacts)); return $response; }); $app->post('/venues/{id}/contacts', function ($request, $response, $args) { $venueid = $request->getAttribute('id'); $parsedBody = $request->getParsedBody(); if ($parsedBody == null) { return err_general_error($response, "Provide a body to assign a contact to this venues"); } $contact = new Contact(); $contact->fromArray($parsedBody); $contact = ContactQuery::create()->findPK($contact->getId()); if ($contact == null) { return err_general_error($response, "Venue Id " . $id . " not found"); } $con = Propel::getWriteConnection('productionSource'); $sql = "INSERT INTO ContactAssignmentToVenue(VenueId, ContactId) VALUES(:venueid, :contactid)"; $stmt = $con->prepare($sql); $stmt->execute(array(':venueid' => $venueid, ':contactid' => $contact->getId())); return success($response, "Contact assigned to venue"); }); $app->delete('/venues/{venueid}/contacts/{contactid}', function ($request, $response, $args) { $venueid = $request->getAttribute('venueid'); $contactid = $request->getAttribute('contactid'); $assignment = ContactAssignmentToVenueQuery::create()->filterByContactId($contactid)->filterByVenueId($venueid); if ($assignment == null) { return err_general_error($response, "No assignment with Venue Id {$id} and Contact Id {$contactid} found."); } $assignment->delete(); return success($response, "Assignment deleted"); });
$gigid = $request->getAttribute('gigid'); $assignment = ContactAssigmentToGigQuery::query()->filterByGigId($gigid)->filterByContactId($contactid); if ($assignment == null) { return err_general_error($response, "ContactAssignment with ContactId {$contactid} and GigId {$gigid} not found"); } $assignment->delete(); return success($response, "ContactAssignmentToGig deleted"); }); $app->get('/contacts/{id}/venues', function ($request, $response, $args) { $id = $request->getAttribute('id'); $con = Propel::getWriteConnection('productionSource'); $sql = "SELECT * FROM Venue WHERE id IN " . "(SELECT ContactAssignmentToVenue.VenueId FROM ContactAssignmentToVenue" . " WHERE ContactAssignmentToVenue.ContactId = :contactid)"; $stmt = $con->prepare($sql); $stmt->execute(array('contactid' => $id)); $formatter = new ObjectFormatter(); $formatter->setClass('\\Venue'); //full qualified class name $venues = $formatter->format($con->getDataFetcher($stmt)); $response->getBody()->write(parseToJSONArray($venues)); return $response; }); $app->delete('/contacts/{contactid}/venues/{venuesid}', function ($request, $response, $args) { $contactid = $request->getAttribute('contactid'); $venueid = $request->getAttribute('venueid'); $assignment = ContactAssigmentToVenueQuery::query()->filterByVenueId($venueid)->filterByContactId($contactid); if ($assignment == null) { return err_general_error($response, "ContactAssignment with ContactId {$contactid} and VenueId {$venueid} not found"); } $assignment->delete(); return success($response, "ContactAssignmentToVenue deleted"); });
$id = $request->getAttribute('id'); $account = AccountQuery::create()->findPK($id); if ($account == null) { return err_general_error($response, "Account Id {$id} not found"); } /* Hide password and salt */ $account->setPassword("hidden"); $account->setSalt("hidden"); $response->getBody()->write($account->toJSON()); return $response; }); $app->put('/account/{id}', function ($request, $response, $args) { $id = $request->getAttribute('id'); $parsedBody = $request->getParsedBody(); if ($parsedBody == null) { return err_general_error($response, "Provide a body to update your account"); } $account = AccountQuery::create()->findPK($id); if ($account == null) { return err_general_error($response, "Account Id " . $id . " not found"); } $account->fromArray($parsedBody); if ($account->validate()) { $account->save(); } else { return err_general_error($response, "Validation failed"); } /* response with the saves account */ $response->getBody()->write($account->toJSON()); return $response; });