/**
  * Returns a new UserQuery object.
  *
  * @param     string $modelAlias The alias of a model in the query
  * @param   UserQuery|Criteria $criteria Optional Criteria to build the query from
  *
  * @return UserQuery
  */
 public static function create($modelAlias = null, $criteria = null)
 {
     if ($criteria instanceof UserQuery) {
         return $criteria;
     }
     $query = new UserQuery(null, null, $modelAlias);
     if ($criteria instanceof Criteria) {
         $query->mergeWith($criteria);
     }
     return $query;
 }
 /**
  * @param \JesseMaxwell\PrayerBundle\Model\PrayerRequest $prayerRequest
  */
 public function verifyPrayerRequestRelationship(PrayerRequest $prayerRequest)
 {
     $user = UserQuery::create()->findOneByUsername($this->username);
     if ($prayerRequest && $user->getId() !== $prayerRequest->getUserId()) {
         throw new HttpException(403, 'You are not allowed to access that prayer request.');
     }
 }
 public function validate($value, Constraint $context)
 {
     $userId = UserQuery::create()->findIdByUsername($this->username);
     $matchFound = PrayerRequestQuery::create()->findIfUserHasRequest($value, $userId);
     if ($matchFound) {
         throw new HttpException(409, "You already have a prayer request titled that.");
     }
 }
 /**
  * @ApiDoc(
  *      section="Request",
  *      description="Returns a list of all a users requests",
  *      requirements={
  *          {
  *              "name"="username",
  *              "dataType"="integer",
  *              "requirement"="\d+",
  *              "description"="Provided username to verify authenticity of the request."
  *          }
  *      },
  *      statusCodes={
  *          200="Returned when successful",
  *          401="Returned when your username is not valid.",
  *          404="Returned when no prayer prayer requests are associated with that user"
  *      },
  * )
  *
  * @Rest\View()
  * @Route("/request/all", name="_get_all_requests")
  * @Method("GET")
  */
 public function getAllRequestsAction()
 {
     $userId = UserQuery::create()->findOneByUsername($this->get('request')->attributes->get('username'))->getId();
     $prayerRequests = PrayerRequestQuery::create()->select(array('Id', 'Title', 'Description', 'Date', 'Answered'))->filterBy('UserId', $userId)->find();
     if (!$prayerRequests) {
         throw new NotFoundHttpException("No prayer requests found.");
     }
     return array('prayer_requests' => $prayerRequests->toArray());
 }
 /**
  * @ApiDoc(
  *      section="Request",
  *      description="Returns a list of all a users requests",
  *      requirements={
  *          {
  *              "name"="username",
  *              "dataType"="integer",
  *              "requirement"="\d+",
  *              "description"="Provided username to verify authenticity of the request."
  *          }
  *      },
  *      statusCodes={
  *          200="Returned when successful",
  *          404="Returned when no prayer prayer requests are associated with that user"
  *      },
  * )
  *
  * @Rest\View()
  * @Route("/request/all", name="_get_all_requests")
  * @Method("GET")
  */
 public function getAllRequestsAction()
 {
     $userId = UserQuery::create()->findOneByUsername($this->get('request')->attributes->get('username'))->getId();
     $prayerRequests = PrayerRequestQuery::create()->findByUserId($userId);
     if (!$prayerRequests) {
         throw new NotFoundHttpException("No prayer requests found.");
     }
     return array('prayer_requests' => $prayerRequests->toArray());
 }
 public function onKernelController(FilterControllerEvent $event)
 {
     $currentUser = $event->getRequest()->attributes->get('username');
     $authUser = UserQuery::create()->findOneByUsername($currentUser);
     if (!$authUser && $currentUser) {
         throw new HttpException(401, "I'm sorry, but you are not authorized to access the system.");
     }
     if ($currentUser && !$authUser->getEnabled()) {
         throw new HttpException(403, "I'm sorry, but your account has been disabled. Please contact an administrator and request that they enable your account");
     }
 }
 /**
  * Removes this object from datastore and sets delete attribute.
  *
  * @param PropelPDO $con
  * @return void
  * @throws PropelException
  * @throws Exception
  * @see        BaseObject::setDeleted()
  * @see        BaseObject::isDeleted()
  */
 public function delete(PropelPDO $con = null)
 {
     if ($this->isDeleted()) {
         throw new PropelException("This object has already been deleted.");
     }
     if ($con === null) {
         $con = Propel::getConnection(UserPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
     }
     $con->beginTransaction();
     try {
         $deleteQuery = UserQuery::create()->filterByPrimaryKey($this->getPrimaryKey());
         $ret = $this->preDelete($con);
         if ($ret) {
             $deleteQuery->delete($con);
             $this->postDelete($con);
             $con->commit();
             $this->setDeleted(true);
         } else {
             $con->commit();
         }
     } catch (Exception $e) {
         $con->rollBack();
         throw $e;
     }
 }
 /**
  * @param \JesseMaxwell\PrayerBundle\Model\PrayerRequest $prayerRequest
  *
  * @return \FOS\RestBundle\View\View|\Symfony\Component\HttpFoundation\Response
  * @throws \Exception
  * @throws \PropelException
  */
 private function processRequest(PrayerRequest $prayerRequest)
 {
     $username = $this->get('request')->get('username');
     $userId = UserQuery::create()->findIdByUsername($username);
     $statusCode = $prayerRequest->isNew() ? 201 : 204;
     $headers = array();
     $prayerRequest->setUserId($userId);
     $prayerRequest = $this->setProvidedFields($prayerRequest);
     $errors = $this->get('validator')->validate($prayerRequest);
     if (count($errors) > 0) {
         return $this->view(array('errors' => $this->getErrorList($errors)), 400);
     }
     $prayerRequest->save();
     $content = array('id' => $prayerRequest->getId());
     if ($statusCode === 201) {
         $headers = array('Location' => $this->generateUrl("_get_request", array('username' => $username, 'id' => $prayerRequest->getId()), true));
     }
     return $this->view($content, $statusCode, $headers);
 }
 /**
  * @param \JesseMaxwell\PrayerBundle\Model\PrayerRequest $prayerRequest
  *
  * @return \FOS\RestBundle\View\View|\Symfony\Component\HttpFoundation\Response
  * @throws \Exception
  * @throws \PropelException
  */
 private function processForm(PrayerRequest $prayerRequest)
 {
     $request = $this->get('request');
     $userId = UserQuery::create()->findIdByUsername($request->get('username'));
     $statusCode = $prayerRequest->isNew() ? 201 : 204;
     $headers = null;
     $form = $this->createForm(new PrayerRequestType(), $prayerRequest, array('method' => 'PUT'));
     $form->handleRequest($request);
     $prayerRequest->setUserId($userId);
     if ($form->isValid()) {
         $prayerRequest->save();
         $content = array('id' => $prayerRequest->getId());
         if ($statusCode === 201) {
             $headers = array('Location' => $this->generateUrl("_get_request", array('username' => $request->get('username'), 'id' => $prayerRequest->getId()), true));
         }
         return $this->view($content, $statusCode, $headers);
     }
     return View::create($form, 400);
 }