예제 #1
0
 /**
  * Creates a scoreboard in a group
  * 
  * @param array $groupData
  * @param type $name
  * @param type $description
  * @param type $alias
  */
 public static function createGroupScoreboard(array $groupData, $name = null, $description = null, $alias = null)
 {
     if (is_null($name)) {
         $name = Utils::CreateRandomString();
     }
     if (is_null($description)) {
         $description = Utils::CreateRandomString();
     }
     if (is_null($alias)) {
         $alias = Utils::CreateRandomString();
     }
     $request = new Request(array("auth_token" => OmegaupTestCase::login($groupData["owner"]), "group_alias" => $groupData["group"]->alias, "name" => $name, "alias" => $alias, "description" => $description));
     $response = GroupController::apiCreateScoreboard($request);
     $scoreboards = GroupsScoreboardsDAO::search(new GroupsScoreboards(array("alias" => $alias)));
     return array("request" => $request, "response" => $response, "scoreboard" => $scoreboards[0]);
 }
예제 #2
0
 /**
  * Creates a scoreboard in a group
  *
  * @param array $groupData
  * @param type $name
  * @param type $description
  * @param type $alias
  */
 public static function createGroupScoreboard(array $groupData, $name = null, $description = null, $alias = null)
 {
     if (is_null($name)) {
         $name = Utils::CreateRandomString();
     }
     if (is_null($description)) {
         $description = Utils::CreateRandomString();
     }
     if (is_null($alias)) {
         $alias = Utils::CreateRandomString();
     }
     $request = new Request(array('auth_token' => OmegaupTestCase::login($groupData['owner']), 'group_alias' => $groupData['group']->alias, 'name' => $name, 'alias' => $alias, 'description' => $description));
     $response = GroupController::apiCreateScoreboard($request);
     $scoreboards = GroupsScoreboardsDAO::search(new GroupsScoreboards(array('alias' => $alias)));
     return array('request' => $request, 'response' => $response, 'scoreboard' => $scoreboards[0]);
 }
예제 #3
0
 /**
  * Details of a scoreboard
  * 
  * @param Request $r
  */
 public static function apiList(Request $r)
 {
     GroupController::validateGroup($r);
     $response = array();
     $response["scoreboards"] = array();
     try {
         $key = new GroupsScoreboards(array("group_id" => $r["group"]->group_id));
         $scoreboards = GroupsScoreboardsDAO::search($key);
         foreach ($scoreboards as $scoreboard) {
             $response["scoreboards"][] = $scoreboard->asArray();
         }
     } catch (Exception $ex) {
         throw new InvalidDatabaseOperationException($ex);
     }
     $response["status"] = "ok";
     return $response;
 }
예제 #4
0
 /**
  * Test add a scoreboard
  */
 public function testCreateScoreboard()
 {
     $groupData = GroupsFactory::createGroup();
     $name = Utils::CreateRandomString();
     $description = Utils::CreateRandomString();
     $alias = Utils::CreateRandomString();
     $response = GroupController::apiCreateScoreboard(new Request(array('auth_token' => self::login($groupData['owner']), 'group_alias' => $groupData['group']->alias, 'name' => $name, 'alias' => $alias, 'description' => $description)));
     $this->assertEquals('ok', $response['status']);
     $groupScoreboards = GroupsScoreboardsDAO::search(new GroupsScoreboards(array('alias' => $alias)));
     $groupScoreboard = $groupScoreboards[0];
     $this->assertNotNull($groupScoreboard);
     $this->assertEquals($description, $groupScoreboard->getDescription());
     $this->assertEquals($groupData['group']->group_id, $groupScoreboard->getGroupId());
 }
예제 #5
0
 /**
  * Details of a group (users in a group)
  * 
  * @param Request $r
  */
 public static function apiDetails(Request $r)
 {
     self::validateGroupAndOwner($r);
     $response = array();
     $response["group"] = array();
     $response["users"] = array();
     $response["scoreboards"] = array();
     try {
         $response["group"] = $r["group"]->asArray();
         $userGroups = GroupsUsersDAO::search(new GroupsUsers(array("group_id" => $r["group"]->group_id)));
         foreach ($userGroups as $userGroup) {
             $r["user"] = UsersDAO::getByPK($userGroup->user_id);
             $userProfile = UserController::getProfile($r);
             $response["users"][] = $userProfile;
         }
         $scoreboards = GroupsScoreboardsDAO::search(new GroupsScoreboards(array("group_id" => $r["group"]->group_id)));
         foreach ($scoreboards as $scoreboard) {
             $response["scoreboards"][] = $scoreboard->asArray();
         }
     } catch (Exception $ex) {
         throw new InvalidDatabaseOperationException($ex);
     }
     $response["status"] = "ok";
     return $response;
 }
예제 #6
0
 /**
  * Test add a scoreboard
  */
 public function testCreateScoreboard()
 {
     $groupData = GroupsFactory::createGroup();
     $name = Utils::CreateRandomString();
     $description = Utils::CreateRandomString();
     $alias = Utils::CreateRandomString();
     $response = GroupController::apiCreateScoreboard(new Request(array("auth_token" => self::login($groupData["owner"]), "group_alias" => $groupData["group"]->alias, "name" => $name, "alias" => $alias, "description" => $description)));
     $this->assertEquals("ok", $response["status"]);
     $groupScoreboards = GroupsScoreboardsDAO::search(new GroupsScoreboards(array("alias" => $alias)));
     $groupScoreboard = $groupScoreboards[0];
     $this->assertNotNull($groupScoreboard);
     $this->assertEquals($description, $groupScoreboard->getDescription());
     $this->assertEquals($groupData["group"]->group_id, $groupScoreboard->getGroupId());
 }
예제 #7
0
 /**
  * Details of a group (scoreboards)
  *
  * @param Request $r
  */
 public static function apiDetails(Request $r)
 {
     self::validateGroupAndOwner($r);
     $response = array();
     try {
         $response['group'] = $r['group']->asArray();
         $scoreboards = GroupsScoreboardsDAO::search(new GroupsScoreboards(array('group_id' => $r['group']->group_id)));
         $response['scoreboards'] = array();
         foreach ($scoreboards as $scoreboard) {
             $response['scoreboards'][] = $scoreboard->asArray();
         }
     } catch (Exception $ex) {
         throw new InvalidDatabaseOperationException($ex);
     }
     $response['status'] = 'ok';
     return $response;
 }