package com.alorma.github.sdk.services.content;
import com.alorma.github.sdk.bean.dto.request.RequestMarkdownDTO;
import com.alorma.github.sdk.services.client.GithubClient;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.Scanner;
import retrofit.RestAdapter;
import retrofit.converter.ConversionException;
import retrofit.converter.Converter;
import retrofit.mime.TypedInput;
import retrofit.mime.TypedOutput;
import retrofit.mime.TypedString;
import rx.Observable;
public class GetMarkdownClient extends GithubClient<String> {
private RequestMarkdownDTO readme;
public GetMarkdownClient(RequestMarkdownDTO readme) {
super();
this.readme = readme;
}
@Override
protected Observable<String> getApiObservable(RestAdapter restAdapter) {
return restAdapter.create(ContentService.class).markdown(readme.text);
}
@Override
public void intercept(RequestFacade request) {
super.intercept(request);
request.addHeader("Content-type", "text/plain");
}
@Override
protected Converter customConverter() {
return new Converter() {
@Override
public Object fromBody(TypedInput body, Type type) throws ConversionException {
try {
return new Scanner(body.in(), "UTF-8").useDelimiter("\\A").next();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
public TypedOutput toBody(Object object) {
return new TypedString((String) object);
}
};
}
}