public function addAction(Request $request, Application $app)
 {
     if (!$request->request->has('name')) {
         return $app->json('Missing required parameter: name', 400);
     }
     if (!$request->request->has('short_biography')) {
         return $app->json('Missing required parameter: short_biography', 400);
     }
     $user = new User();
     $user->setName($request->request->get('name'));
     $user->setShortBiography($request->request->get('short_biography'));
     $user->setBiography($request->request->get('biography'));
     $user->setSoundCloudUrl($request->request->get('soundcloud_url'));
     $app['repository.user']->save($user);
     $headers = array('Location' => '/api/user/' . $user->getId());
     return $app->json('Created', 201, $headers);
 }
 /**
  * Instantiates a user entity and sets its properties using db data.
  *
  * @param array $userData
  *   The array of db data.
  *
  * @return \Swim\Entity\User
  */
 protected function buildUser($userData)
 {
     $address = $this->addressRepository->findByUser($userData['user_id']);
     $user = new User();
     $user->setUserId($userData['user_id']);
     $user->setUsername($userData['username']);
     $user->setSalt($userData['salt']);
     $user->setPassword($userData['password']);
     $user->setRole($userData['role']);
     $user->setFirstName($userData['firstname']);
     $user->setLastName($userData['lastname']);
     $user->setSpouseFirstName($userData['spouse_firstname']);
     $user->setSpouseLastName($userData['spouse_lastname']);
     $user->setMobile($userData['mobile']);
     $user->setHome($userData['home']);
     $user->setEmail($userData['email']);
     $user->setAddress($address);
     $createdAt = new \DateTime('@' . $userData['created_at']);
     $user->setCreatedAt($createdAt);
     return $user;
 }