public static function fetch_group_profile($search) { if (Token::verify($search)) { $groupid = Token::decode($search); if ($groupid->getType() != TOKEN_GROUP) { throw new InvalidTokenException("Token provided is not a group id"); } $query = Database::generate_query("group_lookup_id", [$groupid->toString()]); $result = $query->execute(); if ($result->count() == 0) { throw new InvalidGroupException("Could not find a group with that id", ["group-id" => $groupid->toString()]); } $row = $result->fetch_data(); $displayname = $row["group_display_name"]; $name = $row["group_name"]; $result->close(); } else { $name = $search; $query = Database::generate_query("group_lookup_name", [$name]); $result = $query->execute(); if ($result->count() == 0) { throw new InvalidGroupException("Could not find a group with that name", ["group-name" => $name]); } $row = $result->fetch_data(); $groupid = Token::decode($row["group_id"]); $displayname = $row["group_display_name"]; $result->close(); } return new GroupProfile($groupid, $name, $displayname); }
public static function fetch_user_profile($search) { if (Token::verify($search)) { $userid = Token::decode($search); if ($userid->getType() != TOKEN_USER) { throw new InvalidTokenException("Token provided is not a user id", ["user-id" => $userid->toString()]); } $query = Database::generate_query("user_lookup_id", [$userid->toString()]); $result = $query->execute(); if ($result->count() == 0) { throw new InvalidUserException("Could not find a user with that id", ["user-id" => $userid->toString()]); } $row = $result->fetch_data(); $username = $row["user_name"]; $displayname = $row["user_display_name"]; $result->close(); } else { $username = $search; $query = Database::generate_query("user_lookup_name", [$username]); $result = $query->execute(); if ($result->count() == 0) { throw new InvalidUserException("Could not find a user with that name", ["display-name" => $username]); } $row = $result->fetch_data(); $userid = Token::decode($row["user_id"]); $displayname = $row["user_display_name"]; $result->close(); } return new UserProfile($userid, $username, $displayname); }