Skip to content

Commit

Permalink
Add CrawlsByFilename API for pages in pandas-admin
Browse files Browse the repository at this point in the history
  • Loading branch information
ato committed Jul 12, 2023
1 parent 927c2cb commit 3bdbf80
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 1 deletion.
25 changes: 25 additions & 0 deletions ui/src/bamboo/api/ApiController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package bamboo.api;

import bamboo.app.Bamboo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
public class ApiController {
private final Bamboo wa;

public ApiController(Bamboo wa) {
this.wa = wa;
}

// Used by pandas-admin for the pages feature
@GetMapping("/api/v1/CrawlsByFilename")
@ResponseBody
public List<ApiDAO.CrawlsByFilename> crawlsByFilename(@RequestParam("filename") List<String> filenames) {
return wa.dao.api().crawlsByFilename(filenames);
}
}
26 changes: 26 additions & 0 deletions ui/src/bamboo/api/ApiDAO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package bamboo.api;

import org.jdbi.v3.sqlobject.config.RegisterConstructorMapper;
import org.jdbi.v3.sqlobject.customizer.BindList;
import org.jdbi.v3.sqlobject.statement.SqlQuery;

import java.util.List;

public interface ApiDAO {
@SqlQuery("""
SELECT
warc.id as warcId,
warc.filename,
crawl.id as crawlId,
crawl.name as crawlName,
crawl.pandas_instance_id as pandasInstanceId
FROM warc
LEFT JOIN crawl ON crawl.id = warc.crawl_id
WHERE filename in (<filenames>)
""")
@RegisterConstructorMapper(CrawlsByFilename.class)
List<CrawlsByFilename> crawlsByFilename(@BindList("filenames") List<String> filenames);

record CrawlsByFilename(long warcId, String filename, long crawlId, String crawlName, Long pandasInstanceId) {
}
}
2 changes: 1 addition & 1 deletion ui/src/bamboo/config/SecurityConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
.requestMatchers(antMatcher("/series/**")).permitAll()
.requestMatchers(antMatcher("/crawls/**")).permitAll()

.requestMatchers(antMatcher("/api/**")).hasRole(Role.PANADMIN.name())
.requestMatchers(antMatcher("/api/**")).permitAll()

.anyRequest().hasRole(Role.PANADMIN.name()));
} else {
Expand Down
4 changes: 4 additions & 0 deletions ui/src/bamboo/core/DAO.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
package bamboo.core;

import bamboo.api.ApiDAO;
import bamboo.crawl.*;
import bamboo.seedlist.SeedlistsDAO;
import bamboo.task.TaskDAO;
import org.jdbi.v3.sqlobject.*;

public interface DAO {
// api package
@CreateSqlObject ApiDAO api();

// crawl package
@CreateSqlObject AgencyDAO agency();
@CreateSqlObject CollectionsDAO collections();
Expand Down
1 change: 1 addition & 0 deletions ui/src/bamboo/crawl/WarcsDAO.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.jdbi.v3.core.mapper.RowMapper;
import org.jdbi.v3.core.statement.StatementContext;
import org.jdbi.v3.sqlobject.config.RegisterConstructorMapper;
import org.jdbi.v3.sqlobject.config.RegisterRowMapper;
import org.jdbi.v3.sqlobject.customizer.Bind;
import org.jdbi.v3.sqlobject.customizer.BindBean;
Expand Down

0 comments on commit 3bdbf80

Please sign in to comment.