in dashboard/server/src/main/java/build/bazel/dashboard/github/teamtable/GithubTeamTableRepoPg.java [21:71]
public Maybe<GithubTeamTableData> findOne(String owner, String repo, String tableId) {
Mono<GithubTeamTableData> query =
databaseClient
.sql(
"SELECT owner, repo, id, created_at, updated_at, name, none_team_owner FROM github_team_table WHERE"
+ " owner = :owner AND repo = :repo AND id = :id")
.bind("owner", owner)
.bind("repo", repo)
.bind("id", tableId)
.map(
row ->
GithubTeamTableData.builder()
.owner(row.get("owner", String.class))
.repo(row.get("repo", String.class))
.id(row.get("id", String.class))
.createdAt(row.get("created_at", Instant.class))
.updatedAt(row.get("updated_at", Instant.class))
.name(row.get("name", String.class))
.noneTeamOwner(row.get("none_team_owner", String.class)))
.one()
.flatMap(
builder -> {
GithubTeamTableData tmp = builder.build();
return databaseClient
.sql(
"SELECT id, created_at, updated_at, seq, name, query FROM"
+ " github_team_table_header WHERE owner = :owner AND repo = :repo"
+ " AND table_id = :tableId")
.bind("owner", tmp.getOwner())
.bind("repo", tmp.getRepo())
.bind("tableId", tmp.getId())
.map(
row ->
Header.builder()
.id(row.get("id", String.class))
.createdAt(row.get("created_at", Instant.class))
.updatedAt(row.get("updated_at", Instant.class))
.seq(row.get("seq", Integer.class))
.name(row.get("name", String.class))
.query(row.get("query", String.class))
.build())
.all()
.collect(Collectors.toList())
.map(headers -> {
headers.sort(Comparator.comparing(Header::getSeq));
return builder.headers(headers).build();
});
});
return RxJava3Adapter.monoToMaybe(query);
}