Skip to content
Snippets Groups Projects
Commit 8145a529 authored by Moritz Staudinger's avatar Moritz Staudinger
Browse files

Started adding pagination

parent 012d907b
No related branches found
No related tags found
2 merge requests!81New stable release,!43Merge dev to master
......@@ -52,7 +52,8 @@ public class QueryEndpoint {
@ApiResponse(code = 409, message = "The container image is not supported."),})
public ResponseEntity<QueryResultDto> execute(@NotNull @PathVariable("id") Long id,
@NotNull @PathVariable("databaseId") Long databaseId,
@Valid @RequestBody ExecuteStatementDto data)
@Valid @RequestBody ExecuteStatementDto data,
@RequestParam("page") Long page, @RequestParam("size") Long size)
throws DatabaseNotFoundException, ImageNotSupportedException, QueryStoreException, QueryMalformedException,
TableNotFoundException, ContainerNotFoundException {
/* validation */
......@@ -65,7 +66,7 @@ public class QueryEndpoint {
throw new QueryMalformedException("Invalid table");
}
log.debug("Data for execution: {}", data);
final QueryResultDto result = queryService.execute(id, databaseId, data);
final QueryResultDto result = queryService.execute(id, databaseId, data, page, size);
return ResponseEntity.status(HttpStatus.ACCEPTED)
.body(result);
}
......@@ -101,12 +102,13 @@ public class QueryEndpoint {
@ApiResponse(code = 409, message = "The container image is not supported."),})
public ResponseEntity<QueryResultDto> reExecute(@NotNull @PathVariable("id") Long id,
@NotNull @PathVariable("databaseId") Long databaseId,
@NotNull @PathVariable("queryId") Long queryId)
@NotNull @PathVariable("queryId") Long queryId,
@RequestParam("page") Long page, @RequestParam("size") Long size)
throws QueryStoreException, QueryNotFoundException, DatabaseNotFoundException, ImageNotSupportedException,
TableNotFoundException, QueryMalformedException, ContainerNotFoundException, SQLException, JSQLParserException {
final Query query = storeService.findOne(id, databaseId, queryId);
log.debug(query.toString());
final QueryResultDto result = queryService.reExecute(id, databaseId, query);
final QueryResultDto result = queryService.reExecute(id, databaseId, query, page, size);
result.setId(queryId);
return ResponseEntity.status(HttpStatus.ACCEPTED)
.body(result);
......
......@@ -148,8 +148,9 @@ public class QueryEndpointIntegrationTest extends BaseUnitTest {
storeService.insert(CONTAINER_1_ID, DATABASE_1_ID, result, statement, execution);
/* test */
//FIXME
final ResponseEntity<QueryResultDto> response = queryEndpoint.reExecute(CONTAINER_1_ID, DATABASE_1_ID,
QUERY_1_ID);
QUERY_1_ID,0L,0L);
assertEquals(HttpStatus.ACCEPTED, response.getStatusCode());
assertNotNull(response.getBody());
assertEquals(QUERY_1_ID, response.getBody().getId());
......
......@@ -56,13 +56,15 @@ public class QueryEndpointUnitTest extends BaseUnitTest {
final Instant execution = Instant.now();
/* mock */
when(queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request))
//FIXME
when(queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request, 0L, 0L))
.thenReturn(result);
when(storeService.insert(CONTAINER_1_ID, DATABASE_1_ID, result, request, execution))
.thenReturn(QUERY_1);
/* test */
final ResponseEntity<QueryResultDto> response = queryEndpoint.execute(CONTAINER_1_ID, DATABASE_1_ID, request);
//FIXME
final ResponseEntity<QueryResultDto> response = queryEndpoint.execute(CONTAINER_1_ID, DATABASE_1_ID, request,0L,0L);
assertEquals(HttpStatus.ACCEPTED, response.getStatusCode());
assertEquals(result, response.getBody());
}
......@@ -80,13 +82,15 @@ public class QueryEndpointUnitTest extends BaseUnitTest {
final Instant execution = Instant.now();
/* mock */
when(queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request))
//FIXME
when(queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request, 0L, 0L))
.thenReturn(result);
when(storeService.insert(CONTAINER_1_ID, DATABASE_1_ID, result, request, execution))
.thenReturn(QUERY_1);
/* test */
final ResponseEntity<QueryResultDto> response = queryEndpoint.execute(CONTAINER_1_ID, DATABASE_1_ID, request);
//FIXME
final ResponseEntity<QueryResultDto> response = queryEndpoint.execute(CONTAINER_1_ID, DATABASE_1_ID, request,0L,0L);
assertEquals(HttpStatus.ACCEPTED, response.getStatusCode());
assertEquals(result, response.getBody());
}
......@@ -99,12 +103,14 @@ public class QueryEndpointUnitTest extends BaseUnitTest {
.build();
/* mock */
when(queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request))
//FIXME
when(queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request, 0L, 0L))
.thenThrow(TableNotFoundException.class);
/* test */
assertThrows(TableNotFoundException.class, () -> {
queryEndpoint.execute(CONTAINER_1_ID, DATABASE_1_ID, request);
//FIXME
queryEndpoint.execute(CONTAINER_1_ID, DATABASE_1_ID, request,0L,0L);
});
}
......
......@@ -182,7 +182,8 @@ public class QueryServiceIntegrationTest extends BaseUnitTest {
DockerConfig.startContainer(CONTAINER_1);
/* test */
final QueryResultDto response = queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request);
//FIXME
final QueryResultDto response = queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request, 0L, 0L);
assertEquals(3, response.getResult().size());
assertEquals(BigInteger.valueOf(1L), response.getResult().get(0).get(COLUMN_1_1_NAME));
assertEquals(toInstant("2008-12-01"), response.getResult().get(0).get(COLUMN_1_2_NAME));
......@@ -215,7 +216,8 @@ public class QueryServiceIntegrationTest extends BaseUnitTest {
DockerConfig.startContainer(CONTAINER_1);
/* test */
final QueryResultDto response = queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request);
//FIXME
final QueryResultDto response = queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request, 0L, 0L);
assertNotNull(response.getResult());
assertEquals(3, response.getResult().size());
}
......@@ -231,7 +233,8 @@ public class QueryServiceIntegrationTest extends BaseUnitTest {
/* test */
assertThrows(DatabaseNotFoundException.class, () -> {
queryService.execute(CONTAINER_1_ID, 9999L, request);
//FIXME
queryService.execute(CONTAINER_1_ID, 9999L, request, 0L, 0L);
});
}
......@@ -247,7 +250,8 @@ public class QueryServiceIntegrationTest extends BaseUnitTest {
/* test */
assertThrows(PersistenceException.class, () -> {
queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request);
//FIXME
queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request, 0L, 0L);
});
}
......@@ -262,7 +266,8 @@ public class QueryServiceIntegrationTest extends BaseUnitTest {
/* test */
assertThrows(PersistenceException.class, () -> {
queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request);
//FIXME
queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request, 0L, 0L);
});
}
......@@ -277,7 +282,8 @@ public class QueryServiceIntegrationTest extends BaseUnitTest {
/* test */
assertThrows(QueryMalformedException.class, () -> {
queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request);
//FIXME
queryService.execute(CONTAINER_1_ID, DATABASE_1_ID, request, 0L, 0L);
});
}
......
......@@ -22,6 +22,8 @@ public interface QueryService {
*
* @param databaseId The database id.
* @param query The query.
* @param page
* @param size
* @return The result.
* @throws TableNotFoundException
* @throws QueryStoreException
......@@ -29,7 +31,7 @@ public interface QueryService {
* @throws DatabaseNotFoundException
* @throws ImageNotSupportedException
*/
QueryResultDto execute(Long containerId, Long databaseId, ExecuteStatementDto query) throws TableNotFoundException,
QueryResultDto execute(Long containerId, Long databaseId, ExecuteStatementDto query, Long page, Long size) throws TableNotFoundException,
QueryStoreException, QueryMalformedException, DatabaseNotFoundException, ImageNotSupportedException, ContainerNotFoundException;
/**
......@@ -38,6 +40,8 @@ public interface QueryService {
*
* @param databaseId The database id.
* @param query The query.
* @param page
* @param size
* @return The result.
* @throws TableNotFoundException
* @throws QueryStoreException
......@@ -45,7 +49,7 @@ public interface QueryService {
* @throws DatabaseNotFoundException
* @throws ImageNotSupportedException
*/
QueryResultDto reExecute(Long containerId, Long databaseId, Query query) throws TableNotFoundException,
QueryResultDto reExecute(Long containerId, Long databaseId, Query query, Long page, Long size) throws TableNotFoundException,
QueryStoreException, QueryMalformedException, DatabaseNotFoundException, ImageNotSupportedException, ContainerNotFoundException, SQLException, JSQLParserException;
......
......@@ -60,7 +60,7 @@ public class QueryServiceImpl extends HibernateConnector implements QueryService
@Override
@Transactional
public QueryResultDto execute(Long containerId, Long databaseId, ExecuteStatementDto statement)
public QueryResultDto execute(Long containerId, Long databaseId, ExecuteStatementDto statement, Long page, Long size)
throws DatabaseNotFoundException, ImageNotSupportedException, QueryMalformedException, QueryStoreException, ContainerNotFoundException {
/* find */
final Database database = databaseService.find(databaseId);
......@@ -101,7 +101,7 @@ public class QueryServiceImpl extends HibernateConnector implements QueryService
}
@Override
public QueryResultDto reExecute(Long containerId, Long databaseId, Query query) throws TableNotFoundException, QueryStoreException, QueryMalformedException, DatabaseNotFoundException, ImageNotSupportedException, ContainerNotFoundException, SQLException, JSQLParserException {
public QueryResultDto reExecute(Long containerId, Long databaseId, Query query, Long page, Long size) throws TableNotFoundException, QueryStoreException, QueryMalformedException, DatabaseNotFoundException, ImageNotSupportedException, ContainerNotFoundException, SQLException, JSQLParserException {
/* find */
final Database database = databaseService.find(databaseId);
if (!database.getContainer().getImage().getRepository().equals("mariadb")) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment