package com.cadrlife.devsearch.esplugin.service;
import com.cadrlife.devsearch.domain.IdUtil;
import com.cadrlife.devsearch.domain.Project;
import com.cadrlife.devsearch.esplugin.domain.SearchResultItem;
import com.cadrlife.devsearch.esplugin.domain.ShowResult;
import org.elasticsearch.common.base.Strings;
import org.elasticsearch.common.inject.Inject;
public class ShowResource {
private CodeSearchIndexService service;
@Inject
public ShowResource(CodeSearchIndexService service) {
this.service = service;
}
public ShowResult get(String repo, String projectName, String path) {
ShowResult result = new ShowResult();
Project project = service.loadProject(IdUtil.projectId(repo, projectName));
result.setProject(project);
result.getProjectDocPaths().addAll(service.findAllDocPathsForProject(repo, projectName));
if (!Strings.isNullOrEmpty(path)) {
String id = IdUtil.docId(repo, projectName, path);
SearchResultItem doc = service.loadDoc(id);
result.setDoc(doc);
}
return result;
}
}