Search in sources :

Example 1 with Proxy

use of io.gravitee.definition.model.Proxy in project gravitee-management-rest-api by gravitee-io.

the class ApiResourceTest method shouldUpdateApi.

@Test
public void shouldUpdateApi() {
    final UpdateApiEntity mockApi = new UpdateApiEntity();
    mockApi.setVersion("v1");
    mockApi.setDescription("Description of my API");
    mockApi.setProxy(new Proxy());
    doReturn(new ApiEntity()).when(apiService).update(API_NAME, mockApi);
    final Response response = target(API_NAME).request().put(Entity.json(mockApi));
    assertEquals(NO_CONTENT_204, response.getStatus());
}
Also used : Response(javax.ws.rs.core.Response) Proxy(io.gravitee.definition.model.Proxy) UpdateApiEntity(io.gravitee.management.model.UpdateApiEntity) ApiEntity(io.gravitee.management.model.ApiEntity) UpdateApiEntity(io.gravitee.management.model.UpdateApiEntity) Test(org.junit.Test)

Example 2 with Proxy

use of io.gravitee.definition.model.Proxy in project gravitee-management-rest-api by gravitee-io.

the class ApiServiceImpl method create.

@Override
public ApiEntity create(NewApiEntity newApiEntity, String userId) throws ApiAlreadyExistsException {
    UpdateApiEntity apiEntity = new UpdateApiEntity();
    apiEntity.setName(newApiEntity.getName());
    apiEntity.setDescription(newApiEntity.getDescription());
    apiEntity.setVersion(newApiEntity.getVersion());
    // check the existence of groups
    if (newApiEntity.getGroups() != null && !newApiEntity.getGroups().isEmpty()) {
        try {
            groupService.findByIds(newApiEntity.getGroups());
        } catch (GroupsNotFoundException gnfe) {
            throw new InvalidDataException("Groups [" + newApiEntity.getGroups() + "] does not exist");
        }
    }
    apiEntity.setGroups(newApiEntity.getGroups());
    Proxy proxy = new Proxy();
    proxy.setContextPath(newApiEntity.getContextPath());
    proxy.setEndpoints(new LinkedHashSet<>());
    proxy.getEndpoints().add(new HttpEndpoint("default", newApiEntity.getEndpoint()));
    apiEntity.setProxy(proxy);
    List<String> declaredPaths = (newApiEntity.getPaths() != null) ? newApiEntity.getPaths() : new ArrayList<>();
    if (!declaredPaths.contains("/")) {
        declaredPaths.add(0, "/");
    }
    // Initialize with a default path and provided paths
    Map<String, Path> paths = declaredPaths.stream().map(sPath -> {
        Path path = new Path();
        path.setPath(sPath);
        return path;
    }).collect(Collectors.toMap(Path::getPath, path -> path));
    apiEntity.setPaths(paths);
    return create0(apiEntity, userId);
}
Also used : Path(io.gravitee.definition.model.Path) PlanQuery(io.gravitee.management.model.plan.PlanQuery) java.util(java.util) HookScope(io.gravitee.management.service.notification.HookScope) TechnicalException(io.gravitee.repository.exceptions.TechnicalException) LoggerFactory(org.slf4j.LoggerFactory) MembershipRepository(io.gravitee.repository.management.api.MembershipRepository) Autowired(org.springframework.beans.factory.annotation.Autowired) PageQuery(io.gravitee.management.model.documentation.PageQuery) Visibility(io.gravitee.repository.management.model.Visibility) DeserializationFeature(com.fasterxml.jackson.databind.DeserializationFeature) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) Proxy(io.gravitee.definition.model.Proxy) Value(org.springframework.beans.factory.annotation.Value) io.gravitee.management.service.exceptions(io.gravitee.management.service.exceptions) UUID(io.gravitee.common.utils.UUID) EventType(io.gravitee.management.model.EventType) ApiSynchronizationProcessor(io.gravitee.management.service.processor.ApiSynchronizationProcessor) AuditEvent(io.gravitee.repository.management.model.Api.AuditEvent) ApiRepository(io.gravitee.repository.management.api.ApiRepository) io.gravitee.management.model(io.gravitee.management.model) GenericNotificationConfigEntity(io.gravitee.management.model.notification.GenericNotificationConfigEntity) SystemRole(io.gravitee.management.model.permissions.SystemRole) JsonNode(com.fasterxml.jackson.databind.JsonNode) HttpEndpoint(io.gravitee.definition.model.endpoint.HttpEndpoint) Lifecycle(io.gravitee.common.component.Lifecycle) SearchableUser(io.gravitee.management.idp.api.identity.SearchableUser) Logger(org.slf4j.Logger) ApiHook(io.gravitee.management.service.notification.ApiHook) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) IOException(java.io.IOException) FileInputStream(java.io.FileInputStream) Collectors(java.util.stream.Collectors) IOUtils(org.apache.commons.io.IOUtils) Component(org.springframework.stereotype.Component) io.gravitee.repository.management.model(io.gravitee.repository.management.model) io.gravitee.management.service(io.gravitee.management.service) Path(io.gravitee.definition.model.Path) PageType(io.gravitee.management.model.PageType) DatatypeConverter(javax.xml.bind.DatatypeConverter) Proxy(io.gravitee.definition.model.Proxy) HttpEndpoint(io.gravitee.definition.model.endpoint.HttpEndpoint)

