/**
* Copyright 2013 Twitter, Inc.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
package com.twitter.hbc.core.endpoint;
import com.google.common.base.Joiner;
import com.google.common.base.Preconditions;
import com.twitter.hbc.core.Constants;
import com.twitter.hbc.core.HttpConstants;
import java.util.List;
public class SitestreamEndpoint extends UserstreamEndpoint {
public static final String PATH = "/site.json";
public SitestreamEndpoint(List<Long> userIds) {
super(PATH);
Preconditions.checkNotNull(userIds, "List of users to follow must be provided");
Preconditions.checkArgument(userIds.size() > 0, "List of users to follow must not be empty");
Preconditions.checkArgument(userIds.size() <= 100, "Number of users to follow must be less than or equal to 100");
addQueryParameter(Constants.FOLLOW_PARAM, Joiner.on(',').join(userIds));
}
/**
* Control stream endpoints
*/
public static Endpoint streamInfoEndpoint(String streamId) {
return new BaseEndpoint("/site/c/" + streamId + "/info.json", HttpConstants.HTTP_GET);
}
public static Endpoint addUserEndpoint(String streamId) {
return new BaseEndpoint("/site/c/" + streamId + "/add_user.json", HttpConstants.HTTP_POST);
}
public static Endpoint removeUserEndpoint(String streamId) {
return new BaseEndpoint("/site/c/" + streamId + "/remove_user.json", HttpConstants.HTTP_POST);
}
public static Endpoint friendsEndpoint(String streamId) {
return new BaseEndpoint("/site/c/" + streamId + "/friends/ids.json", HttpConstants.HTTP_POST);
}
}