/**
* Copyright 2014 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.Preconditions;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ReplayEnterpriseStreamingEndpoint extends EnterpriseStreamingEndpoint {
private static final String DATE_FMT_STR = "yyyyMMddHHmm";
private static final String BASE_PATH = "/accounts/%s/publishers/twitter/replay/%s/%s.json";
private final Date fromDate;
private final Date toDate;
public ReplayEnterpriseStreamingEndpoint(String account, String product, String label, Date fromDate, Date toDate) {
super(account, product, label);
this.fromDate = Preconditions.checkNotNull(fromDate);
this.toDate = Preconditions.checkNotNull(toDate);
}
@Override
public String getURI() {
String uri = String.format(BASE_PATH, account.trim(), product.trim(), label.trim());
addQueryParameter("fromDate", formatDate(this.fromDate));
addQueryParameter("toDate", formatDate(this.toDate));
return uri + "?" + generateParamString(queryParameters);
}
public Date getFromDate() {
return fromDate;
}
public Date getToDate() {
return toDate;
}
private String formatDate(Date date) {
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FMT_STR);
return dateFormat.format(date);
}
}