package it.com.atlassian.labs.speakeasy;
import com.atlassian.pageobjects.ProductInstance;
import com.atlassian.pageobjects.binder.Init;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import javax.inject.Inject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import static com.google.common.collect.Lists.newArrayList;
/**
*
*/
public class PluginsFeed
{
private Document doc;
@Inject
private ProductInstance productInstance;
@Init
public void init() throws IOException, DocumentException
{
String href = "/rest/speakeasy/latest/plugins/atom";
DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.getCredentialsProvider().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("admin", "admin"));
HttpGet get = new HttpGet(productInstance.getBaseUrl() + href + "?os_username=admin&os_password=admin");
HttpResponse res = httpclient.execute(get);
SAXReader saxReader = new SAXReader();
this.doc = saxReader.read(res.getEntity().getContent());
}
public List<String> getExtensionKeys()
{
List<String> keys = newArrayList();
for (Element e : new ArrayList<Element>(doc.getRootElement().elements("entry")))
{
keys.add(e.elementText("id"));
}
return keys;
}
}