package com.boardgamegeek.ui.loader;
import com.boardgamegeek.io.model.ArticleElement;
import com.boardgamegeek.io.model.ThreadResponse;
import com.boardgamegeek.ui.model.Article;
import com.boardgamegeek.util.DateTimeUtils;
import java.util.ArrayList;
import java.util.List;
import retrofit2.Call;
public class ThreadSafeResponse extends SafeResponse<ThreadResponse> {
private List<Article> articles;
public ThreadSafeResponse(Call<ThreadResponse> call) {
super(call);
}
@Override
protected void mapBody(ThreadResponse body) {
super.mapBody(body);
if (body == null || body.articles == null) {
articles = new ArrayList<>(0);
} else {
articles = new ArrayList<>(body.articles.size());
for (ArticleElement articleElement : body.articles) {
articles.add(Article.builder()
.setId(articleElement.id)
.setUsername(articleElement.username)
.setLink(articleElement.link)
.setPostTicks(DateTimeUtils.tryParseDate(DateTimeUtils.UNPARSED_DATE, articleElement.postdate, ArticleElement.FORMAT))
.setEditTicks(DateTimeUtils.tryParseDate(DateTimeUtils.UNPARSED_DATE, articleElement.editdate, ArticleElement.FORMAT))
.setBody(articleElement.body == null ? "" : articleElement.body.trim())
.setNumberOfEdits(articleElement.numedits)
.build());
}
}
}
public List<Article> getArticles() {
return articles;
}
}