static function sendPlayerInviteEmail($app)
 {
     $post = $app->request->post();
     if (!v::key('email', v::email())->validate($post)) {
         return $app->render(400, array('msg' => 'Invalid email. Check your parameters and try again.'));
     }
     $foundId = EmailData::selectUserIdByEmail($post['email']);
     if ($foundId) {
         return $app->render(400, array('msg' => 'This email is already registered to a player.'));
     }
     $token = self::makeInviteToken();
     $firstName = v::key('nameFirst', v::stringType())->validate($post) ? $post['nameFirst'] : NULL;
     $lastName = v::key('nameFirst', v::stringType())->validate($post) ? $post['nameFirst'] : NULL;
     $saved = EmailData::insertPlayerInvite(array(":token" => $token, ":name_first" => $firstName, ":name_last" => $lastName, ":email" => $post['email'], ":phone" => v::key('phone', v::stringType())->validate($post) ? $post['phone'] : NULL, ":created_user_id" => APIAuth::getUserId()));
     if (!$saved) {
         return $app->render(400, array('msg' => 'Could not create invite. Check your parameters and try again.'));
     }
     $isFirstSet = is_null($firstName) ? false : $firstName;
     $name = $isFirstSet === false || is_null($lastName) ? '' : "{$firstName} {$lastName}";
     $sent = ApiMailer::sendWebsiteSignupInvite($token, $post['email'], $name);
     if ($sent) {
         return $app->render(200, array('msg' => "Player invite sent to '{$post['email']}'."));
     } else {
         return $app->render(400, array('msg' => 'Could not send player invite.'));
     }
 }