Example 3 with Proxy

use of io.gravitee.definition.model.Proxy in project gravitee-management-rest-api by gravitee-io.

the class ApiService_UpdateTest method testUpdateWithContextPath.

private void testUpdateWithContextPath(String existingContextPath, String contextPathToCreate) throws TechnicalException {
    when(apiRepository.findById(API_ID)).thenReturn(Optional.of(api));
    when(apiRepository.update(any())).thenReturn(api);
    when(api.getId()).thenReturn(API_ID2);
    when(api.getName()).thenReturn(API_NAME);
    when(existingApi.getName()).thenReturn(API_NAME);
    when(existingApi.getVersion()).thenReturn("v1");
    when(existingApi.getDescription()).thenReturn("Ma description");
    final Proxy proxy = mock(Proxy.class);
    when(existingApi.getProxy()).thenReturn(proxy);
    when(proxy.getContextPath()).thenReturn(contextPathToCreate);
    when(apiRepository.findAll()).thenReturn(new HashSet<>(Collections.singletonList(api)));
    when(api.getDefinition()).thenReturn("{\"id\": \"" + API_ID + "\",\"name\": \"" + API_NAME + "\",\"proxy\": {\"context_path\": \"" + existingContextPath + "\"}}");
    Membership po1 = new Membership("admin", API_ID, MembershipReferenceType.API);
    po1.setRoles(Collections.singletonMap(RoleScope.API.getId(), SystemRole.PRIMARY_OWNER.name()));
    when(membershipRepository.findByReferencesAndRole(MembershipReferenceType.API, Collections.singletonList(API_ID), RoleScope.API, SystemRole.PRIMARY_OWNER.name())).thenReturn(Collections.singleton(po1));
    Membership po2 = new Membership("admin", API_ID2, MembershipReferenceType.API);
    po2.setRoles(Collections.singletonMap(RoleScope.API.getId(), SystemRole.PRIMARY_OWNER.name()));
    when(membershipRepository.findByReferencesAndRole(MembershipReferenceType.API, Collections.singletonList(API_ID2), RoleScope.API, SystemRole.PRIMARY_OWNER.name())).thenReturn(Collections.singleton(po2));
    apiService.update(API_ID, existingApi);
}
Also used : Proxy(io.gravitee.definition.model.Proxy) Membership(io.gravitee.repository.management.model.Membership)

Example 4 with Proxy

use of io.gravitee.definition.model.Proxy in project gravitee-management-rest-api by gravitee-io.

the class ApiService_UpdateTest method shouldUpdate.

