Skip to content

Commit

Permalink
MODFQMMGR-391:Add endpoint to get latest query version
Browse files Browse the repository at this point in the history
  • Loading branch information
kjain110 committed Jul 16, 2024
1 parent 602e2ee commit 30dc0ed
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 2 deletions.
17 changes: 17 additions & 0 deletions src/main/java/org/folio/fqm/resource/MigrationController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.folio.fqm.resource;

import lombok.RequiredArgsConstructor;
import org.folio.fqm.service.MigrationService;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequiredArgsConstructor
public class MigrationController implements QueryVersionApi {
private final MigrationService migrationService;

public ResponseEntity<Integer> getQueryVersion() {
return new ResponseEntity<>(migrationService.getLatestVersion(), HttpStatus.OK);
}
}
19 changes: 17 additions & 2 deletions src/main/resources/swagger.api/mod-fqm-manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,23 @@ paths:
$ref: '#/components/responses/badRequestResponse'
'500':
$ref: '#/components/responses/internalServerErrorResponse'


/query/migrate/version:
get:
operationId: getQueryVersion
tags:
- queryVersion
description: Get the version of the query.
responses:
'200':
description: 'Version of the query'
content:
application/json:
schema:
type: integer
'400':
$ref: '#/components/responses/badRequestResponse'
'500':
$ref: '#/components/responses/internalServerErrorResponse'
components:
parameters:
entity-type-id:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package org.folio.fqm.controller;

import org.folio.fqm.resource.MigrationController;
import org.folio.fqm.service.MigrationService;
import org.folio.spring.FolioExecutionContext;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.RequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;

import static org.mockito.Mockito.when;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;

@WebMvcTest(MigrationController.class)
public class MigrationControllerTest {
private static final String GET_VERSION_URL = "/query/migrate/version";
@Autowired
private MockMvc mockMvc;

@MockBean
private MigrationService migrationService;

@MockBean
private FolioExecutionContext executionContext;

@Test
void shouldReturnQueryVersion() throws Exception {
String tenantId = "tenant_01";
when(executionContext.getTenantId()).thenReturn(tenantId);
when(migrationService.getLatestVersion()).thenReturn(1);
RequestBuilder builder = MockMvcRequestBuilders
.get(GET_VERSION_URL)
.accept(MediaType.APPLICATION_JSON);
mockMvc
.perform(builder)
.andExpect(status().isOk())
.andExpect(content().string(String.valueOf(1)));
}
}

0 comments on commit 30dc0ed

Please sign in to comment.