@Test
public void shouldUpdate() throws TechnicalException {
    when(apiRepository.findById(API_ID)).thenReturn(Optional.of(api));
    when(apiRepository.update(any())).thenReturn(api);
    when(api.getName()).thenReturn(API_NAME);
    when(existingApi.getName()).thenReturn(API_NAME);
    when(existingApi.getVersion()).thenReturn("v1");
    when(existingApi.getDescription()).thenReturn("Ma description");
    final Proxy proxy = mock(Proxy.class);
    when(existingApi.getProxy()).thenReturn(proxy);
    when(proxy.getContextPath()).thenReturn("/context");
    Membership po = new Membership(USER_NAME, API_ID, MembershipReferenceType.API);
    po.setRoles(Collections.singletonMap(RoleScope.API.getId(), SystemRole.PRIMARY_OWNER.name()));
    when(membershipRepository.findByReferencesAndRole(any(), any(), any(), any())).thenReturn(Collections.singleton(po));
    final ApiEntity apiEntity = apiService.update(API_ID, existingApi);
    assertNotNull(apiEntity);
    assertEquals(API_NAME, apiEntity.getName());
}
Also used : Proxy(io.gravitee.definition.model.Proxy) Membership(io.gravitee.repository.management.model.Membership) ApiEntity(io.gravitee.management.model.ApiEntity) UpdateApiEntity(io.gravitee.management.model.UpdateApiEntity) Test(org.junit.Test)

Example 5 with Proxy

use of io.gravitee.definition.model.Proxy in project gravitee-gateway by gravitee-io.

the class ApiPathResolverTest method setUp.

@Before
public void setUp() {
    MockitoAnnotations.initMocks(this);
    final Map<String, Path> paths = new HashMap<>();
    paths.putAll(new HashMap<String, Path>() {

        {
            Path p1 = new Path();
            p1.setPath("/");
            put(p1.getPath(), p1);
            Path p2 = new Path();
            p2.setPath("/products");
            put(p2.getPath(), p2);
            Path p3 = new Path();
            p3.setPath("/stores");
            put(p3.getPath(), p3);
            Path p4 = new Path();
            p4.setPath("/stores/:storeId");
            put(p4.getPath(), p4);
            Path p5 = new Path();
            p5.setPath("/[0-9,;]+");
            put(p5.getPath(), p5);
            Path p6 = new Path();
            p6.setPath("/Stores/:storeId");
            put(p6.getPath(), p6);
        }
    });
    // API 1
    Proxy proxy = new Proxy();
    proxy.setContextPath("/");
    when(api.getProxy()).thenReturn(proxy);
    when(api.getPaths()).thenReturn(paths);
    pathResolver = new ApiPathResolverImpl(api);
    // API 2
    Proxy proxy2 = new Proxy();
    proxy2.setContextPath("/v1/products");
    when(api2.getProxy()).thenReturn(proxy2);
    when(api2.getPaths()).thenReturn(paths);
    pathResolver2 = new ApiPathResolverImpl(api2);
}
Also used : Path(io.gravitee.definition.model.Path) Proxy(io.gravitee.definition.model.Proxy) HashMap(java.util.HashMap) ApiPathResolverImpl(io.gravitee.gateway.handlers.api.path.impl.ApiPathResolverImpl) Before(org.junit.Before)

Aggregations

Proxy (io.gravitee.definition.model.Proxy)10 Test (org.junit.Test)7 Api (io.gravitee.gateway.handlers.api.definition.Api)3 UpdateApiEntity (io.gravitee.management.model.UpdateApiEntity)3 Path (io.gravitee.definition.model.Path)2 HttpEndpoint (io.gravitee.definition.model.endpoint.HttpEndpoint)2 ApiEntity (io.gravitee.management.model.ApiEntity)2 Membership (io.gravitee.repository.management.model.Membership)2 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)1 DeserializationFeature (com.fasterxml.jackson.databind.DeserializationFeature)1 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)1 Lifecycle (io.gravitee.common.component.Lifecycle)1 UUID (io.gravitee.common.utils.UUID)1 HttpClient (io.gravitee.definition.model.HttpClient)1 ApiPathResolverImpl (io.gravitee.gateway.handlers.api.path.impl.ApiPathResolverImpl)1 SearchableUser (io.gravitee.management.idp.api.identity.SearchableUser)1 io.gravitee.management.model (io.gravitee.management.model)1 EventType (io.gravitee.management.model.EventType)1